linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* patches to move ksmbd and cifs under new subdirectory
@ 2023-05-22 16:33 Steve French
  2023-05-22 17:20 ` Tom Talpey
  2023-05-22 17:33 ` Linus Torvalds
  0 siblings, 2 replies; 7+ messages in thread
From: Steve French @ 2023-05-22 16:33 UTC (permalink / raw)
  To: CIFS; +Cc: Linus Torvalds, samba-technical, Namjae Jeon, LKML, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 1197 bytes --]

Following up on the email thread suggestion to move fs/ksmbd and
fs/cifs and fs/smbfs_common all under a common directory fs/smb, here
is an updated
patchset for that (added one small patch).


    1) smb3: move Documentation/filesystems/cifs to
Documentation/filesystems/smb
    As suggested by Namjae, update the directory for ksmbd/cifs.ko
Documentation.
    Documentation/filesystems/cifs contains both server and client information
    so its pathname is misleading.  In addition, the directory fs/smb
    now contains both server and client, so move Documentation/filesystems/cifs
    to Documentation/filesystems/smb

    Suggested-by: Namjae Jeon <linkinjeon@kernel.org>

2) cifs: correct references in Documentation to old fs/cifs path
    The fs/cifs directory has moved to fs/smb/client, correct mentions
    of this in Documentation and comments.

3)  smb: move client and server files to common directory fs/smb
   As suggested by Linus, move CIFS/SMB3 related client and server
   files (cifs.ko and ksmbd.ko and helper modules) to new fs/smb subdirectory:

       fs/cifs --> fs/smb/client
       fs/ksmbd --> fs/smb/server
       fs/smbfs_common --> fs/smb/conmon


Thanks,

Steve

[-- Attachment #2: 0002-cifs-correct-references-in-Documentation-to-old-fs-c.patch --]
[-- Type: text/x-patch, Size: 5631 bytes --]

From b686a0741a28969786944c7ffb38563f4c6383f4 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Sun, 21 May 2023 22:52:04 -0500
Subject: [PATCH 2/3] cifs: correct references in Documentation to old fs/cifs
 path

The fs/cifs directory has moved to fs/smb/client, correct mentions
of this in Documentation and comments.

Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 Documentation/admin-guide/cifs/changes.rst         | 4 ++--
 Documentation/admin-guide/cifs/usage.rst           | 8 ++++----
 Documentation/filesystems/cifs/cifsroot.rst        | 2 +-
 Documentation/userspace-api/ioctl/ioctl-number.rst | 2 +-
 fs/smb/server/smbfsctl.h                           | 2 +-
 fs/smb/server/smbstatus.h                          | 2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Documentation/admin-guide/cifs/changes.rst b/Documentation/admin-guide/cifs/changes.rst
index 3147bbae9c43..8c42c4de510b 100644
--- a/Documentation/admin-guide/cifs/changes.rst
+++ b/Documentation/admin-guide/cifs/changes.rst
@@ -5,5 +5,5 @@ Changes
 See https://wiki.samba.org/index.php/LinuxCIFSKernel for summary
 information about fixes/improvements to CIFS/SMB2/SMB3 support (changes
 to cifs.ko module) by kernel version (and cifs internal module version).
-This may be easier to read than parsing the output of "git log fs/cifs"
-by release.
+This may be easier to read than parsing the output of
+"git log fs/smb/client" by release.
diff --git a/Documentation/admin-guide/cifs/usage.rst b/Documentation/admin-guide/cifs/usage.rst
index 2e151cd8c2e4..5f936b4b6018 100644
--- a/Documentation/admin-guide/cifs/usage.rst
+++ b/Documentation/admin-guide/cifs/usage.rst
@@ -45,7 +45,7 @@ Installation instructions
 
 If you have built the CIFS vfs as module (successfully) simply
 type ``make modules_install`` (or if you prefer, manually copy the file to
-the modules directory e.g. /lib/modules/2.4.10-4GB/kernel/fs/cifs/cifs.ko).
+the modules directory e.g. /lib/modules/6.3.0-060300-generic/kernel/fs/smb/client/cifs.ko).
 
 If you have built the CIFS vfs into the kernel itself, follow the instructions
 for your distribution on how to install a new kernel (usually you
@@ -66,15 +66,15 @@ If cifs is built as a module, then the size and number of network buffers
 and maximum number of simultaneous requests to one server can be configured.
 Changing these from their defaults is not recommended. By executing modinfo::
 
-	modinfo kernel/fs/cifs/cifs.ko
+	modinfo <path to cifs.ko>
 
-on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made
+on kernel/fs/smb/client/cifs.ko the list of configuration changes that can be made
 at module initialization time (by running insmod cifs.ko) can be seen.
 
 Recommendations
 ===============
 
-To improve security the SMB2.1 dialect or later (usually will get SMB3) is now
+To improve security the SMB2.1 dialect or later (usually will get SMB3.1.1) is now
 the new default. To use old dialects (e.g. to mount Windows XP) use "vers=1.0"
 on mount (or vers=2.0 for Windows Vista).  Note that the CIFS (vers=1.0) is
 much older and less secure than the default dialect SMB3 which includes
diff --git a/Documentation/filesystems/cifs/cifsroot.rst b/Documentation/filesystems/cifs/cifsroot.rst
index 4930bb443134..bf2d9db3acb9 100644
--- a/Documentation/filesystems/cifs/cifsroot.rst
+++ b/Documentation/filesystems/cifs/cifsroot.rst
@@ -59,7 +59,7 @@ the root file system via SMB protocol.
 Enables the kernel to mount the root file system via SMB that are
 located in the <server-ip> and <share> specified in this option.
 
-The default mount options are set in fs/cifs/cifsroot.c.
+The default mount options are set in fs/smb/client/cifsroot.c.
 
 server-ip
 	IPv4 address of the server.
diff --git a/Documentation/userspace-api/ioctl/ioctl-number.rst b/Documentation/userspace-api/ioctl/ioctl-number.rst
index 176e8fc3f31b..4f7b23faebb9 100644
--- a/Documentation/userspace-api/ioctl/ioctl-number.rst
+++ b/Documentation/userspace-api/ioctl/ioctl-number.rst
@@ -363,7 +363,7 @@ Code  Seq#    Include File                                           Comments
 0xCC  00-0F  drivers/misc/ibmvmc.h                                   pseries VMC driver
 0xCD  01     linux/reiserfs_fs.h
 0xCE  01-02  uapi/linux/cxl_mem.h                                    Compute Express Link Memory Devices
-0xCF  02     fs/cifs/ioctl.c
+0xCF  02     fs/smb/client/cifs_ioctl.h
 0xDB  00-0F  drivers/char/mwave/mwavepub.h
 0xDD  00-3F                                                          ZFCP device driver see drivers/s390/scsi/
                                                                      <mailto:aherrman@de.ibm.com>
diff --git a/fs/smb/server/smbfsctl.h b/fs/smb/server/smbfsctl.h
index b98418aae20c..ecdf8f6e0df4 100644
--- a/fs/smb/server/smbfsctl.h
+++ b/fs/smb/server/smbfsctl.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
 /*
- *   fs/cifs/smbfsctl.h: SMB, CIFS, SMB2 FSCTL definitions
+ *   fs/smb/server/smbfsctl.h: SMB, CIFS, SMB2 FSCTL definitions
  *
  *   Copyright (c) International Business Machines  Corp., 2002,2009
  *   Author(s): Steve French (sfrench@us.ibm.com)
diff --git a/fs/smb/server/smbstatus.h b/fs/smb/server/smbstatus.h
index 108a8b6ed24a..8963deb42404 100644
--- a/fs/smb/server/smbstatus.h
+++ b/fs/smb/server/smbstatus.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
 /*
- *   fs/cifs/smb2status.h
+ *   fs/server/smb2status.h
  *
  *   SMB2 Status code (network error) definitions
  *   Definitions are from MS-ERREF
-- 
2.34.1


[-- Attachment #3: 0001-smb-move-client-and-server-files-to-common-directory.patch --]
[-- Type: text/x-patch, Size: 43387 bytes --]

From 909b8a8f6475bb9902e3621d3cd9cba3a95e3f0e Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Sun, 21 May 2023 20:46:30 -0500
Subject: [PATCH 1/3] smb: move client and server files to common directory
 fs/smb

Move CIFS/SMB3 related client and server files (cifs.ko and ksmbd.ko
and helper modules) to new fs/smb subdirectory:

   fs/cifs --> fs/smb/client
   fs/ksmbd --> fs/smb/server
   fs/smbfs_common --> fs/smb/conmon

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 MAINTAINERS                                           |  8 ++++----
 fs/Kconfig                                            |  9 +--------
 fs/Makefile                                           |  4 +---
 fs/smb/Kconfig                                        | 11 +++++++++++
 fs/smb/Makefile                                       |  5 +++++
 fs/{cifs => smb/client}/Kconfig                       |  1 +
 fs/{cifs => smb/client}/Makefile                      |  0
 fs/{cifs => smb/client}/asn1.c                        |  0
 fs/{cifs => smb/client}/cached_dir.c                  |  0
 fs/{cifs => smb/client}/cached_dir.h                  |  0
 fs/{cifs => smb/client}/cifs_debug.c                  |  0
 fs/{cifs => smb/client}/cifs_debug.h                  |  0
 fs/{cifs => smb/client}/cifs_dfs_ref.c                |  0
 fs/{cifs => smb/client}/cifs_fs_sb.h                  |  0
 fs/{cifs => smb/client}/cifs_ioctl.h                  |  0
 fs/{cifs => smb/client}/cifs_spnego.c                 |  0
 fs/{cifs => smb/client}/cifs_spnego.h                 |  0
 fs/{cifs => smb/client}/cifs_spnego_negtokeninit.asn1 |  0
 fs/{cifs => smb/client}/cifs_swn.c                    |  0
 fs/{cifs => smb/client}/cifs_swn.h                    |  0
 fs/{cifs => smb/client}/cifs_unicode.c                |  0
 fs/{cifs => smb/client}/cifs_unicode.h                |  0
 fs/{cifs => smb/client}/cifs_uniupr.h                 |  0
 fs/{cifs => smb/client}/cifsacl.c                     |  0
 fs/{cifs => smb/client}/cifsacl.h                     |  0
 fs/{cifs => smb/client}/cifsencrypt.c                 |  2 +-
 fs/{cifs => smb/client}/cifsfs.c                      |  0
 fs/{cifs => smb/client}/cifsfs.h                      |  0
 fs/{cifs => smb/client}/cifsglob.h                    |  2 +-
 fs/{cifs => smb/client}/cifspdu.h                     |  2 +-
 fs/{cifs => smb/client}/cifsproto.h                   |  0
 fs/{cifs => smb/client}/cifsroot.c                    |  0
 fs/{cifs => smb/client}/cifssmb.c                     |  0
 fs/{cifs => smb/client}/connect.c                     |  0
 fs/{cifs => smb/client}/dfs.c                         |  0
 fs/{cifs => smb/client}/dfs.h                         |  0
 fs/{cifs => smb/client}/dfs_cache.c                   |  0
 fs/{cifs => smb/client}/dfs_cache.h                   |  0
 fs/{cifs => smb/client}/dir.c                         |  0
 fs/{cifs => smb/client}/dns_resolve.c                 |  0
 fs/{cifs => smb/client}/dns_resolve.h                 |  0
 fs/{cifs => smb/client}/export.c                      |  0
 fs/{cifs => smb/client}/file.c                        |  0
 fs/{cifs => smb/client}/fs_context.c                  |  0
 fs/{cifs => smb/client}/fs_context.h                  |  0
 fs/{cifs => smb/client}/fscache.c                     |  0
 fs/{cifs => smb/client}/fscache.h                     |  0
 fs/{cifs => smb/client}/inode.c                       |  0
 fs/{cifs => smb/client}/ioctl.c                       |  0
 fs/{cifs => smb/client}/link.c                        |  0
 fs/{cifs => smb/client}/misc.c                        |  0
 fs/{cifs => smb/client}/netlink.c                     |  0
 fs/{cifs => smb/client}/netlink.h                     |  0
 fs/{cifs => smb/client}/netmisc.c                     |  0
 fs/{cifs => smb/client}/nterr.c                       |  0
 fs/{cifs => smb/client}/nterr.h                       |  0
 fs/{cifs => smb/client}/ntlmssp.h                     |  0
 fs/{cifs => smb/client}/readdir.c                     |  0
 fs/{cifs => smb/client}/rfc1002pdu.h                  |  0
 fs/{cifs => smb/client}/sess.c                        |  0
 fs/{cifs => smb/client}/smb1ops.c                     |  0
 fs/{cifs => smb/client}/smb2file.c                    |  0
 fs/{cifs => smb/client}/smb2glob.h                    |  0
 fs/{cifs => smb/client}/smb2inode.c                   |  0
 fs/{cifs => smb/client}/smb2maperror.c                |  0
 fs/{cifs => smb/client}/smb2misc.c                    |  0
 fs/{cifs => smb/client}/smb2ops.c                     |  0
 fs/{cifs => smb/client}/smb2pdu.c                     |  0
 fs/{cifs => smb/client}/smb2pdu.h                     |  0
 fs/{cifs => smb/client}/smb2proto.h                   |  0
 fs/{cifs => smb/client}/smb2status.h                  |  0
 fs/{cifs => smb/client}/smb2transport.c               |  0
 fs/{cifs => smb/client}/smbdirect.c                   |  0
 fs/{cifs => smb/client}/smbdirect.h                   |  0
 fs/{cifs => smb/client}/smbencrypt.c                  |  2 +-
 fs/{cifs => smb/client}/smberr.h                      |  0
 fs/{cifs => smb/client}/trace.c                       |  0
 fs/{cifs => smb/client}/trace.h                       |  0
 fs/{cifs => smb/client}/transport.c                   |  0
 fs/{cifs => smb/client}/unc.c                         |  0
 fs/{cifs => smb/client}/winucase.c                    |  0
 fs/{cifs => smb/client}/xattr.c                       |  0
 fs/{smbfs_common => smb/common}/Makefile              |  0
 fs/{smbfs_common => smb/common}/arc4.h                |  0
 fs/{smbfs_common => smb/common}/cifs_arc4.c           |  0
 fs/{smbfs_common => smb/common}/cifs_md4.c            |  0
 fs/{smbfs_common => smb/common}/md4.h                 |  0
 fs/{smbfs_common => smb/common}/smb2pdu.h             |  0
 fs/{smbfs_common => smb/common}/smbfsctl.h            |  0
 fs/{ksmbd => smb/server}/Kconfig                      |  0
 fs/{ksmbd => smb/server}/Makefile                     |  0
 fs/{ksmbd => smb/server}/asn1.c                       |  0
 fs/{ksmbd => smb/server}/asn1.h                       |  0
 fs/{ksmbd => smb/server}/auth.c                       |  2 +-
 fs/{ksmbd => smb/server}/auth.h                       |  0
 fs/{ksmbd => smb/server}/connection.c                 |  0
 fs/{ksmbd => smb/server}/connection.h                 |  0
 fs/{ksmbd => smb/server}/crypto_ctx.c                 |  0
 fs/{ksmbd => smb/server}/crypto_ctx.h                 |  0
 fs/{ksmbd => smb/server}/glob.h                       |  0
 fs/{ksmbd => smb/server}/ksmbd_netlink.h              |  0
 .../server}/ksmbd_spnego_negtokeninit.asn1            |  0
 .../server}/ksmbd_spnego_negtokentarg.asn1            |  0
 fs/{ksmbd => smb/server}/ksmbd_work.c                 |  0
 fs/{ksmbd => smb/server}/ksmbd_work.h                 |  0
 fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.c             |  0
 fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.h             |  0
 fs/{ksmbd => smb/server}/mgmt/share_config.c          |  0
 fs/{ksmbd => smb/server}/mgmt/share_config.h          |  0
 fs/{ksmbd => smb/server}/mgmt/tree_connect.c          |  0
 fs/{ksmbd => smb/server}/mgmt/tree_connect.h          |  0
 fs/{ksmbd => smb/server}/mgmt/user_config.c           |  0
 fs/{ksmbd => smb/server}/mgmt/user_config.h           |  0
 fs/{ksmbd => smb/server}/mgmt/user_session.c          |  0
 fs/{ksmbd => smb/server}/mgmt/user_session.h          |  0
 fs/{ksmbd => smb/server}/misc.c                       |  0
 fs/{ksmbd => smb/server}/misc.h                       |  0
 fs/{ksmbd => smb/server}/ndr.c                        |  0
 fs/{ksmbd => smb/server}/ndr.h                        |  0
 fs/{ksmbd => smb/server}/nterr.h                      |  0
 fs/{ksmbd => smb/server}/ntlmssp.h                    |  0
 fs/{ksmbd => smb/server}/oplock.c                     |  0
 fs/{ksmbd => smb/server}/oplock.h                     |  0
 fs/{ksmbd => smb/server}/server.c                     |  0
 fs/{ksmbd => smb/server}/server.h                     |  0
 fs/{ksmbd => smb/server}/smb2misc.c                   |  0
 fs/{ksmbd => smb/server}/smb2ops.c                    |  0
 fs/{ksmbd => smb/server}/smb2pdu.c                    |  0
 fs/{ksmbd => smb/server}/smb2pdu.h                    |  0
 fs/{ksmbd => smb/server}/smb_common.c                 |  0
 fs/{ksmbd => smb/server}/smb_common.h                 |  2 +-
 fs/{ksmbd => smb/server}/smbacl.c                     |  0
 fs/{ksmbd => smb/server}/smbacl.h                     |  0
 fs/{ksmbd => smb/server}/smbfsctl.h                   |  0
 fs/{ksmbd => smb/server}/smbstatus.h                  |  0
 fs/{ksmbd => smb/server}/transport_ipc.c              |  0
 fs/{ksmbd => smb/server}/transport_ipc.h              |  0
 fs/{ksmbd => smb/server}/transport_rdma.c             |  0
 fs/{ksmbd => smb/server}/transport_rdma.h             |  0
 fs/{ksmbd => smb/server}/transport_tcp.c              |  0
 fs/{ksmbd => smb/server}/transport_tcp.h              |  0
 fs/{ksmbd => smb/server}/unicode.c                    |  0
 fs/{ksmbd => smb/server}/unicode.h                    |  0
 fs/{ksmbd => smb/server}/uniupr.h                     |  0
 fs/{ksmbd => smb/server}/vfs.c                        |  0
 fs/{ksmbd => smb/server}/vfs.h                        |  0
 fs/{ksmbd => smb/server}/vfs_cache.c                  |  0
 fs/{ksmbd => smb/server}/vfs_cache.h                  |  0
 fs/{ksmbd => smb/server}/xattr.h                      |  0
 149 files changed, 29 insertions(+), 21 deletions(-)
 create mode 100644 fs/smb/Kconfig
 create mode 100644 fs/smb/Makefile
 rename fs/{cifs => smb/client}/Kconfig (99%)
 rename fs/{cifs => smb/client}/Makefile (100%)
 rename fs/{cifs => smb/client}/asn1.c (100%)
 rename fs/{cifs => smb/client}/cached_dir.c (100%)
 rename fs/{cifs => smb/client}/cached_dir.h (100%)
 rename fs/{cifs => smb/client}/cifs_debug.c (100%)
 rename fs/{cifs => smb/client}/cifs_debug.h (100%)
 rename fs/{cifs => smb/client}/cifs_dfs_ref.c (100%)
 rename fs/{cifs => smb/client}/cifs_fs_sb.h (100%)
 rename fs/{cifs => smb/client}/cifs_ioctl.h (100%)
 rename fs/{cifs => smb/client}/cifs_spnego.c (100%)
 rename fs/{cifs => smb/client}/cifs_spnego.h (100%)
 rename fs/{cifs => smb/client}/cifs_spnego_negtokeninit.asn1 (100%)
 rename fs/{cifs => smb/client}/cifs_swn.c (100%)
 rename fs/{cifs => smb/client}/cifs_swn.h (100%)
 rename fs/{cifs => smb/client}/cifs_unicode.c (100%)
 rename fs/{cifs => smb/client}/cifs_unicode.h (100%)
 rename fs/{cifs => smb/client}/cifs_uniupr.h (100%)
 rename fs/{cifs => smb/client}/cifsacl.c (100%)
 rename fs/{cifs => smb/client}/cifsacl.h (100%)
 rename fs/{cifs => smb/client}/cifsencrypt.c (99%)
 rename fs/{cifs => smb/client}/cifsfs.c (100%)
 rename fs/{cifs => smb/client}/cifsfs.h (100%)
 rename fs/{cifs => smb/client}/cifsglob.h (99%)
 rename fs/{cifs => smb/client}/cifspdu.h (99%)
 rename fs/{cifs => smb/client}/cifsproto.h (100%)
 rename fs/{cifs => smb/client}/cifsroot.c (100%)
 rename fs/{cifs => smb/client}/cifssmb.c (100%)
 rename fs/{cifs => smb/client}/connect.c (100%)
 rename fs/{cifs => smb/client}/dfs.c (100%)
 rename fs/{cifs => smb/client}/dfs.h (100%)
 rename fs/{cifs => smb/client}/dfs_cache.c (100%)
 rename fs/{cifs => smb/client}/dfs_cache.h (100%)
 rename fs/{cifs => smb/client}/dir.c (100%)
 rename fs/{cifs => smb/client}/dns_resolve.c (100%)
 rename fs/{cifs => smb/client}/dns_resolve.h (100%)
 rename fs/{cifs => smb/client}/export.c (100%)
 rename fs/{cifs => smb/client}/file.c (100%)
 rename fs/{cifs => smb/client}/fs_context.c (100%)
 rename fs/{cifs => smb/client}/fs_context.h (100%)
 rename fs/{cifs => smb/client}/fscache.c (100%)
 rename fs/{cifs => smb/client}/fscache.h (100%)
 rename fs/{cifs => smb/client}/inode.c (100%)
 rename fs/{cifs => smb/client}/ioctl.c (100%)
 rename fs/{cifs => smb/client}/link.c (100%)
 rename fs/{cifs => smb/client}/misc.c (100%)
 rename fs/{cifs => smb/client}/netlink.c (100%)
 rename fs/{cifs => smb/client}/netlink.h (100%)
 rename fs/{cifs => smb/client}/netmisc.c (100%)
 rename fs/{cifs => smb/client}/nterr.c (100%)
 rename fs/{cifs => smb/client}/nterr.h (100%)
 rename fs/{cifs => smb/client}/ntlmssp.h (100%)
 rename fs/{cifs => smb/client}/readdir.c (100%)
 rename fs/{cifs => smb/client}/rfc1002pdu.h (100%)
 rename fs/{cifs => smb/client}/sess.c (100%)
 rename fs/{cifs => smb/client}/smb1ops.c (100%)
 rename fs/{cifs => smb/client}/smb2file.c (100%)
 rename fs/{cifs => smb/client}/smb2glob.h (100%)
 rename fs/{cifs => smb/client}/smb2inode.c (100%)
 rename fs/{cifs => smb/client}/smb2maperror.c (100%)
 rename fs/{cifs => smb/client}/smb2misc.c (100%)
 rename fs/{cifs => smb/client}/smb2ops.c (100%)
 rename fs/{cifs => smb/client}/smb2pdu.c (100%)
 rename fs/{cifs => smb/client}/smb2pdu.h (100%)
 rename fs/{cifs => smb/client}/smb2proto.h (100%)
 rename fs/{cifs => smb/client}/smb2status.h (100%)
 rename fs/{cifs => smb/client}/smb2transport.c (100%)
 rename fs/{cifs => smb/client}/smbdirect.c (100%)
 rename fs/{cifs => smb/client}/smbdirect.h (100%)
 rename fs/{cifs => smb/client}/smbencrypt.c (98%)
 rename fs/{cifs => smb/client}/smberr.h (100%)
 rename fs/{cifs => smb/client}/trace.c (100%)
 rename fs/{cifs => smb/client}/trace.h (100%)
 rename fs/{cifs => smb/client}/transport.c (100%)
 rename fs/{cifs => smb/client}/unc.c (100%)
 rename fs/{cifs => smb/client}/winucase.c (100%)
 rename fs/{cifs => smb/client}/xattr.c (100%)
 rename fs/{smbfs_common => smb/common}/Makefile (100%)
 rename fs/{smbfs_common => smb/common}/arc4.h (100%)
 rename fs/{smbfs_common => smb/common}/cifs_arc4.c (100%)
 rename fs/{smbfs_common => smb/common}/cifs_md4.c (100%)
 rename fs/{smbfs_common => smb/common}/md4.h (100%)
 rename fs/{smbfs_common => smb/common}/smb2pdu.h (100%)
 rename fs/{smbfs_common => smb/common}/smbfsctl.h (100%)
 rename fs/{ksmbd => smb/server}/Kconfig (100%)
 rename fs/{ksmbd => smb/server}/Makefile (100%)
 rename fs/{ksmbd => smb/server}/asn1.c (100%)
 rename fs/{ksmbd => smb/server}/asn1.h (100%)
 rename fs/{ksmbd => smb/server}/auth.c (99%)
 rename fs/{ksmbd => smb/server}/auth.h (100%)
 rename fs/{ksmbd => smb/server}/connection.c (100%)
 rename fs/{ksmbd => smb/server}/connection.h (100%)
 rename fs/{ksmbd => smb/server}/crypto_ctx.c (100%)
 rename fs/{ksmbd => smb/server}/crypto_ctx.h (100%)
 rename fs/{ksmbd => smb/server}/glob.h (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_netlink.h (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_spnego_negtokeninit.asn1 (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_spnego_negtokentarg.asn1 (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_work.c (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_work.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/share_config.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/share_config.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/tree_connect.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/tree_connect.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_config.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_config.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_session.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_session.h (100%)
 rename fs/{ksmbd => smb/server}/misc.c (100%)
 rename fs/{ksmbd => smb/server}/misc.h (100%)
 rename fs/{ksmbd => smb/server}/ndr.c (100%)
 rename fs/{ksmbd => smb/server}/ndr.h (100%)
 rename fs/{ksmbd => smb/server}/nterr.h (100%)
 rename fs/{ksmbd => smb/server}/ntlmssp.h (100%)
 rename fs/{ksmbd => smb/server}/oplock.c (100%)
 rename fs/{ksmbd => smb/server}/oplock.h (100%)
 rename fs/{ksmbd => smb/server}/server.c (100%)
 rename fs/{ksmbd => smb/server}/server.h (100%)
 rename fs/{ksmbd => smb/server}/smb2misc.c (100%)
 rename fs/{ksmbd => smb/server}/smb2ops.c (100%)
 rename fs/{ksmbd => smb/server}/smb2pdu.c (100%)
 rename fs/{ksmbd => smb/server}/smb2pdu.h (100%)
 rename fs/{ksmbd => smb/server}/smb_common.c (100%)
 rename fs/{ksmbd => smb/server}/smb_common.h (99%)
 rename fs/{ksmbd => smb/server}/smbacl.c (100%)
 rename fs/{ksmbd => smb/server}/smbacl.h (100%)
 rename fs/{ksmbd => smb/server}/smbfsctl.h (100%)
 rename fs/{ksmbd => smb/server}/smbstatus.h (100%)
 rename fs/{ksmbd => smb/server}/transport_ipc.c (100%)
 rename fs/{ksmbd => smb/server}/transport_ipc.h (100%)
 rename fs/{ksmbd => smb/server}/transport_rdma.c (100%)
 rename fs/{ksmbd => smb/server}/transport_rdma.h (100%)
 rename fs/{ksmbd => smb/server}/transport_tcp.c (100%)
 rename fs/{ksmbd => smb/server}/transport_tcp.h (100%)
 rename fs/{ksmbd => smb/server}/unicode.c (100%)
 rename fs/{ksmbd => smb/server}/unicode.h (100%)
 rename fs/{ksmbd => smb/server}/uniupr.h (100%)
 rename fs/{ksmbd => smb/server}/vfs.c (100%)
 rename fs/{ksmbd => smb/server}/vfs.h (100%)
 rename fs/{ksmbd => smb/server}/vfs_cache.c (100%)
 rename fs/{ksmbd => smb/server}/vfs_cache.h (100%)
 rename fs/{ksmbd => smb/server}/xattr.h (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index 27ef11624748..902f763e845d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5140,8 +5140,8 @@ S:	Supported
 W:	https://wiki.samba.org/index.php/LinuxCIFS
 T:	git git://git.samba.org/sfrench/cifs-2.6.git
 F:	Documentation/admin-guide/cifs/
-F:	fs/cifs/
-F:	fs/smbfs_common/
+F:	fs/smb/client/
+F:	fs/smb/common/
 F:	include/uapi/linux/cifs
 
 COMPACTPCI HOTPLUG CORE
@@ -11301,8 +11301,8 @@ L:	linux-cifs@vger.kernel.org
 S:	Maintained
 T:	git git://git.samba.org/ksmbd.git
 F:	Documentation/filesystems/cifs/ksmbd.rst
-F:	fs/ksmbd/
-F:	fs/smbfs_common/
+F:	fs/smb/common/
+F:	fs/smb/server/
 
 KERNEL UNIT TESTING FRAMEWORK (KUnit)
 M:	Brendan Higgins <brendanhiggins@google.com>
diff --git a/fs/Kconfig b/fs/Kconfig
index cc07a0cd3172..18d034ec7953 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -368,14 +368,7 @@ config NFS_V4_2_SSC_HELPER
 source "net/sunrpc/Kconfig"
 source "fs/ceph/Kconfig"
 
-source "fs/cifs/Kconfig"
-source "fs/ksmbd/Kconfig"
-
-config SMBFS_COMMON
-	tristate
-	default y if CIFS=y || SMB_SERVER=y
-	default m if CIFS=m || SMB_SERVER=m
-
+source "fs/smb/Kconfig"
 source "fs/coda/Kconfig"
 source "fs/afs/Kconfig"
 source "fs/9p/Kconfig"
diff --git a/fs/Makefile b/fs/Makefile
index 834f1c3dba46..5bfdbf0d7037 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -95,9 +95,7 @@ obj-$(CONFIG_LOCKD)		+= lockd/
 obj-$(CONFIG_NLS)		+= nls/
 obj-y				+= unicode/
 obj-$(CONFIG_SYSV_FS)		+= sysv/
-obj-$(CONFIG_SMBFS_COMMON)	+= smbfs_common/
-obj-$(CONFIG_CIFS)		+= cifs/
-obj-$(CONFIG_SMB_SERVER)	+= ksmbd/
+obj-$(CONFIG_SMBFS)		+= smb/
 obj-$(CONFIG_HPFS_FS)		+= hpfs/
 obj-$(CONFIG_NTFS_FS)		+= ntfs/
 obj-$(CONFIG_NTFS3_FS)		+= ntfs3/
diff --git a/fs/smb/Kconfig b/fs/smb/Kconfig
new file mode 100644
index 000000000000..f010b57d1782
--- /dev/null
+++ b/fs/smb/Kconfig
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# smbfs configuration
+
+source "fs/smb/client/Kconfig"
+source "fs/smb/server/Kconfig"
+
+config SMBFS
+	tristate
+	default y if CIFS=y || SMB_CLIENT=y || SMB_SERVER=y
+	default m if CIFS=m || SMB_CLIENT=y || SMB_SERVER=m
diff --git a/fs/smb/Makefile b/fs/smb/Makefile
new file mode 100644
index 000000000000..752e97ae40e8
--- /dev/null
+++ b/fs/smb/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_SMBFS)		+= common/
+obj-$(CONFIG_SMB_CLIENT)	+= client/
+obj-$(CONFIG_SMB_SERVER)	+= server/
diff --git a/fs/cifs/Kconfig b/fs/smb/client/Kconfig
similarity index 99%
rename from fs/cifs/Kconfig
rename to fs/smb/client/Kconfig
index 4c0d53bf931a..172ab7b64c5e 100644
--- a/fs/cifs/Kconfig
+++ b/fs/smb/client/Kconfig
@@ -2,6 +2,7 @@
 config CIFS
 	tristate "SMB3 and CIFS support (advanced network filesystem)"
 	depends on INET
+	select SMB_CLIENT
 	select NLS
 	select CRYPTO
 	select CRYPTO_MD5
diff --git a/fs/cifs/Makefile b/fs/smb/client/Makefile
similarity index 100%
rename from fs/cifs/Makefile
rename to fs/smb/client/Makefile
diff --git a/fs/cifs/asn1.c b/fs/smb/client/asn1.c
similarity index 100%
rename from fs/cifs/asn1.c
rename to fs/smb/client/asn1.c
diff --git a/fs/cifs/cached_dir.c b/fs/smb/client/cached_dir.c
similarity index 100%
rename from fs/cifs/cached_dir.c
rename to fs/smb/client/cached_dir.c
diff --git a/fs/cifs/cached_dir.h b/fs/smb/client/cached_dir.h
similarity index 100%
rename from fs/cifs/cached_dir.h
rename to fs/smb/client/cached_dir.h
diff --git a/fs/cifs/cifs_debug.c b/fs/smb/client/cifs_debug.c
similarity index 100%
rename from fs/cifs/cifs_debug.c
rename to fs/smb/client/cifs_debug.c
diff --git a/fs/cifs/cifs_debug.h b/fs/smb/client/cifs_debug.h
similarity index 100%
rename from fs/cifs/cifs_debug.h
rename to fs/smb/client/cifs_debug.h
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/smb/client/cifs_dfs_ref.c
similarity index 100%
rename from fs/cifs/cifs_dfs_ref.c
rename to fs/smb/client/cifs_dfs_ref.c
diff --git a/fs/cifs/cifs_fs_sb.h b/fs/smb/client/cifs_fs_sb.h
similarity index 100%
rename from fs/cifs/cifs_fs_sb.h
rename to fs/smb/client/cifs_fs_sb.h
diff --git a/fs/cifs/cifs_ioctl.h b/fs/smb/client/cifs_ioctl.h
similarity index 100%
rename from fs/cifs/cifs_ioctl.h
rename to fs/smb/client/cifs_ioctl.h
diff --git a/fs/cifs/cifs_spnego.c b/fs/smb/client/cifs_spnego.c
similarity index 100%
rename from fs/cifs/cifs_spnego.c
rename to fs/smb/client/cifs_spnego.c
diff --git a/fs/cifs/cifs_spnego.h b/fs/smb/client/cifs_spnego.h
similarity index 100%
rename from fs/cifs/cifs_spnego.h
rename to fs/smb/client/cifs_spnego.h
diff --git a/fs/cifs/cifs_spnego_negtokeninit.asn1 b/fs/smb/client/cifs_spnego_negtokeninit.asn1
similarity index 100%
rename from fs/cifs/cifs_spnego_negtokeninit.asn1
rename to fs/smb/client/cifs_spnego_negtokeninit.asn1
diff --git a/fs/cifs/cifs_swn.c b/fs/smb/client/cifs_swn.c
similarity index 100%
rename from fs/cifs/cifs_swn.c
rename to fs/smb/client/cifs_swn.c
diff --git a/fs/cifs/cifs_swn.h b/fs/smb/client/cifs_swn.h
similarity index 100%
rename from fs/cifs/cifs_swn.h
rename to fs/smb/client/cifs_swn.h
diff --git a/fs/cifs/cifs_unicode.c b/fs/smb/client/cifs_unicode.c
similarity index 100%
rename from fs/cifs/cifs_unicode.c
rename to fs/smb/client/cifs_unicode.c
diff --git a/fs/cifs/cifs_unicode.h b/fs/smb/client/cifs_unicode.h
similarity index 100%
rename from fs/cifs/cifs_unicode.h
rename to fs/smb/client/cifs_unicode.h
diff --git a/fs/cifs/cifs_uniupr.h b/fs/smb/client/cifs_uniupr.h
similarity index 100%
rename from fs/cifs/cifs_uniupr.h
rename to fs/smb/client/cifs_uniupr.h
diff --git a/fs/cifs/cifsacl.c b/fs/smb/client/cifsacl.c
similarity index 100%
rename from fs/cifs/cifsacl.c
rename to fs/smb/client/cifsacl.c
diff --git a/fs/cifs/cifsacl.h b/fs/smb/client/cifsacl.h
similarity index 100%
rename from fs/cifs/cifsacl.h
rename to fs/smb/client/cifsacl.h
diff --git a/fs/cifs/cifsencrypt.c b/fs/smb/client/cifsencrypt.c
similarity index 99%
rename from fs/cifs/cifsencrypt.c
rename to fs/smb/client/cifsencrypt.c
index 357bd27a7fd1..ef4c2e3c9fa6 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/smb/client/cifsencrypt.c
@@ -21,7 +21,7 @@
 #include <linux/random.h>
 #include <linux/highmem.h>
 #include <linux/fips.h>
-#include "../smbfs_common/arc4.h"
+#include "../common/arc4.h"
 #include <crypto/aead.h>
 
 /*
diff --git a/fs/cifs/cifsfs.c b/fs/smb/client/cifsfs.c
similarity index 100%
rename from fs/cifs/cifsfs.c
rename to fs/smb/client/cifsfs.c
diff --git a/fs/cifs/cifsfs.h b/fs/smb/client/cifsfs.h
similarity index 100%
rename from fs/cifs/cifsfs.h
rename to fs/smb/client/cifsfs.h
diff --git a/fs/cifs/cifsglob.h b/fs/smb/client/cifsglob.h
similarity index 99%
rename from fs/cifs/cifsglob.h
rename to fs/smb/client/cifsglob.h
index 5f8fd20951af..0d84bb1a8cd9 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/smb/client/cifsglob.h
@@ -24,7 +24,7 @@
 #include "cifsacl.h"
 #include <crypto/internal/hash.h>
 #include <uapi/linux/cifs/cifs_mount.h>
-#include "../smbfs_common/smb2pdu.h"
+#include "../common/smb2pdu.h"
 #include "smb2pdu.h"
 #include <linux/filelock.h>
 
diff --git a/fs/cifs/cifspdu.h b/fs/smb/client/cifspdu.h
similarity index 99%
rename from fs/cifs/cifspdu.h
rename to fs/smb/client/cifspdu.h
index 445e3eaebcc1..e17222fec9d2 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/smb/client/cifspdu.h
@@ -11,7 +11,7 @@
 
 #include <net/sock.h>
 #include <asm/unaligned.h>
-#include "../smbfs_common/smbfsctl.h"
+#include "../common/smbfsctl.h"
 
 #define CIFS_PROT   0
 #define POSIX_PROT  (CIFS_PROT+1)
diff --git a/fs/cifs/cifsproto.h b/fs/smb/client/cifsproto.h
similarity index 100%
rename from fs/cifs/cifsproto.h
rename to fs/smb/client/cifsproto.h
diff --git a/fs/cifs/cifsroot.c b/fs/smb/client/cifsroot.c
similarity index 100%
rename from fs/cifs/cifsroot.c
rename to fs/smb/client/cifsroot.c
diff --git a/fs/cifs/cifssmb.c b/fs/smb/client/cifssmb.c
similarity index 100%
rename from fs/cifs/cifssmb.c
rename to fs/smb/client/cifssmb.c
diff --git a/fs/cifs/connect.c b/fs/smb/client/connect.c
similarity index 100%
rename from fs/cifs/connect.c
rename to fs/smb/client/connect.c
diff --git a/fs/cifs/dfs.c b/fs/smb/client/dfs.c
similarity index 100%
rename from fs/cifs/dfs.c
rename to fs/smb/client/dfs.c
diff --git a/fs/cifs/dfs.h b/fs/smb/client/dfs.h
similarity index 100%
rename from fs/cifs/dfs.h
rename to fs/smb/client/dfs.h
diff --git a/fs/cifs/dfs_cache.c b/fs/smb/client/dfs_cache.c
similarity index 100%
rename from fs/cifs/dfs_cache.c
rename to fs/smb/client/dfs_cache.c
diff --git a/fs/cifs/dfs_cache.h b/fs/smb/client/dfs_cache.h
similarity index 100%
rename from fs/cifs/dfs_cache.h
rename to fs/smb/client/dfs_cache.h
diff --git a/fs/cifs/dir.c b/fs/smb/client/dir.c
similarity index 100%
rename from fs/cifs/dir.c
rename to fs/smb/client/dir.c
diff --git a/fs/cifs/dns_resolve.c b/fs/smb/client/dns_resolve.c
similarity index 100%
rename from fs/cifs/dns_resolve.c
rename to fs/smb/client/dns_resolve.c
diff --git a/fs/cifs/dns_resolve.h b/fs/smb/client/dns_resolve.h
similarity index 100%
rename from fs/cifs/dns_resolve.h
rename to fs/smb/client/dns_resolve.h
diff --git a/fs/cifs/export.c b/fs/smb/client/export.c
similarity index 100%
rename from fs/cifs/export.c
rename to fs/smb/client/export.c
diff --git a/fs/cifs/file.c b/fs/smb/client/file.c
similarity index 100%
rename from fs/cifs/file.c
rename to fs/smb/client/file.c
diff --git a/fs/cifs/fs_context.c b/fs/smb/client/fs_context.c
similarity index 100%
rename from fs/cifs/fs_context.c
rename to fs/smb/client/fs_context.c
diff --git a/fs/cifs/fs_context.h b/fs/smb/client/fs_context.h
similarity index 100%
rename from fs/cifs/fs_context.h
rename to fs/smb/client/fs_context.h
diff --git a/fs/cifs/fscache.c b/fs/smb/client/fscache.c
similarity index 100%
rename from fs/cifs/fscache.c
rename to fs/smb/client/fscache.c
diff --git a/fs/cifs/fscache.h b/fs/smb/client/fscache.h
similarity index 100%
rename from fs/cifs/fscache.h
rename to fs/smb/client/fscache.h
diff --git a/fs/cifs/inode.c b/fs/smb/client/inode.c
similarity index 100%
rename from fs/cifs/inode.c
rename to fs/smb/client/inode.c
diff --git a/fs/cifs/ioctl.c b/fs/smb/client/ioctl.c
similarity index 100%
rename from fs/cifs/ioctl.c
rename to fs/smb/client/ioctl.c
diff --git a/fs/cifs/link.c b/fs/smb/client/link.c
similarity index 100%
rename from fs/cifs/link.c
rename to fs/smb/client/link.c
diff --git a/fs/cifs/misc.c b/fs/smb/client/misc.c
similarity index 100%
rename from fs/cifs/misc.c
rename to fs/smb/client/misc.c
diff --git a/fs/cifs/netlink.c b/fs/smb/client/netlink.c
similarity index 100%
rename from fs/cifs/netlink.c
rename to fs/smb/client/netlink.c
diff --git a/fs/cifs/netlink.h b/fs/smb/client/netlink.h
similarity index 100%
rename from fs/cifs/netlink.h
rename to fs/smb/client/netlink.h
diff --git a/fs/cifs/netmisc.c b/fs/smb/client/netmisc.c
similarity index 100%
rename from fs/cifs/netmisc.c
rename to fs/smb/client/netmisc.c
diff --git a/fs/cifs/nterr.c b/fs/smb/client/nterr.c
similarity index 100%
rename from fs/cifs/nterr.c
rename to fs/smb/client/nterr.c
diff --git a/fs/cifs/nterr.h b/fs/smb/client/nterr.h
similarity index 100%
rename from fs/cifs/nterr.h
rename to fs/smb/client/nterr.h
diff --git a/fs/cifs/ntlmssp.h b/fs/smb/client/ntlmssp.h
similarity index 100%
rename from fs/cifs/ntlmssp.h
rename to fs/smb/client/ntlmssp.h
diff --git a/fs/cifs/readdir.c b/fs/smb/client/readdir.c
similarity index 100%
rename from fs/cifs/readdir.c
rename to fs/smb/client/readdir.c
diff --git a/fs/cifs/rfc1002pdu.h b/fs/smb/client/rfc1002pdu.h
similarity index 100%
rename from fs/cifs/rfc1002pdu.h
rename to fs/smb/client/rfc1002pdu.h
diff --git a/fs/cifs/sess.c b/fs/smb/client/sess.c
similarity index 100%
rename from fs/cifs/sess.c
rename to fs/smb/client/sess.c
diff --git a/fs/cifs/smb1ops.c b/fs/smb/client/smb1ops.c
similarity index 100%
rename from fs/cifs/smb1ops.c
rename to fs/smb/client/smb1ops.c
diff --git a/fs/cifs/smb2file.c b/fs/smb/client/smb2file.c
similarity index 100%
rename from fs/cifs/smb2file.c
rename to fs/smb/client/smb2file.c
diff --git a/fs/cifs/smb2glob.h b/fs/smb/client/smb2glob.h
similarity index 100%
rename from fs/cifs/smb2glob.h
rename to fs/smb/client/smb2glob.h
diff --git a/fs/cifs/smb2inode.c b/fs/smb/client/smb2inode.c
similarity index 100%
rename from fs/cifs/smb2inode.c
rename to fs/smb/client/smb2inode.c
diff --git a/fs/cifs/smb2maperror.c b/fs/smb/client/smb2maperror.c
similarity index 100%
rename from fs/cifs/smb2maperror.c
rename to fs/smb/client/smb2maperror.c
diff --git a/fs/cifs/smb2misc.c b/fs/smb/client/smb2misc.c
similarity index 100%
rename from fs/cifs/smb2misc.c
rename to fs/smb/client/smb2misc.c
diff --git a/fs/cifs/smb2ops.c b/fs/smb/client/smb2ops.c
similarity index 100%
rename from fs/cifs/smb2ops.c
rename to fs/smb/client/smb2ops.c
diff --git a/fs/cifs/smb2pdu.c b/fs/smb/client/smb2pdu.c
similarity index 100%
rename from fs/cifs/smb2pdu.c
rename to fs/smb/client/smb2pdu.c
diff --git a/fs/cifs/smb2pdu.h b/fs/smb/client/smb2pdu.h
similarity index 100%
rename from fs/cifs/smb2pdu.h
rename to fs/smb/client/smb2pdu.h
diff --git a/fs/cifs/smb2proto.h b/fs/smb/client/smb2proto.h
similarity index 100%
rename from fs/cifs/smb2proto.h
rename to fs/smb/client/smb2proto.h
diff --git a/fs/cifs/smb2status.h b/fs/smb/client/smb2status.h
similarity index 100%
rename from fs/cifs/smb2status.h
rename to fs/smb/client/smb2status.h
diff --git a/fs/cifs/smb2transport.c b/fs/smb/client/smb2transport.c
similarity index 100%
rename from fs/cifs/smb2transport.c
rename to fs/smb/client/smb2transport.c
diff --git a/fs/cifs/smbdirect.c b/fs/smb/client/smbdirect.c
similarity index 100%
rename from fs/cifs/smbdirect.c
rename to fs/smb/client/smbdirect.c
diff --git a/fs/cifs/smbdirect.h b/fs/smb/client/smbdirect.h
similarity index 100%
rename from fs/cifs/smbdirect.h
rename to fs/smb/client/smbdirect.h
diff --git a/fs/cifs/smbencrypt.c b/fs/smb/client/smbencrypt.c
similarity index 98%
rename from fs/cifs/smbencrypt.c
rename to fs/smb/client/smbencrypt.c
index 4a0487753869..f0ce26414f17 100644
--- a/fs/cifs/smbencrypt.c
+++ b/fs/smb/client/smbencrypt.c
@@ -24,7 +24,7 @@
 #include "cifsglob.h"
 #include "cifs_debug.h"
 #include "cifsproto.h"
-#include "../smbfs_common/md4.h"
+#include "../common/md4.h"
 
 #ifndef false
 #define false 0
diff --git a/fs/cifs/smberr.h b/fs/smb/client/smberr.h
similarity index 100%
rename from fs/cifs/smberr.h
rename to fs/smb/client/smberr.h
diff --git a/fs/cifs/trace.c b/fs/smb/client/trace.c
similarity index 100%
rename from fs/cifs/trace.c
rename to fs/smb/client/trace.c
diff --git a/fs/cifs/trace.h b/fs/smb/client/trace.h
similarity index 100%
rename from fs/cifs/trace.h
rename to fs/smb/client/trace.h
diff --git a/fs/cifs/transport.c b/fs/smb/client/transport.c
similarity index 100%
rename from fs/cifs/transport.c
rename to fs/smb/client/transport.c
diff --git a/fs/cifs/unc.c b/fs/smb/client/unc.c
similarity index 100%
rename from fs/cifs/unc.c
rename to fs/smb/client/unc.c
diff --git a/fs/cifs/winucase.c b/fs/smb/client/winucase.c
similarity index 100%
rename from fs/cifs/winucase.c
rename to fs/smb/client/winucase.c
diff --git a/fs/cifs/xattr.c b/fs/smb/client/xattr.c
similarity index 100%
rename from fs/cifs/xattr.c
rename to fs/smb/client/xattr.c
diff --git a/fs/smbfs_common/Makefile b/fs/smb/common/Makefile
similarity index 100%
rename from fs/smbfs_common/Makefile
rename to fs/smb/common/Makefile
diff --git a/fs/smbfs_common/arc4.h b/fs/smb/common/arc4.h
similarity index 100%
rename from fs/smbfs_common/arc4.h
rename to fs/smb/common/arc4.h
diff --git a/fs/smbfs_common/cifs_arc4.c b/fs/smb/common/cifs_arc4.c
similarity index 100%
rename from fs/smbfs_common/cifs_arc4.c
rename to fs/smb/common/cifs_arc4.c
diff --git a/fs/smbfs_common/cifs_md4.c b/fs/smb/common/cifs_md4.c
similarity index 100%
rename from fs/smbfs_common/cifs_md4.c
rename to fs/smb/common/cifs_md4.c
diff --git a/fs/smbfs_common/md4.h b/fs/smb/common/md4.h
similarity index 100%
rename from fs/smbfs_common/md4.h
rename to fs/smb/common/md4.h
diff --git a/fs/smbfs_common/smb2pdu.h b/fs/smb/common/smb2pdu.h
similarity index 100%
rename from fs/smbfs_common/smb2pdu.h
rename to fs/smb/common/smb2pdu.h
diff --git a/fs/smbfs_common/smbfsctl.h b/fs/smb/common/smbfsctl.h
similarity index 100%
rename from fs/smbfs_common/smbfsctl.h
rename to fs/smb/common/smbfsctl.h
diff --git a/fs/ksmbd/Kconfig b/fs/smb/server/Kconfig
similarity index 100%
rename from fs/ksmbd/Kconfig
rename to fs/smb/server/Kconfig
diff --git a/fs/ksmbd/Makefile b/fs/smb/server/Makefile
similarity index 100%
rename from fs/ksmbd/Makefile
rename to fs/smb/server/Makefile
diff --git a/fs/ksmbd/asn1.c b/fs/smb/server/asn1.c
similarity index 100%
rename from fs/ksmbd/asn1.c
rename to fs/smb/server/asn1.c
diff --git a/fs/ksmbd/asn1.h b/fs/smb/server/asn1.h
similarity index 100%
rename from fs/ksmbd/asn1.h
rename to fs/smb/server/asn1.h
diff --git a/fs/ksmbd/auth.c b/fs/smb/server/auth.c
similarity index 99%
rename from fs/ksmbd/auth.c
rename to fs/smb/server/auth.c
index df8fb076f6f1..5e5e120edcc2 100644
--- a/fs/ksmbd/auth.c
+++ b/fs/smb/server/auth.c
@@ -29,7 +29,7 @@
 #include "mgmt/user_config.h"
 #include "crypto_ctx.h"
 #include "transport_ipc.h"
-#include "../smbfs_common/arc4.h"
+#include "../common/arc4.h"
 
 /*
  * Fixed format data defining GSS header and fixed string
diff --git a/fs/ksmbd/auth.h b/fs/smb/server/auth.h
similarity index 100%
rename from fs/ksmbd/auth.h
rename to fs/smb/server/auth.h
diff --git a/fs/ksmbd/connection.c b/fs/smb/server/connection.c
similarity index 100%
rename from fs/ksmbd/connection.c
rename to fs/smb/server/connection.c
diff --git a/fs/ksmbd/connection.h b/fs/smb/server/connection.h
similarity index 100%
rename from fs/ksmbd/connection.h
rename to fs/smb/server/connection.h
diff --git a/fs/ksmbd/crypto_ctx.c b/fs/smb/server/crypto_ctx.c
similarity index 100%
rename from fs/ksmbd/crypto_ctx.c
rename to fs/smb/server/crypto_ctx.c
diff --git a/fs/ksmbd/crypto_ctx.h b/fs/smb/server/crypto_ctx.h
similarity index 100%
rename from fs/ksmbd/crypto_ctx.h
rename to fs/smb/server/crypto_ctx.h
diff --git a/fs/ksmbd/glob.h b/fs/smb/server/glob.h
similarity index 100%
rename from fs/ksmbd/glob.h
rename to fs/smb/server/glob.h
diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/smb/server/ksmbd_netlink.h
similarity index 100%
rename from fs/ksmbd/ksmbd_netlink.h
rename to fs/smb/server/ksmbd_netlink.h
diff --git a/fs/ksmbd/ksmbd_spnego_negtokeninit.asn1 b/fs/smb/server/ksmbd_spnego_negtokeninit.asn1
similarity index 100%
rename from fs/ksmbd/ksmbd_spnego_negtokeninit.asn1
rename to fs/smb/server/ksmbd_spnego_negtokeninit.asn1
diff --git a/fs/ksmbd/ksmbd_spnego_negtokentarg.asn1 b/fs/smb/server/ksmbd_spnego_negtokentarg.asn1
similarity index 100%
rename from fs/ksmbd/ksmbd_spnego_negtokentarg.asn1
rename to fs/smb/server/ksmbd_spnego_negtokentarg.asn1
diff --git a/fs/ksmbd/ksmbd_work.c b/fs/smb/server/ksmbd_work.c
similarity index 100%
rename from fs/ksmbd/ksmbd_work.c
rename to fs/smb/server/ksmbd_work.c
diff --git a/fs/ksmbd/ksmbd_work.h b/fs/smb/server/ksmbd_work.h
similarity index 100%
rename from fs/ksmbd/ksmbd_work.h
rename to fs/smb/server/ksmbd_work.h
diff --git a/fs/ksmbd/mgmt/ksmbd_ida.c b/fs/smb/server/mgmt/ksmbd_ida.c
similarity index 100%
rename from fs/ksmbd/mgmt/ksmbd_ida.c
rename to fs/smb/server/mgmt/ksmbd_ida.c
diff --git a/fs/ksmbd/mgmt/ksmbd_ida.h b/fs/smb/server/mgmt/ksmbd_ida.h
similarity index 100%
rename from fs/ksmbd/mgmt/ksmbd_ida.h
rename to fs/smb/server/mgmt/ksmbd_ida.h
diff --git a/fs/ksmbd/mgmt/share_config.c b/fs/smb/server/mgmt/share_config.c
similarity index 100%
rename from fs/ksmbd/mgmt/share_config.c
rename to fs/smb/server/mgmt/share_config.c
diff --git a/fs/ksmbd/mgmt/share_config.h b/fs/smb/server/mgmt/share_config.h
similarity index 100%
rename from fs/ksmbd/mgmt/share_config.h
rename to fs/smb/server/mgmt/share_config.h
diff --git a/fs/ksmbd/mgmt/tree_connect.c b/fs/smb/server/mgmt/tree_connect.c
similarity index 100%
rename from fs/ksmbd/mgmt/tree_connect.c
rename to fs/smb/server/mgmt/tree_connect.c
diff --git a/fs/ksmbd/mgmt/tree_connect.h b/fs/smb/server/mgmt/tree_connect.h
similarity index 100%
rename from fs/ksmbd/mgmt/tree_connect.h
rename to fs/smb/server/mgmt/tree_connect.h
diff --git a/fs/ksmbd/mgmt/user_config.c b/fs/smb/server/mgmt/user_config.c
similarity index 100%
rename from fs/ksmbd/mgmt/user_config.c
rename to fs/smb/server/mgmt/user_config.c
diff --git a/fs/ksmbd/mgmt/user_config.h b/fs/smb/server/mgmt/user_config.h
similarity index 100%
rename from fs/ksmbd/mgmt/user_config.h
rename to fs/smb/server/mgmt/user_config.h
diff --git a/fs/ksmbd/mgmt/user_session.c b/fs/smb/server/mgmt/user_session.c
similarity index 100%
rename from fs/ksmbd/mgmt/user_session.c
rename to fs/smb/server/mgmt/user_session.c
diff --git a/fs/ksmbd/mgmt/user_session.h b/fs/smb/server/mgmt/user_session.h
similarity index 100%
rename from fs/ksmbd/mgmt/user_session.h
rename to fs/smb/server/mgmt/user_session.h
diff --git a/fs/ksmbd/misc.c b/fs/smb/server/misc.c
similarity index 100%
rename from fs/ksmbd/misc.c
rename to fs/smb/server/misc.c
diff --git a/fs/ksmbd/misc.h b/fs/smb/server/misc.h
similarity index 100%
rename from fs/ksmbd/misc.h
rename to fs/smb/server/misc.h
diff --git a/fs/ksmbd/ndr.c b/fs/smb/server/ndr.c
similarity index 100%
rename from fs/ksmbd/ndr.c
rename to fs/smb/server/ndr.c
diff --git a/fs/ksmbd/ndr.h b/fs/smb/server/ndr.h
similarity index 100%
rename from fs/ksmbd/ndr.h
rename to fs/smb/server/ndr.h
diff --git a/fs/ksmbd/nterr.h b/fs/smb/server/nterr.h
similarity index 100%
rename from fs/ksmbd/nterr.h
rename to fs/smb/server/nterr.h
diff --git a/fs/ksmbd/ntlmssp.h b/fs/smb/server/ntlmssp.h
similarity index 100%
rename from fs/ksmbd/ntlmssp.h
rename to fs/smb/server/ntlmssp.h
diff --git a/fs/ksmbd/oplock.c b/fs/smb/server/oplock.c
similarity index 100%
rename from fs/ksmbd/oplock.c
rename to fs/smb/server/oplock.c
diff --git a/fs/ksmbd/oplock.h b/fs/smb/server/oplock.h
similarity index 100%
rename from fs/ksmbd/oplock.h
rename to fs/smb/server/oplock.h
diff --git a/fs/ksmbd/server.c b/fs/smb/server/server.c
similarity index 100%
rename from fs/ksmbd/server.c
rename to fs/smb/server/server.c
diff --git a/fs/ksmbd/server.h b/fs/smb/server/server.h
similarity index 100%
rename from fs/ksmbd/server.h
rename to fs/smb/server/server.h
diff --git a/fs/ksmbd/smb2misc.c b/fs/smb/server/smb2misc.c
similarity index 100%
rename from fs/ksmbd/smb2misc.c
rename to fs/smb/server/smb2misc.c
diff --git a/fs/ksmbd/smb2ops.c b/fs/smb/server/smb2ops.c
similarity index 100%
rename from fs/ksmbd/smb2ops.c
rename to fs/smb/server/smb2ops.c
diff --git a/fs/ksmbd/smb2pdu.c b/fs/smb/server/smb2pdu.c
similarity index 100%
rename from fs/ksmbd/smb2pdu.c
rename to fs/smb/server/smb2pdu.c
diff --git a/fs/ksmbd/smb2pdu.h b/fs/smb/server/smb2pdu.h
similarity index 100%
rename from fs/ksmbd/smb2pdu.h
rename to fs/smb/server/smb2pdu.h
diff --git a/fs/ksmbd/smb_common.c b/fs/smb/server/smb_common.c
similarity index 100%
rename from fs/ksmbd/smb_common.c
rename to fs/smb/server/smb_common.c
diff --git a/fs/ksmbd/smb_common.h b/fs/smb/server/smb_common.h
similarity index 99%
rename from fs/ksmbd/smb_common.h
rename to fs/smb/server/smb_common.h
index 9130d2e3cd78..6b0d5f1fe85c 100644
--- a/fs/ksmbd/smb_common.h
+++ b/fs/smb/server/smb_common.h
@@ -10,7 +10,7 @@
 
 #include "glob.h"
 #include "nterr.h"
-#include "../smbfs_common/smb2pdu.h"
+#include "../common/smb2pdu.h"
 #include "smb2pdu.h"
 
 /* ksmbd's Specific ERRNO */
diff --git a/fs/ksmbd/smbacl.c b/fs/smb/server/smbacl.c
similarity index 100%
rename from fs/ksmbd/smbacl.c
rename to fs/smb/server/smbacl.c
diff --git a/fs/ksmbd/smbacl.h b/fs/smb/server/smbacl.h
similarity index 100%
rename from fs/ksmbd/smbacl.h
rename to fs/smb/server/smbacl.h
diff --git a/fs/ksmbd/smbfsctl.h b/fs/smb/server/smbfsctl.h
similarity index 100%
rename from fs/ksmbd/smbfsctl.h
rename to fs/smb/server/smbfsctl.h
diff --git a/fs/ksmbd/smbstatus.h b/fs/smb/server/smbstatus.h
similarity index 100%
rename from fs/ksmbd/smbstatus.h
rename to fs/smb/server/smbstatus.h
diff --git a/fs/ksmbd/transport_ipc.c b/fs/smb/server/transport_ipc.c
similarity index 100%
rename from fs/ksmbd/transport_ipc.c
rename to fs/smb/server/transport_ipc.c
diff --git a/fs/ksmbd/transport_ipc.h b/fs/smb/server/transport_ipc.h
similarity index 100%
rename from fs/ksmbd/transport_ipc.h
rename to fs/smb/server/transport_ipc.h
diff --git a/fs/ksmbd/transport_rdma.c b/fs/smb/server/transport_rdma.c
similarity index 100%
rename from fs/ksmbd/transport_rdma.c
rename to fs/smb/server/transport_rdma.c
diff --git a/fs/ksmbd/transport_rdma.h b/fs/smb/server/transport_rdma.h
similarity index 100%
rename from fs/ksmbd/transport_rdma.h
rename to fs/smb/server/transport_rdma.h
diff --git a/fs/ksmbd/transport_tcp.c b/fs/smb/server/transport_tcp.c
similarity index 100%
rename from fs/ksmbd/transport_tcp.c
rename to fs/smb/server/transport_tcp.c
diff --git a/fs/ksmbd/transport_tcp.h b/fs/smb/server/transport_tcp.h
similarity index 100%
rename from fs/ksmbd/transport_tcp.h
rename to fs/smb/server/transport_tcp.h
diff --git a/fs/ksmbd/unicode.c b/fs/smb/server/unicode.c
similarity index 100%
rename from fs/ksmbd/unicode.c
rename to fs/smb/server/unicode.c
diff --git a/fs/ksmbd/unicode.h b/fs/smb/server/unicode.h
similarity index 100%
rename from fs/ksmbd/unicode.h
rename to fs/smb/server/unicode.h
diff --git a/fs/ksmbd/uniupr.h b/fs/smb/server/uniupr.h
similarity index 100%
rename from fs/ksmbd/uniupr.h
rename to fs/smb/server/uniupr.h
diff --git a/fs/ksmbd/vfs.c b/fs/smb/server/vfs.c
similarity index 100%
rename from fs/ksmbd/vfs.c
rename to fs/smb/server/vfs.c
diff --git a/fs/ksmbd/vfs.h b/fs/smb/server/vfs.h
similarity index 100%
rename from fs/ksmbd/vfs.h
rename to fs/smb/server/vfs.h
diff --git a/fs/ksmbd/vfs_cache.c b/fs/smb/server/vfs_cache.c
similarity index 100%
rename from fs/ksmbd/vfs_cache.c
rename to fs/smb/server/vfs_cache.c
diff --git a/fs/ksmbd/vfs_cache.h b/fs/smb/server/vfs_cache.h
similarity index 100%
rename from fs/ksmbd/vfs_cache.h
rename to fs/smb/server/vfs_cache.h
diff --git a/fs/ksmbd/xattr.h b/fs/smb/server/xattr.h
similarity index 100%
rename from fs/ksmbd/xattr.h
rename to fs/smb/server/xattr.h
-- 
2.34.1


[-- Attachment #4: 0003-smb3-move-Documentation-filesystems-cifs-to-Document.patch --]
[-- Type: text/x-patch, Size: 2161 bytes --]

From 449ef93f80ae51c0edac57d74aae3bc113dcca58 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Mon, 22 May 2023 09:50:33 -0500
Subject: [PATCH 3/3] smb3: move Documentation/filesystems/cifs to
 Documentation/filesystems/smb

Documentation/filesystems/cifs contains both server and client information
so its pathname is misleading.  In addition, the directory fs/smb
now contains both server and client, so move Documentation/filesystems/cifs
to Documentation/filesystems/smb

Suggested-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 Documentation/filesystems/{cifs => smb}/cifsroot.rst | 0
 Documentation/filesystems/{cifs => smb}/index.rst    | 0
 Documentation/filesystems/{cifs => smb}/ksmbd.rst    | 0
 MAINTAINERS                                          | 2 +-
 4 files changed, 1 insertion(+), 1 deletion(-)
 rename Documentation/filesystems/{cifs => smb}/cifsroot.rst (100%)
 rename Documentation/filesystems/{cifs => smb}/index.rst (100%)
 rename Documentation/filesystems/{cifs => smb}/ksmbd.rst (100%)

diff --git a/Documentation/filesystems/cifs/cifsroot.rst b/Documentation/filesystems/smb/cifsroot.rst
similarity index 100%
rename from Documentation/filesystems/cifs/cifsroot.rst
rename to Documentation/filesystems/smb/cifsroot.rst
diff --git a/Documentation/filesystems/cifs/index.rst b/Documentation/filesystems/smb/index.rst
similarity index 100%
rename from Documentation/filesystems/cifs/index.rst
rename to Documentation/filesystems/smb/index.rst
diff --git a/Documentation/filesystems/cifs/ksmbd.rst b/Documentation/filesystems/smb/ksmbd.rst
similarity index 100%
rename from Documentation/filesystems/cifs/ksmbd.rst
rename to Documentation/filesystems/smb/ksmbd.rst
diff --git a/MAINTAINERS b/MAINTAINERS
index 902f763e845d..6152a4251ce7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11300,7 +11300,7 @@ R:	Tom Talpey <tom@talpey.com>
 L:	linux-cifs@vger.kernel.org
 S:	Maintained
 T:	git git://git.samba.org/ksmbd.git
-F:	Documentation/filesystems/cifs/ksmbd.rst
+F:	Documentation/filesystems/smb/ksmbd.rst
 F:	fs/smb/common/
 F:	fs/smb/server/
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: patches to move ksmbd and cifs under new subdirectory
  2023-05-22 16:33 patches to move ksmbd and cifs under new subdirectory Steve French
@ 2023-05-22 17:20 ` Tom Talpey
  2023-05-22 17:33 ` Linus Torvalds
  1 sibling, 0 replies; 7+ messages in thread
From: Tom Talpey @ 2023-05-22 17:20 UTC (permalink / raw)
  To: Steve French, CIFS
  Cc: Linus Torvalds, samba-technical, Namjae Jeon, LKML, linux-fsdevel

On 5/22/2023 12:33 PM, Steve French wrote:
> Following up on the email thread suggestion to move fs/ksmbd and
> fs/cifs and fs/smbfs_common all under a common directory fs/smb, here
> is an updated
> patchset for that (added one small patch).
> 
> 
>      1) smb3: move Documentation/filesystems/cifs to
> Documentation/filesystems/smb
>      As suggested by Namjae, update the directory for ksmbd/cifs.ko
> Documentation.
>      Documentation/filesystems/cifs contains both server and client information
>      so its pathname is misleading.  In addition, the directory fs/smb
>      now contains both server and client, so move Documentation/filesystems/cifs
>      to Documentation/filesystems/smb
> 
>      Suggested-by: Namjae Jeon <linkinjeon@kernel.org>
> 
> 2) cifs: correct references in Documentation to old fs/cifs path
>      The fs/cifs directory has moved to fs/smb/client, correct mentions
>      of this in Documentation and comments.
> 
> 3)  smb: move client and server files to common directory fs/smb
>     As suggested by Linus, move CIFS/SMB3 related client and server
>     files (cifs.ko and ksmbd.ko and helper modules) to new fs/smb subdirectory:
> 
>         fs/cifs --> fs/smb/client
>         fs/ksmbd --> fs/smb/server
>         fs/smbfs_common --> fs/smb/conmon

There's a typo "conmon" here, which is also present in the changelog.
The "git mv" in the patch is correct.

Regarding the fs/smb/Kconfig, curious why "CIFS" selects SMB_CLIENT?
There's no need to bring in the client in a server-only config.
Or, did this mean to be SMBFS to bring in fs/smb/common instead?
Or, maybe it's time to do away with the "CIFS" option entirely?

config CIFS
  	tristate "SMB3 and CIFS support (advanced network filesystem)"
  	depends on INET
+	select SMB_CLIENT <-- ??
  	select NLS
  	select CRYPTO
  	select CRYPTO_MD5

Either way, is this second SMB_CLIENT=y in fs/smb/Kconfig a typo? Should
it be =m?

+config SMBFS
+	tristate
+	default y if CIFS=y || SMB_CLIENT=y || SMB_SERVER=y
+	default m if CIFS=m || SMB_CLIENT=y  <-- ? || SMB_SERVER=m

Tom.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: patches to move ksmbd and cifs under new subdirectory
  2023-05-22 16:33 patches to move ksmbd and cifs under new subdirectory Steve French
  2023-05-22 17:20 ` Tom Talpey
@ 2023-05-22 17:33 ` Linus Torvalds
  2023-05-23  6:39   ` Steve French
  1 sibling, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2023-05-22 17:33 UTC (permalink / raw)
  To: Steve French; +Cc: CIFS, samba-technical, Namjae Jeon, LKML, linux-fsdevel

On Mon, May 22, 2023 at 9:33 AM Steve French <smfrench@gmail.com> wrote:
>
> Following up on the email thread suggestion to move fs/ksmbd and
> fs/cifs and fs/smbfs_common all under a common directory fs/smb, here
> is an updated patchset for that (added one small patch).

Looks fine to me.

I wouldn't have noticed the typo that Tom Talpey mentioned (misspelled
"common" in the commit message of the first patch), and that
SMB_CLIENT config variable is odd.

I'm actually surprised that Kconfig didn't complain about the

        select SMB_CLIENT

when there is no actual declaration of that Kconfig variable, just a random use.

That thing seems confusing and confused, and isn't related to the
renaming, so please drop the new random SMB_CLIENT config variable. If
you want to introduce a new Kconfig variable later for some reason,
that's fine, but please don't mix those kinds of changes up with pure
renames..

                Linus

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: patches to move ksmbd and cifs under new subdirectory
  2023-05-22 17:33 ` Linus Torvalds
@ 2023-05-23  6:39   ` Steve French
  2023-05-23 17:34     ` Linus Torvalds
  0 siblings, 1 reply; 7+ messages in thread
From: Steve French @ 2023-05-23  6:39 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: CIFS, samba-technical, Namjae Jeon, LKML, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 1891 bytes --]

On Mon, May 22, 2023 at 12:33 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Mon, May 22, 2023 at 9:33 AM Steve French <smfrench@gmail.com> wrote:
> >
> > Following up on the email thread suggestion to move fs/ksmbd and
> > fs/cifs and fs/smbfs_common all under a common directory fs/smb, here
> > is an updated patchset for that (added one small patch).
>
> Looks fine to me.
>
> I wouldn't have noticed the typo that Tom Talpey mentioned (misspelled
> "common" in the commit message of the first patch), and that
> SMB_CLIENT config variable is odd.
>
> I'm actually surprised that Kconfig didn't complain about the
>
>         select SMB_CLIENT
>
> when there is no actual declaration of that Kconfig variable, just a random use.
>
> That thing seems confusing and confused, and isn't related to the
> renaming, so please drop the new random SMB_CLIENT config variable. If
> you want to introduce a new Kconfig variable later for some reason,
> that's fine, but please don't mix those kinds of changes up with pure
> renames.

I have removed CONFIG_SMB_CLIENT (and fixed the spelling typo in the comment).
Updated patch 1 attached (the other two are unchanged).

My reason for adding CONFIG_SMB_CLIENT, enabling CONFIG_SMB_CLIENT
when CONFIG_CIFS was enabled, I was trying to make the Makefile more clear
(without changing any behavior):

e.g. this seemed less confusing
+++ b/fs/smb/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_SMBFS)            += common/
+obj-$(CONFIG_SMB_CLIENT)      += client/
+obj-$(CONFIG_SMB_SERVER)       += server/

instead of

+++ b/fs/smb/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_SMBFS)         += common/
+obj-$(CONFIG_CIFS)             += client/
+obj-$(CONFIG_SMB_SERVER)       += server/

-- 
Thanks,

Steve

[-- Attachment #2: 0001-smb-move-client-and-server-files-to-common-directory.patch --]
[-- Type: text/x-patch, Size: 42837 bytes --]

From ac5c855ee550308f1e3885ebc84b8d034e35c08d Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Sun, 21 May 2023 20:46:30 -0500
Subject: [PATCH 1/3] smb: move client and server files to common directory
 fs/smb

Move CIFS/SMB3 related client and server files (cifs.ko and ksmbd.ko
and helper modules) to new fs/smb subdirectory:

   fs/cifs --> fs/smb/client
   fs/ksmbd --> fs/smb/server
   fs/smbfs_common --> fs/smb/common

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 MAINTAINERS                                           |  8 ++++----
 fs/Kconfig                                            |  9 +--------
 fs/Makefile                                           |  4 +---
 fs/smb/Kconfig                                        | 11 +++++++++++
 fs/smb/Makefile                                       |  5 +++++
 fs/{cifs => smb/client}/Makefile                      |  0
 fs/{cifs => smb/client}/asn1.c                        |  0
 fs/{cifs => smb/client}/cached_dir.c                  |  0
 fs/{cifs => smb/client}/cached_dir.h                  |  0
 fs/{cifs => smb/client}/cifs_debug.c                  |  0
 fs/{cifs => smb/client}/cifs_debug.h                  |  0
 fs/{cifs => smb/client}/cifs_dfs_ref.c                |  0
 fs/{cifs => smb/client}/cifs_fs_sb.h                  |  0
 fs/{cifs => smb/client}/cifs_ioctl.h                  |  0
 fs/{cifs => smb/client}/cifs_spnego.c                 |  0
 fs/{cifs => smb/client}/cifs_spnego.h                 |  0
 fs/{cifs => smb/client}/cifs_spnego_negtokeninit.asn1 |  0
 fs/{cifs => smb/client}/cifs_swn.c                    |  0
 fs/{cifs => smb/client}/cifs_swn.h                    |  0
 fs/{cifs => smb/client}/cifs_unicode.c                |  0
 fs/{cifs => smb/client}/cifs_unicode.h                |  0
 fs/{cifs => smb/client}/cifs_uniupr.h                 |  0
 fs/{cifs => smb/client}/cifsacl.c                     |  0
 fs/{cifs => smb/client}/cifsacl.h                     |  0
 fs/{cifs => smb/client}/cifsencrypt.c                 |  2 +-
 fs/{cifs => smb/client}/cifsfs.c                      |  0
 fs/{cifs => smb/client}/cifsfs.h                      |  0
 fs/{cifs => smb/client}/cifsglob.h                    |  2 +-
 fs/{cifs => smb/client}/cifspdu.h                     |  2 +-
 fs/{cifs => smb/client}/cifsproto.h                   |  0
 fs/{cifs => smb/client}/cifsroot.c                    |  0
 fs/{cifs => smb/client}/cifssmb.c                     |  0
 fs/{cifs => smb/client}/connect.c                     |  0
 fs/{cifs => smb/client}/dfs.c                         |  0
 fs/{cifs => smb/client}/dfs.h                         |  0
 fs/{cifs => smb/client}/dfs_cache.c                   |  0
 fs/{cifs => smb/client}/dfs_cache.h                   |  0
 fs/{cifs => smb/client}/dir.c                         |  0
 fs/{cifs => smb/client}/dns_resolve.c                 |  0
 fs/{cifs => smb/client}/dns_resolve.h                 |  0
 fs/{cifs => smb/client}/export.c                      |  0
 fs/{cifs => smb/client}/file.c                        |  0
 fs/{cifs => smb/client}/fs_context.c                  |  0
 fs/{cifs => smb/client}/fs_context.h                  |  0
 fs/{cifs => smb/client}/fscache.c                     |  0
 fs/{cifs => smb/client}/fscache.h                     |  0
 fs/{cifs => smb/client}/inode.c                       |  0
 fs/{cifs => smb/client}/ioctl.c                       |  0
 fs/{cifs => smb/client}/link.c                        |  0
 fs/{cifs => smb/client}/misc.c                        |  0
 fs/{cifs => smb/client}/netlink.c                     |  0
 fs/{cifs => smb/client}/netlink.h                     |  0
 fs/{cifs => smb/client}/netmisc.c                     |  0
 fs/{cifs => smb/client}/nterr.c                       |  0
 fs/{cifs => smb/client}/nterr.h                       |  0
 fs/{cifs => smb/client}/ntlmssp.h                     |  0
 fs/{cifs => smb/client}/readdir.c                     |  0
 fs/{cifs => smb/client}/rfc1002pdu.h                  |  0
 fs/{cifs => smb/client}/sess.c                        |  0
 fs/{cifs => smb/client}/smb1ops.c                     |  0
 fs/{cifs => smb/client}/smb2file.c                    |  0
 fs/{cifs => smb/client}/smb2glob.h                    |  0
 fs/{cifs => smb/client}/smb2inode.c                   |  0
 fs/{cifs => smb/client}/smb2maperror.c                |  0
 fs/{cifs => smb/client}/smb2misc.c                    |  0
 fs/{cifs => smb/client}/smb2ops.c                     |  0
 fs/{cifs => smb/client}/smb2pdu.c                     |  0
 fs/{cifs => smb/client}/smb2pdu.h                     |  0
 fs/{cifs => smb/client}/smb2proto.h                   |  0
 fs/{cifs => smb/client}/smb2status.h                  |  0
 fs/{cifs => smb/client}/smb2transport.c               |  0
 fs/{cifs => smb/client}/smbdirect.c                   |  0
 fs/{cifs => smb/client}/smbdirect.h                   |  0
 fs/{cifs => smb/client}/smbencrypt.c                  |  2 +-
 fs/{cifs => smb/client}/smberr.h                      |  0
 fs/{cifs => smb/client}/trace.c                       |  0
 fs/{cifs => smb/client}/trace.h                       |  0
 fs/{cifs => smb/client}/transport.c                   |  0
 fs/{cifs => smb/client}/unc.c                         |  0
 fs/{cifs => smb/client}/winucase.c                    |  0
 fs/{cifs => smb/client}/xattr.c                       |  0
 fs/{smbfs_common => smb/common}/Makefile              |  0
 fs/{smbfs_common => smb/common}/arc4.h                |  0
 fs/{smbfs_common => smb/common}/cifs_arc4.c           |  0
 fs/{smbfs_common => smb/common}/cifs_md4.c            |  0
 fs/{smbfs_common => smb/common}/md4.h                 |  0
 fs/{smbfs_common => smb/common}/smb2pdu.h             |  0
 fs/{smbfs_common => smb/common}/smbfsctl.h            |  0
 fs/{ksmbd => smb/server}/Kconfig                      |  0
 fs/{ksmbd => smb/server}/Makefile                     |  0
 fs/{ksmbd => smb/server}/asn1.c                       |  0
 fs/{ksmbd => smb/server}/asn1.h                       |  0
 fs/{ksmbd => smb/server}/auth.c                       |  2 +-
 fs/{ksmbd => smb/server}/auth.h                       |  0
 fs/{ksmbd => smb/server}/connection.c                 |  0
 fs/{ksmbd => smb/server}/connection.h                 |  0
 fs/{ksmbd => smb/server}/crypto_ctx.c                 |  0
 fs/{ksmbd => smb/server}/crypto_ctx.h                 |  0
 fs/{ksmbd => smb/server}/glob.h                       |  0
 fs/{ksmbd => smb/server}/ksmbd_netlink.h              |  0
 .../server}/ksmbd_spnego_negtokeninit.asn1            |  0
 .../server}/ksmbd_spnego_negtokentarg.asn1            |  0
 fs/{ksmbd => smb/server}/ksmbd_work.c                 |  0
 fs/{ksmbd => smb/server}/ksmbd_work.h                 |  0
 fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.c             |  0
 fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.h             |  0
 fs/{ksmbd => smb/server}/mgmt/share_config.c          |  0
 fs/{ksmbd => smb/server}/mgmt/share_config.h          |  0
 fs/{ksmbd => smb/server}/mgmt/tree_connect.c          |  0
 fs/{ksmbd => smb/server}/mgmt/tree_connect.h          |  0
 fs/{ksmbd => smb/server}/mgmt/user_config.c           |  0
 fs/{ksmbd => smb/server}/mgmt/user_config.h           |  0
 fs/{ksmbd => smb/server}/mgmt/user_session.c          |  0
 fs/{ksmbd => smb/server}/mgmt/user_session.h          |  0
 fs/{ksmbd => smb/server}/misc.c                       |  0
 fs/{ksmbd => smb/server}/misc.h                       |  0
 fs/{ksmbd => smb/server}/ndr.c                        |  0
 fs/{ksmbd => smb/server}/ndr.h                        |  0
 fs/{ksmbd => smb/server}/nterr.h                      |  0
 fs/{ksmbd => smb/server}/ntlmssp.h                    |  0
 fs/{ksmbd => smb/server}/oplock.c                     |  0
 fs/{ksmbd => smb/server}/oplock.h                     |  0
 fs/{ksmbd => smb/server}/server.c                     |  0
 fs/{ksmbd => smb/server}/server.h                     |  0
 fs/{ksmbd => smb/server}/smb2misc.c                   |  0
 fs/{ksmbd => smb/server}/smb2ops.c                    |  0
 fs/{ksmbd => smb/server}/smb2pdu.c                    |  0
 fs/{ksmbd => smb/server}/smb2pdu.h                    |  0
 fs/{ksmbd => smb/server}/smb_common.c                 |  0
 fs/{ksmbd => smb/server}/smb_common.h                 |  2 +-
 fs/{ksmbd => smb/server}/smbacl.c                     |  0
 fs/{ksmbd => smb/server}/smbacl.h                     |  0
 fs/{ksmbd => smb/server}/smbfsctl.h                   |  0
 fs/{ksmbd => smb/server}/smbstatus.h                  |  0
 fs/{ksmbd => smb/server}/transport_ipc.c              |  0
 fs/{ksmbd => smb/server}/transport_ipc.h              |  0
 fs/{ksmbd => smb/server}/transport_rdma.c             |  0
 fs/{ksmbd => smb/server}/transport_rdma.h             |  0
 fs/{ksmbd => smb/server}/transport_tcp.c              |  0
 fs/{ksmbd => smb/server}/transport_tcp.h              |  0
 fs/{ksmbd => smb/server}/unicode.c                    |  0
 fs/{ksmbd => smb/server}/unicode.h                    |  0
 fs/{ksmbd => smb/server}/uniupr.h                     |  0
 fs/{ksmbd => smb/server}/vfs.c                        |  0
 fs/{ksmbd => smb/server}/vfs.h                        |  0
 fs/{ksmbd => smb/server}/vfs_cache.c                  |  0
 fs/{ksmbd => smb/server}/vfs_cache.h                  |  0
 fs/{ksmbd => smb/server}/xattr.h                      |  0
 148 files changed, 28 insertions(+), 21 deletions(-)
 create mode 100644 fs/smb/Kconfig
 create mode 100644 fs/smb/Makefile
 rename fs/{cifs => smb/client}/Makefile (100%)
 rename fs/{cifs => smb/client}/asn1.c (100%)
 rename fs/{cifs => smb/client}/cached_dir.c (100%)
 rename fs/{cifs => smb/client}/cached_dir.h (100%)
 rename fs/{cifs => smb/client}/cifs_debug.c (100%)
 rename fs/{cifs => smb/client}/cifs_debug.h (100%)
 rename fs/{cifs => smb/client}/cifs_dfs_ref.c (100%)
 rename fs/{cifs => smb/client}/cifs_fs_sb.h (100%)
 rename fs/{cifs => smb/client}/cifs_ioctl.h (100%)
 rename fs/{cifs => smb/client}/cifs_spnego.c (100%)
 rename fs/{cifs => smb/client}/cifs_spnego.h (100%)
 rename fs/{cifs => smb/client}/cifs_spnego_negtokeninit.asn1 (100%)
 rename fs/{cifs => smb/client}/cifs_swn.c (100%)
 rename fs/{cifs => smb/client}/cifs_swn.h (100%)
 rename fs/{cifs => smb/client}/cifs_unicode.c (100%)
 rename fs/{cifs => smb/client}/cifs_unicode.h (100%)
 rename fs/{cifs => smb/client}/cifs_uniupr.h (100%)
 rename fs/{cifs => smb/client}/cifsacl.c (100%)
 rename fs/{cifs => smb/client}/cifsacl.h (100%)
 rename fs/{cifs => smb/client}/cifsencrypt.c (99%)
 rename fs/{cifs => smb/client}/cifsfs.c (100%)
 rename fs/{cifs => smb/client}/cifsfs.h (100%)
 rename fs/{cifs => smb/client}/cifsglob.h (99%)
 rename fs/{cifs => smb/client}/cifspdu.h (99%)
 rename fs/{cifs => smb/client}/cifsproto.h (100%)
 rename fs/{cifs => smb/client}/cifsroot.c (100%)
 rename fs/{cifs => smb/client}/cifssmb.c (100%)
 rename fs/{cifs => smb/client}/connect.c (100%)
 rename fs/{cifs => smb/client}/dfs.c (100%)
 rename fs/{cifs => smb/client}/dfs.h (100%)
 rename fs/{cifs => smb/client}/dfs_cache.c (100%)
 rename fs/{cifs => smb/client}/dfs_cache.h (100%)
 rename fs/{cifs => smb/client}/dir.c (100%)
 rename fs/{cifs => smb/client}/dns_resolve.c (100%)
 rename fs/{cifs => smb/client}/dns_resolve.h (100%)
 rename fs/{cifs => smb/client}/export.c (100%)
 rename fs/{cifs => smb/client}/file.c (100%)
 rename fs/{cifs => smb/client}/fs_context.c (100%)
 rename fs/{cifs => smb/client}/fs_context.h (100%)
 rename fs/{cifs => smb/client}/fscache.c (100%)
 rename fs/{cifs => smb/client}/fscache.h (100%)
 rename fs/{cifs => smb/client}/inode.c (100%)
 rename fs/{cifs => smb/client}/ioctl.c (100%)
 rename fs/{cifs => smb/client}/link.c (100%)
 rename fs/{cifs => smb/client}/misc.c (100%)
 rename fs/{cifs => smb/client}/netlink.c (100%)
 rename fs/{cifs => smb/client}/netlink.h (100%)
 rename fs/{cifs => smb/client}/netmisc.c (100%)
 rename fs/{cifs => smb/client}/nterr.c (100%)
 rename fs/{cifs => smb/client}/nterr.h (100%)
 rename fs/{cifs => smb/client}/ntlmssp.h (100%)
 rename fs/{cifs => smb/client}/readdir.c (100%)
 rename fs/{cifs => smb/client}/rfc1002pdu.h (100%)
 rename fs/{cifs => smb/client}/sess.c (100%)
 rename fs/{cifs => smb/client}/smb1ops.c (100%)
 rename fs/{cifs => smb/client}/smb2file.c (100%)
 rename fs/{cifs => smb/client}/smb2glob.h (100%)
 rename fs/{cifs => smb/client}/smb2inode.c (100%)
 rename fs/{cifs => smb/client}/smb2maperror.c (100%)
 rename fs/{cifs => smb/client}/smb2misc.c (100%)
 rename fs/{cifs => smb/client}/smb2ops.c (100%)
 rename fs/{cifs => smb/client}/smb2pdu.c (100%)
 rename fs/{cifs => smb/client}/smb2pdu.h (100%)
 rename fs/{cifs => smb/client}/smb2proto.h (100%)
 rename fs/{cifs => smb/client}/smb2status.h (100%)
 rename fs/{cifs => smb/client}/smb2transport.c (100%)
 rename fs/{cifs => smb/client}/smbdirect.c (100%)
 rename fs/{cifs => smb/client}/smbdirect.h (100%)
 rename fs/{cifs => smb/client}/smbencrypt.c (98%)
 rename fs/{cifs => smb/client}/smberr.h (100%)
 rename fs/{cifs => smb/client}/trace.c (100%)
 rename fs/{cifs => smb/client}/trace.h (100%)
 rename fs/{cifs => smb/client}/transport.c (100%)
 rename fs/{cifs => smb/client}/unc.c (100%)
 rename fs/{cifs => smb/client}/winucase.c (100%)
 rename fs/{cifs => smb/client}/xattr.c (100%)
 rename fs/{smbfs_common => smb/common}/Makefile (100%)
 rename fs/{smbfs_common => smb/common}/arc4.h (100%)
 rename fs/{smbfs_common => smb/common}/cifs_arc4.c (100%)
 rename fs/{smbfs_common => smb/common}/cifs_md4.c (100%)
 rename fs/{smbfs_common => smb/common}/md4.h (100%)
 rename fs/{smbfs_common => smb/common}/smb2pdu.h (100%)
 rename fs/{smbfs_common => smb/common}/smbfsctl.h (100%)
 rename fs/{ksmbd => smb/server}/Kconfig (100%)
 rename fs/{ksmbd => smb/server}/Makefile (100%)
 rename fs/{ksmbd => smb/server}/asn1.c (100%)
 rename fs/{ksmbd => smb/server}/asn1.h (100%)
 rename fs/{ksmbd => smb/server}/auth.c (99%)
 rename fs/{ksmbd => smb/server}/auth.h (100%)
 rename fs/{ksmbd => smb/server}/connection.c (100%)
 rename fs/{ksmbd => smb/server}/connection.h (100%)
 rename fs/{ksmbd => smb/server}/crypto_ctx.c (100%)
 rename fs/{ksmbd => smb/server}/crypto_ctx.h (100%)
 rename fs/{ksmbd => smb/server}/glob.h (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_netlink.h (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_spnego_negtokeninit.asn1 (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_spnego_negtokentarg.asn1 (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_work.c (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_work.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/share_config.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/share_config.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/tree_connect.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/tree_connect.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_config.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_config.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_session.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_session.h (100%)
 rename fs/{ksmbd => smb/server}/misc.c (100%)
 rename fs/{ksmbd => smb/server}/misc.h (100%)
 rename fs/{ksmbd => smb/server}/ndr.c (100%)
 rename fs/{ksmbd => smb/server}/ndr.h (100%)
 rename fs/{ksmbd => smb/server}/nterr.h (100%)
 rename fs/{ksmbd => smb/server}/ntlmssp.h (100%)
 rename fs/{ksmbd => smb/server}/oplock.c (100%)
 rename fs/{ksmbd => smb/server}/oplock.h (100%)
 rename fs/{ksmbd => smb/server}/server.c (100%)
 rename fs/{ksmbd => smb/server}/server.h (100%)
 rename fs/{ksmbd => smb/server}/smb2misc.c (100%)
 rename fs/{ksmbd => smb/server}/smb2ops.c (100%)
 rename fs/{ksmbd => smb/server}/smb2pdu.c (100%)
 rename fs/{ksmbd => smb/server}/smb2pdu.h (100%)
 rename fs/{ksmbd => smb/server}/smb_common.c (100%)
 rename fs/{ksmbd => smb/server}/smb_common.h (99%)
 rename fs/{ksmbd => smb/server}/smbacl.c (100%)
 rename fs/{ksmbd => smb/server}/smbacl.h (100%)
 rename fs/{ksmbd => smb/server}/smbfsctl.h (100%)
 rename fs/{ksmbd => smb/server}/smbstatus.h (100%)
 rename fs/{ksmbd => smb/server}/transport_ipc.c (100%)
 rename fs/{ksmbd => smb/server}/transport_ipc.h (100%)
 rename fs/{ksmbd => smb/server}/transport_rdma.c (100%)
 rename fs/{ksmbd => smb/server}/transport_rdma.h (100%)
 rename fs/{ksmbd => smb/server}/transport_tcp.c (100%)
 rename fs/{ksmbd => smb/server}/transport_tcp.h (100%)
 rename fs/{ksmbd => smb/server}/unicode.c (100%)
 rename fs/{ksmbd => smb/server}/unicode.h (100%)
 rename fs/{ksmbd => smb/server}/uniupr.h (100%)
 rename fs/{ksmbd => smb/server}/vfs.c (100%)
 rename fs/{ksmbd => smb/server}/vfs.h (100%)
 rename fs/{ksmbd => smb/server}/vfs_cache.c (100%)
 rename fs/{ksmbd => smb/server}/vfs_cache.h (100%)
 rename fs/{ksmbd => smb/server}/xattr.h (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index 27ef11624748..902f763e845d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5140,8 +5140,8 @@ S:	Supported
 W:	https://wiki.samba.org/index.php/LinuxCIFS
 T:	git git://git.samba.org/sfrench/cifs-2.6.git
 F:	Documentation/admin-guide/cifs/
-F:	fs/cifs/
-F:	fs/smbfs_common/
+F:	fs/smb/client/
+F:	fs/smb/common/
 F:	include/uapi/linux/cifs
 
 COMPACTPCI HOTPLUG CORE
@@ -11301,8 +11301,8 @@ L:	linux-cifs@vger.kernel.org
 S:	Maintained
 T:	git git://git.samba.org/ksmbd.git
 F:	Documentation/filesystems/cifs/ksmbd.rst
-F:	fs/ksmbd/
-F:	fs/smbfs_common/
+F:	fs/smb/common/
+F:	fs/smb/server/
 
 KERNEL UNIT TESTING FRAMEWORK (KUnit)
 M:	Brendan Higgins <brendanhiggins@google.com>
diff --git a/fs/Kconfig b/fs/Kconfig
index cc07a0cd3172..18d034ec7953 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -368,14 +368,7 @@ config NFS_V4_2_SSC_HELPER
 source "net/sunrpc/Kconfig"
 source "fs/ceph/Kconfig"
 
-source "fs/cifs/Kconfig"
-source "fs/ksmbd/Kconfig"
-
-config SMBFS_COMMON
-	tristate
-	default y if CIFS=y || SMB_SERVER=y
-	default m if CIFS=m || SMB_SERVER=m
-
+source "fs/smb/Kconfig"
 source "fs/coda/Kconfig"
 source "fs/afs/Kconfig"
 source "fs/9p/Kconfig"
diff --git a/fs/Makefile b/fs/Makefile
index 834f1c3dba46..5bfdbf0d7037 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -95,9 +95,7 @@ obj-$(CONFIG_LOCKD)		+= lockd/
 obj-$(CONFIG_NLS)		+= nls/
 obj-y				+= unicode/
 obj-$(CONFIG_SYSV_FS)		+= sysv/
-obj-$(CONFIG_SMBFS_COMMON)	+= smbfs_common/
-obj-$(CONFIG_CIFS)		+= cifs/
-obj-$(CONFIG_SMB_SERVER)	+= ksmbd/
+obj-$(CONFIG_SMBFS)		+= smb/
 obj-$(CONFIG_HPFS_FS)		+= hpfs/
 obj-$(CONFIG_NTFS_FS)		+= ntfs/
 obj-$(CONFIG_NTFS3_FS)		+= ntfs3/
diff --git a/fs/smb/Kconfig b/fs/smb/Kconfig
new file mode 100644
index 000000000000..ef425789fa6a
--- /dev/null
+++ b/fs/smb/Kconfig
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# smbfs configuration
+
+source "fs/smb/client/Kconfig"
+source "fs/smb/server/Kconfig"
+
+config SMBFS
+	tristate
+	default y if CIFS=y || SMB_SERVER=y
+	default m if CIFS=m || SMB_SERVER=m
diff --git a/fs/smb/Makefile b/fs/smb/Makefile
new file mode 100644
index 000000000000..9a1bf59a1a65
--- /dev/null
+++ b/fs/smb/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_SMBFS)		+= common/
+obj-$(CONFIG_CIFS)		+= client/
+obj-$(CONFIG_SMB_SERVER)	+= server/
diff --git a/fs/cifs/Makefile b/fs/smb/client/Makefile
similarity index 100%
rename from fs/cifs/Makefile
rename to fs/smb/client/Makefile
diff --git a/fs/cifs/asn1.c b/fs/smb/client/asn1.c
similarity index 100%
rename from fs/cifs/asn1.c
rename to fs/smb/client/asn1.c
diff --git a/fs/cifs/cached_dir.c b/fs/smb/client/cached_dir.c
similarity index 100%
rename from fs/cifs/cached_dir.c
rename to fs/smb/client/cached_dir.c
diff --git a/fs/cifs/cached_dir.h b/fs/smb/client/cached_dir.h
similarity index 100%
rename from fs/cifs/cached_dir.h
rename to fs/smb/client/cached_dir.h
diff --git a/fs/cifs/cifs_debug.c b/fs/smb/client/cifs_debug.c
similarity index 100%
rename from fs/cifs/cifs_debug.c
rename to fs/smb/client/cifs_debug.c
diff --git a/fs/cifs/cifs_debug.h b/fs/smb/client/cifs_debug.h
similarity index 100%
rename from fs/cifs/cifs_debug.h
rename to fs/smb/client/cifs_debug.h
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/smb/client/cifs_dfs_ref.c
similarity index 100%
rename from fs/cifs/cifs_dfs_ref.c
rename to fs/smb/client/cifs_dfs_ref.c
diff --git a/fs/cifs/cifs_fs_sb.h b/fs/smb/client/cifs_fs_sb.h
similarity index 100%
rename from fs/cifs/cifs_fs_sb.h
rename to fs/smb/client/cifs_fs_sb.h
diff --git a/fs/cifs/cifs_ioctl.h b/fs/smb/client/cifs_ioctl.h
similarity index 100%
rename from fs/cifs/cifs_ioctl.h
rename to fs/smb/client/cifs_ioctl.h
diff --git a/fs/cifs/cifs_spnego.c b/fs/smb/client/cifs_spnego.c
similarity index 100%
rename from fs/cifs/cifs_spnego.c
rename to fs/smb/client/cifs_spnego.c
diff --git a/fs/cifs/cifs_spnego.h b/fs/smb/client/cifs_spnego.h
similarity index 100%
rename from fs/cifs/cifs_spnego.h
rename to fs/smb/client/cifs_spnego.h
diff --git a/fs/cifs/cifs_spnego_negtokeninit.asn1 b/fs/smb/client/cifs_spnego_negtokeninit.asn1
similarity index 100%
rename from fs/cifs/cifs_spnego_negtokeninit.asn1
rename to fs/smb/client/cifs_spnego_negtokeninit.asn1
diff --git a/fs/cifs/cifs_swn.c b/fs/smb/client/cifs_swn.c
similarity index 100%
rename from fs/cifs/cifs_swn.c
rename to fs/smb/client/cifs_swn.c
diff --git a/fs/cifs/cifs_swn.h b/fs/smb/client/cifs_swn.h
similarity index 100%
rename from fs/cifs/cifs_swn.h
rename to fs/smb/client/cifs_swn.h
diff --git a/fs/cifs/cifs_unicode.c b/fs/smb/client/cifs_unicode.c
similarity index 100%
rename from fs/cifs/cifs_unicode.c
rename to fs/smb/client/cifs_unicode.c
diff --git a/fs/cifs/cifs_unicode.h b/fs/smb/client/cifs_unicode.h
similarity index 100%
rename from fs/cifs/cifs_unicode.h
rename to fs/smb/client/cifs_unicode.h
diff --git a/fs/cifs/cifs_uniupr.h b/fs/smb/client/cifs_uniupr.h
similarity index 100%
rename from fs/cifs/cifs_uniupr.h
rename to fs/smb/client/cifs_uniupr.h
diff --git a/fs/cifs/cifsacl.c b/fs/smb/client/cifsacl.c
similarity index 100%
rename from fs/cifs/cifsacl.c
rename to fs/smb/client/cifsacl.c
diff --git a/fs/cifs/cifsacl.h b/fs/smb/client/cifsacl.h
similarity index 100%
rename from fs/cifs/cifsacl.h
rename to fs/smb/client/cifsacl.h
diff --git a/fs/cifs/cifsencrypt.c b/fs/smb/client/cifsencrypt.c
similarity index 99%
rename from fs/cifs/cifsencrypt.c
rename to fs/smb/client/cifsencrypt.c
index 357bd27a7fd1..ef4c2e3c9fa6 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/smb/client/cifsencrypt.c
@@ -21,7 +21,7 @@
 #include <linux/random.h>
 #include <linux/highmem.h>
 #include <linux/fips.h>
-#include "../smbfs_common/arc4.h"
+#include "../common/arc4.h"
 #include <crypto/aead.h>
 
 /*
diff --git a/fs/cifs/cifsfs.c b/fs/smb/client/cifsfs.c
similarity index 100%
rename from fs/cifs/cifsfs.c
rename to fs/smb/client/cifsfs.c
diff --git a/fs/cifs/cifsfs.h b/fs/smb/client/cifsfs.h
similarity index 100%
rename from fs/cifs/cifsfs.h
rename to fs/smb/client/cifsfs.h
diff --git a/fs/cifs/cifsglob.h b/fs/smb/client/cifsglob.h
similarity index 99%
rename from fs/cifs/cifsglob.h
rename to fs/smb/client/cifsglob.h
index 5f8fd20951af..0d84bb1a8cd9 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/smb/client/cifsglob.h
@@ -24,7 +24,7 @@
 #include "cifsacl.h"
 #include <crypto/internal/hash.h>
 #include <uapi/linux/cifs/cifs_mount.h>
-#include "../smbfs_common/smb2pdu.h"
+#include "../common/smb2pdu.h"
 #include "smb2pdu.h"
 #include <linux/filelock.h>
 
diff --git a/fs/cifs/cifspdu.h b/fs/smb/client/cifspdu.h
similarity index 99%
rename from fs/cifs/cifspdu.h
rename to fs/smb/client/cifspdu.h
index 445e3eaebcc1..e17222fec9d2 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/smb/client/cifspdu.h
@@ -11,7 +11,7 @@
 
 #include <net/sock.h>
 #include <asm/unaligned.h>
-#include "../smbfs_common/smbfsctl.h"
+#include "../common/smbfsctl.h"
 
 #define CIFS_PROT   0
 #define POSIX_PROT  (CIFS_PROT+1)
diff --git a/fs/cifs/cifsproto.h b/fs/smb/client/cifsproto.h
similarity index 100%
rename from fs/cifs/cifsproto.h
rename to fs/smb/client/cifsproto.h
diff --git a/fs/cifs/cifsroot.c b/fs/smb/client/cifsroot.c
similarity index 100%
rename from fs/cifs/cifsroot.c
rename to fs/smb/client/cifsroot.c
diff --git a/fs/cifs/cifssmb.c b/fs/smb/client/cifssmb.c
similarity index 100%
rename from fs/cifs/cifssmb.c
rename to fs/smb/client/cifssmb.c
diff --git a/fs/cifs/connect.c b/fs/smb/client/connect.c
similarity index 100%
rename from fs/cifs/connect.c
rename to fs/smb/client/connect.c
diff --git a/fs/cifs/dfs.c b/fs/smb/client/dfs.c
similarity index 100%
rename from fs/cifs/dfs.c
rename to fs/smb/client/dfs.c
diff --git a/fs/cifs/dfs.h b/fs/smb/client/dfs.h
similarity index 100%
rename from fs/cifs/dfs.h
rename to fs/smb/client/dfs.h
diff --git a/fs/cifs/dfs_cache.c b/fs/smb/client/dfs_cache.c
similarity index 100%
rename from fs/cifs/dfs_cache.c
rename to fs/smb/client/dfs_cache.c
diff --git a/fs/cifs/dfs_cache.h b/fs/smb/client/dfs_cache.h
similarity index 100%
rename from fs/cifs/dfs_cache.h
rename to fs/smb/client/dfs_cache.h
diff --git a/fs/cifs/dir.c b/fs/smb/client/dir.c
similarity index 100%
rename from fs/cifs/dir.c
rename to fs/smb/client/dir.c
diff --git a/fs/cifs/dns_resolve.c b/fs/smb/client/dns_resolve.c
similarity index 100%
rename from fs/cifs/dns_resolve.c
rename to fs/smb/client/dns_resolve.c
diff --git a/fs/cifs/dns_resolve.h b/fs/smb/client/dns_resolve.h
similarity index 100%
rename from fs/cifs/dns_resolve.h
rename to fs/smb/client/dns_resolve.h
diff --git a/fs/cifs/export.c b/fs/smb/client/export.c
similarity index 100%
rename from fs/cifs/export.c
rename to fs/smb/client/export.c
diff --git a/fs/cifs/file.c b/fs/smb/client/file.c
similarity index 100%
rename from fs/cifs/file.c
rename to fs/smb/client/file.c
diff --git a/fs/cifs/fs_context.c b/fs/smb/client/fs_context.c
similarity index 100%
rename from fs/cifs/fs_context.c
rename to fs/smb/client/fs_context.c
diff --git a/fs/cifs/fs_context.h b/fs/smb/client/fs_context.h
similarity index 100%
rename from fs/cifs/fs_context.h
rename to fs/smb/client/fs_context.h
diff --git a/fs/cifs/fscache.c b/fs/smb/client/fscache.c
similarity index 100%
rename from fs/cifs/fscache.c
rename to fs/smb/client/fscache.c
diff --git a/fs/cifs/fscache.h b/fs/smb/client/fscache.h
similarity index 100%
rename from fs/cifs/fscache.h
rename to fs/smb/client/fscache.h
diff --git a/fs/cifs/inode.c b/fs/smb/client/inode.c
similarity index 100%
rename from fs/cifs/inode.c
rename to fs/smb/client/inode.c
diff --git a/fs/cifs/ioctl.c b/fs/smb/client/ioctl.c
similarity index 100%
rename from fs/cifs/ioctl.c
rename to fs/smb/client/ioctl.c
diff --git a/fs/cifs/link.c b/fs/smb/client/link.c
similarity index 100%
rename from fs/cifs/link.c
rename to fs/smb/client/link.c
diff --git a/fs/cifs/misc.c b/fs/smb/client/misc.c
similarity index 100%
rename from fs/cifs/misc.c
rename to fs/smb/client/misc.c
diff --git a/fs/cifs/netlink.c b/fs/smb/client/netlink.c
similarity index 100%
rename from fs/cifs/netlink.c
rename to fs/smb/client/netlink.c
diff --git a/fs/cifs/netlink.h b/fs/smb/client/netlink.h
similarity index 100%
rename from fs/cifs/netlink.h
rename to fs/smb/client/netlink.h
diff --git a/fs/cifs/netmisc.c b/fs/smb/client/netmisc.c
similarity index 100%
rename from fs/cifs/netmisc.c
rename to fs/smb/client/netmisc.c
diff --git a/fs/cifs/nterr.c b/fs/smb/client/nterr.c
similarity index 100%
rename from fs/cifs/nterr.c
rename to fs/smb/client/nterr.c
diff --git a/fs/cifs/nterr.h b/fs/smb/client/nterr.h
similarity index 100%
rename from fs/cifs/nterr.h
rename to fs/smb/client/nterr.h
diff --git a/fs/cifs/ntlmssp.h b/fs/smb/client/ntlmssp.h
similarity index 100%
rename from fs/cifs/ntlmssp.h
rename to fs/smb/client/ntlmssp.h
diff --git a/fs/cifs/readdir.c b/fs/smb/client/readdir.c
similarity index 100%
rename from fs/cifs/readdir.c
rename to fs/smb/client/readdir.c
diff --git a/fs/cifs/rfc1002pdu.h b/fs/smb/client/rfc1002pdu.h
similarity index 100%
rename from fs/cifs/rfc1002pdu.h
rename to fs/smb/client/rfc1002pdu.h
diff --git a/fs/cifs/sess.c b/fs/smb/client/sess.c
similarity index 100%
rename from fs/cifs/sess.c
rename to fs/smb/client/sess.c
diff --git a/fs/cifs/smb1ops.c b/fs/smb/client/smb1ops.c
similarity index 100%
rename from fs/cifs/smb1ops.c
rename to fs/smb/client/smb1ops.c
diff --git a/fs/cifs/smb2file.c b/fs/smb/client/smb2file.c
similarity index 100%
rename from fs/cifs/smb2file.c
rename to fs/smb/client/smb2file.c
diff --git a/fs/cifs/smb2glob.h b/fs/smb/client/smb2glob.h
similarity index 100%
rename from fs/cifs/smb2glob.h
rename to fs/smb/client/smb2glob.h
diff --git a/fs/cifs/smb2inode.c b/fs/smb/client/smb2inode.c
similarity index 100%
rename from fs/cifs/smb2inode.c
rename to fs/smb/client/smb2inode.c
diff --git a/fs/cifs/smb2maperror.c b/fs/smb/client/smb2maperror.c
similarity index 100%
rename from fs/cifs/smb2maperror.c
rename to fs/smb/client/smb2maperror.c
diff --git a/fs/cifs/smb2misc.c b/fs/smb/client/smb2misc.c
similarity index 100%
rename from fs/cifs/smb2misc.c
rename to fs/smb/client/smb2misc.c
diff --git a/fs/cifs/smb2ops.c b/fs/smb/client/smb2ops.c
similarity index 100%
rename from fs/cifs/smb2ops.c
rename to fs/smb/client/smb2ops.c
diff --git a/fs/cifs/smb2pdu.c b/fs/smb/client/smb2pdu.c
similarity index 100%
rename from fs/cifs/smb2pdu.c
rename to fs/smb/client/smb2pdu.c
diff --git a/fs/cifs/smb2pdu.h b/fs/smb/client/smb2pdu.h
similarity index 100%
rename from fs/cifs/smb2pdu.h
rename to fs/smb/client/smb2pdu.h
diff --git a/fs/cifs/smb2proto.h b/fs/smb/client/smb2proto.h
similarity index 100%
rename from fs/cifs/smb2proto.h
rename to fs/smb/client/smb2proto.h
diff --git a/fs/cifs/smb2status.h b/fs/smb/client/smb2status.h
similarity index 100%
rename from fs/cifs/smb2status.h
rename to fs/smb/client/smb2status.h
diff --git a/fs/cifs/smb2transport.c b/fs/smb/client/smb2transport.c
similarity index 100%
rename from fs/cifs/smb2transport.c
rename to fs/smb/client/smb2transport.c
diff --git a/fs/cifs/smbdirect.c b/fs/smb/client/smbdirect.c
similarity index 100%
rename from fs/cifs/smbdirect.c
rename to fs/smb/client/smbdirect.c
diff --git a/fs/cifs/smbdirect.h b/fs/smb/client/smbdirect.h
similarity index 100%
rename from fs/cifs/smbdirect.h
rename to fs/smb/client/smbdirect.h
diff --git a/fs/cifs/smbencrypt.c b/fs/smb/client/smbencrypt.c
similarity index 98%
rename from fs/cifs/smbencrypt.c
rename to fs/smb/client/smbencrypt.c
index 4a0487753869..f0ce26414f17 100644
--- a/fs/cifs/smbencrypt.c
+++ b/fs/smb/client/smbencrypt.c
@@ -24,7 +24,7 @@
 #include "cifsglob.h"
 #include "cifs_debug.h"
 #include "cifsproto.h"
-#include "../smbfs_common/md4.h"
+#include "../common/md4.h"
 
 #ifndef false
 #define false 0
diff --git a/fs/cifs/smberr.h b/fs/smb/client/smberr.h
similarity index 100%
rename from fs/cifs/smberr.h
rename to fs/smb/client/smberr.h
diff --git a/fs/cifs/trace.c b/fs/smb/client/trace.c
similarity index 100%
rename from fs/cifs/trace.c
rename to fs/smb/client/trace.c
diff --git a/fs/cifs/trace.h b/fs/smb/client/trace.h
similarity index 100%
rename from fs/cifs/trace.h
rename to fs/smb/client/trace.h
diff --git a/fs/cifs/transport.c b/fs/smb/client/transport.c
similarity index 100%
rename from fs/cifs/transport.c
rename to fs/smb/client/transport.c
diff --git a/fs/cifs/unc.c b/fs/smb/client/unc.c
similarity index 100%
rename from fs/cifs/unc.c
rename to fs/smb/client/unc.c
diff --git a/fs/cifs/winucase.c b/fs/smb/client/winucase.c
similarity index 100%
rename from fs/cifs/winucase.c
rename to fs/smb/client/winucase.c
diff --git a/fs/cifs/xattr.c b/fs/smb/client/xattr.c
similarity index 100%
rename from fs/cifs/xattr.c
rename to fs/smb/client/xattr.c
diff --git a/fs/smbfs_common/Makefile b/fs/smb/common/Makefile
similarity index 100%
rename from fs/smbfs_common/Makefile
rename to fs/smb/common/Makefile
diff --git a/fs/smbfs_common/arc4.h b/fs/smb/common/arc4.h
similarity index 100%
rename from fs/smbfs_common/arc4.h
rename to fs/smb/common/arc4.h
diff --git a/fs/smbfs_common/cifs_arc4.c b/fs/smb/common/cifs_arc4.c
similarity index 100%
rename from fs/smbfs_common/cifs_arc4.c
rename to fs/smb/common/cifs_arc4.c
diff --git a/fs/smbfs_common/cifs_md4.c b/fs/smb/common/cifs_md4.c
similarity index 100%
rename from fs/smbfs_common/cifs_md4.c
rename to fs/smb/common/cifs_md4.c
diff --git a/fs/smbfs_common/md4.h b/fs/smb/common/md4.h
similarity index 100%
rename from fs/smbfs_common/md4.h
rename to fs/smb/common/md4.h
diff --git a/fs/smbfs_common/smb2pdu.h b/fs/smb/common/smb2pdu.h
similarity index 100%
rename from fs/smbfs_common/smb2pdu.h
rename to fs/smb/common/smb2pdu.h
diff --git a/fs/smbfs_common/smbfsctl.h b/fs/smb/common/smbfsctl.h
similarity index 100%
rename from fs/smbfs_common/smbfsctl.h
rename to fs/smb/common/smbfsctl.h
diff --git a/fs/ksmbd/Kconfig b/fs/smb/server/Kconfig
similarity index 100%
rename from fs/ksmbd/Kconfig
rename to fs/smb/server/Kconfig
diff --git a/fs/ksmbd/Makefile b/fs/smb/server/Makefile
similarity index 100%
rename from fs/ksmbd/Makefile
rename to fs/smb/server/Makefile
diff --git a/fs/ksmbd/asn1.c b/fs/smb/server/asn1.c
similarity index 100%
rename from fs/ksmbd/asn1.c
rename to fs/smb/server/asn1.c
diff --git a/fs/ksmbd/asn1.h b/fs/smb/server/asn1.h
similarity index 100%
rename from fs/ksmbd/asn1.h
rename to fs/smb/server/asn1.h
diff --git a/fs/ksmbd/auth.c b/fs/smb/server/auth.c
similarity index 99%
rename from fs/ksmbd/auth.c
rename to fs/smb/server/auth.c
index df8fb076f6f1..5e5e120edcc2 100644
--- a/fs/ksmbd/auth.c
+++ b/fs/smb/server/auth.c
@@ -29,7 +29,7 @@
 #include "mgmt/user_config.h"
 #include "crypto_ctx.h"
 #include "transport_ipc.h"
-#include "../smbfs_common/arc4.h"
+#include "../common/arc4.h"
 
 /*
  * Fixed format data defining GSS header and fixed string
diff --git a/fs/ksmbd/auth.h b/fs/smb/server/auth.h
similarity index 100%
rename from fs/ksmbd/auth.h
rename to fs/smb/server/auth.h
diff --git a/fs/ksmbd/connection.c b/fs/smb/server/connection.c
similarity index 100%
rename from fs/ksmbd/connection.c
rename to fs/smb/server/connection.c
diff --git a/fs/ksmbd/connection.h b/fs/smb/server/connection.h
similarity index 100%
rename from fs/ksmbd/connection.h
rename to fs/smb/server/connection.h
diff --git a/fs/ksmbd/crypto_ctx.c b/fs/smb/server/crypto_ctx.c
similarity index 100%
rename from fs/ksmbd/crypto_ctx.c
rename to fs/smb/server/crypto_ctx.c
diff --git a/fs/ksmbd/crypto_ctx.h b/fs/smb/server/crypto_ctx.h
similarity index 100%
rename from fs/ksmbd/crypto_ctx.h
rename to fs/smb/server/crypto_ctx.h
diff --git a/fs/ksmbd/glob.h b/fs/smb/server/glob.h
similarity index 100%
rename from fs/ksmbd/glob.h
rename to fs/smb/server/glob.h
diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/smb/server/ksmbd_netlink.h
similarity index 100%
rename from fs/ksmbd/ksmbd_netlink.h
rename to fs/smb/server/ksmbd_netlink.h
diff --git a/fs/ksmbd/ksmbd_spnego_negtokeninit.asn1 b/fs/smb/server/ksmbd_spnego_negtokeninit.asn1
similarity index 100%
rename from fs/ksmbd/ksmbd_spnego_negtokeninit.asn1
rename to fs/smb/server/ksmbd_spnego_negtokeninit.asn1
diff --git a/fs/ksmbd/ksmbd_spnego_negtokentarg.asn1 b/fs/smb/server/ksmbd_spnego_negtokentarg.asn1
similarity index 100%
rename from fs/ksmbd/ksmbd_spnego_negtokentarg.asn1
rename to fs/smb/server/ksmbd_spnego_negtokentarg.asn1
diff --git a/fs/ksmbd/ksmbd_work.c b/fs/smb/server/ksmbd_work.c
similarity index 100%
rename from fs/ksmbd/ksmbd_work.c
rename to fs/smb/server/ksmbd_work.c
diff --git a/fs/ksmbd/ksmbd_work.h b/fs/smb/server/ksmbd_work.h
similarity index 100%
rename from fs/ksmbd/ksmbd_work.h
rename to fs/smb/server/ksmbd_work.h
diff --git a/fs/ksmbd/mgmt/ksmbd_ida.c b/fs/smb/server/mgmt/ksmbd_ida.c
similarity index 100%
rename from fs/ksmbd/mgmt/ksmbd_ida.c
rename to fs/smb/server/mgmt/ksmbd_ida.c
diff --git a/fs/ksmbd/mgmt/ksmbd_ida.h b/fs/smb/server/mgmt/ksmbd_ida.h
similarity index 100%
rename from fs/ksmbd/mgmt/ksmbd_ida.h
rename to fs/smb/server/mgmt/ksmbd_ida.h
diff --git a/fs/ksmbd/mgmt/share_config.c b/fs/smb/server/mgmt/share_config.c
similarity index 100%
rename from fs/ksmbd/mgmt/share_config.c
rename to fs/smb/server/mgmt/share_config.c
diff --git a/fs/ksmbd/mgmt/share_config.h b/fs/smb/server/mgmt/share_config.h
similarity index 100%
rename from fs/ksmbd/mgmt/share_config.h
rename to fs/smb/server/mgmt/share_config.h
diff --git a/fs/ksmbd/mgmt/tree_connect.c b/fs/smb/server/mgmt/tree_connect.c
similarity index 100%
rename from fs/ksmbd/mgmt/tree_connect.c
rename to fs/smb/server/mgmt/tree_connect.c
diff --git a/fs/ksmbd/mgmt/tree_connect.h b/fs/smb/server/mgmt/tree_connect.h
similarity index 100%
rename from fs/ksmbd/mgmt/tree_connect.h
rename to fs/smb/server/mgmt/tree_connect.h
diff --git a/fs/ksmbd/mgmt/user_config.c b/fs/smb/server/mgmt/user_config.c
similarity index 100%
rename from fs/ksmbd/mgmt/user_config.c
rename to fs/smb/server/mgmt/user_config.c
diff --git a/fs/ksmbd/mgmt/user_config.h b/fs/smb/server/mgmt/user_config.h
similarity index 100%
rename from fs/ksmbd/mgmt/user_config.h
rename to fs/smb/server/mgmt/user_config.h
diff --git a/fs/ksmbd/mgmt/user_session.c b/fs/smb/server/mgmt/user_session.c
similarity index 100%
rename from fs/ksmbd/mgmt/user_session.c
rename to fs/smb/server/mgmt/user_session.c
diff --git a/fs/ksmbd/mgmt/user_session.h b/fs/smb/server/mgmt/user_session.h
similarity index 100%
rename from fs/ksmbd/mgmt/user_session.h
rename to fs/smb/server/mgmt/user_session.h
diff --git a/fs/ksmbd/misc.c b/fs/smb/server/misc.c
similarity index 100%
rename from fs/ksmbd/misc.c
rename to fs/smb/server/misc.c
diff --git a/fs/ksmbd/misc.h b/fs/smb/server/misc.h
similarity index 100%
rename from fs/ksmbd/misc.h
rename to fs/smb/server/misc.h
diff --git a/fs/ksmbd/ndr.c b/fs/smb/server/ndr.c
similarity index 100%
rename from fs/ksmbd/ndr.c
rename to fs/smb/server/ndr.c
diff --git a/fs/ksmbd/ndr.h b/fs/smb/server/ndr.h
similarity index 100%
rename from fs/ksmbd/ndr.h
rename to fs/smb/server/ndr.h
diff --git a/fs/ksmbd/nterr.h b/fs/smb/server/nterr.h
similarity index 100%
rename from fs/ksmbd/nterr.h
rename to fs/smb/server/nterr.h
diff --git a/fs/ksmbd/ntlmssp.h b/fs/smb/server/ntlmssp.h
similarity index 100%
rename from fs/ksmbd/ntlmssp.h
rename to fs/smb/server/ntlmssp.h
diff --git a/fs/ksmbd/oplock.c b/fs/smb/server/oplock.c
similarity index 100%
rename from fs/ksmbd/oplock.c
rename to fs/smb/server/oplock.c
diff --git a/fs/ksmbd/oplock.h b/fs/smb/server/oplock.h
similarity index 100%
rename from fs/ksmbd/oplock.h
rename to fs/smb/server/oplock.h
diff --git a/fs/ksmbd/server.c b/fs/smb/server/server.c
similarity index 100%
rename from fs/ksmbd/server.c
rename to fs/smb/server/server.c
diff --git a/fs/ksmbd/server.h b/fs/smb/server/server.h
similarity index 100%
rename from fs/ksmbd/server.h
rename to fs/smb/server/server.h
diff --git a/fs/ksmbd/smb2misc.c b/fs/smb/server/smb2misc.c
similarity index 100%
rename from fs/ksmbd/smb2misc.c
rename to fs/smb/server/smb2misc.c
diff --git a/fs/ksmbd/smb2ops.c b/fs/smb/server/smb2ops.c
similarity index 100%
rename from fs/ksmbd/smb2ops.c
rename to fs/smb/server/smb2ops.c
diff --git a/fs/ksmbd/smb2pdu.c b/fs/smb/server/smb2pdu.c
similarity index 100%
rename from fs/ksmbd/smb2pdu.c
rename to fs/smb/server/smb2pdu.c
diff --git a/fs/ksmbd/smb2pdu.h b/fs/smb/server/smb2pdu.h
similarity index 100%
rename from fs/ksmbd/smb2pdu.h
rename to fs/smb/server/smb2pdu.h
diff --git a/fs/ksmbd/smb_common.c b/fs/smb/server/smb_common.c
similarity index 100%
rename from fs/ksmbd/smb_common.c
rename to fs/smb/server/smb_common.c
diff --git a/fs/ksmbd/smb_common.h b/fs/smb/server/smb_common.h
similarity index 99%
rename from fs/ksmbd/smb_common.h
rename to fs/smb/server/smb_common.h
index 9130d2e3cd78..6b0d5f1fe85c 100644
--- a/fs/ksmbd/smb_common.h
+++ b/fs/smb/server/smb_common.h
@@ -10,7 +10,7 @@
 
 #include "glob.h"
 #include "nterr.h"
-#include "../smbfs_common/smb2pdu.h"
+#include "../common/smb2pdu.h"
 #include "smb2pdu.h"
 
 /* ksmbd's Specific ERRNO */
diff --git a/fs/ksmbd/smbacl.c b/fs/smb/server/smbacl.c
similarity index 100%
rename from fs/ksmbd/smbacl.c
rename to fs/smb/server/smbacl.c
diff --git a/fs/ksmbd/smbacl.h b/fs/smb/server/smbacl.h
similarity index 100%
rename from fs/ksmbd/smbacl.h
rename to fs/smb/server/smbacl.h
diff --git a/fs/ksmbd/smbfsctl.h b/fs/smb/server/smbfsctl.h
similarity index 100%
rename from fs/ksmbd/smbfsctl.h
rename to fs/smb/server/smbfsctl.h
diff --git a/fs/ksmbd/smbstatus.h b/fs/smb/server/smbstatus.h
similarity index 100%
rename from fs/ksmbd/smbstatus.h
rename to fs/smb/server/smbstatus.h
diff --git a/fs/ksmbd/transport_ipc.c b/fs/smb/server/transport_ipc.c
similarity index 100%
rename from fs/ksmbd/transport_ipc.c
rename to fs/smb/server/transport_ipc.c
diff --git a/fs/ksmbd/transport_ipc.h b/fs/smb/server/transport_ipc.h
similarity index 100%
rename from fs/ksmbd/transport_ipc.h
rename to fs/smb/server/transport_ipc.h
diff --git a/fs/ksmbd/transport_rdma.c b/fs/smb/server/transport_rdma.c
similarity index 100%
rename from fs/ksmbd/transport_rdma.c
rename to fs/smb/server/transport_rdma.c
diff --git a/fs/ksmbd/transport_rdma.h b/fs/smb/server/transport_rdma.h
similarity index 100%
rename from fs/ksmbd/transport_rdma.h
rename to fs/smb/server/transport_rdma.h
diff --git a/fs/ksmbd/transport_tcp.c b/fs/smb/server/transport_tcp.c
similarity index 100%
rename from fs/ksmbd/transport_tcp.c
rename to fs/smb/server/transport_tcp.c
diff --git a/fs/ksmbd/transport_tcp.h b/fs/smb/server/transport_tcp.h
similarity index 100%
rename from fs/ksmbd/transport_tcp.h
rename to fs/smb/server/transport_tcp.h
diff --git a/fs/ksmbd/unicode.c b/fs/smb/server/unicode.c
similarity index 100%
rename from fs/ksmbd/unicode.c
rename to fs/smb/server/unicode.c
diff --git a/fs/ksmbd/unicode.h b/fs/smb/server/unicode.h
similarity index 100%
rename from fs/ksmbd/unicode.h
rename to fs/smb/server/unicode.h
diff --git a/fs/ksmbd/uniupr.h b/fs/smb/server/uniupr.h
similarity index 100%
rename from fs/ksmbd/uniupr.h
rename to fs/smb/server/uniupr.h
diff --git a/fs/ksmbd/vfs.c b/fs/smb/server/vfs.c
similarity index 100%
rename from fs/ksmbd/vfs.c
rename to fs/smb/server/vfs.c
diff --git a/fs/ksmbd/vfs.h b/fs/smb/server/vfs.h
similarity index 100%
rename from fs/ksmbd/vfs.h
rename to fs/smb/server/vfs.h
diff --git a/fs/ksmbd/vfs_cache.c b/fs/smb/server/vfs_cache.c
similarity index 100%
rename from fs/ksmbd/vfs_cache.c
rename to fs/smb/server/vfs_cache.c
diff --git a/fs/ksmbd/vfs_cache.h b/fs/smb/server/vfs_cache.h
similarity index 100%
rename from fs/ksmbd/vfs_cache.h
rename to fs/smb/server/vfs_cache.h
diff --git a/fs/ksmbd/xattr.h b/fs/smb/server/xattr.h
similarity index 100%
rename from fs/ksmbd/xattr.h
rename to fs/smb/server/xattr.h
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: patches to move ksmbd and cifs under new subdirectory
  2023-05-23  6:39   ` Steve French
@ 2023-05-23 17:34     ` Linus Torvalds
  2023-05-24  2:41       ` Steve French
  0 siblings, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2023-05-23 17:34 UTC (permalink / raw)
  To: Steve French; +Cc: CIFS, samba-technical, Namjae Jeon, LKML, linux-fsdevel

On Mon, May 22, 2023 at 11:39 PM Steve French <smfrench@gmail.com> wrote:
>
> My reason for adding CONFIG_SMB_CLIENT, enabling CONFIG_SMB_CLIENT
> when CONFIG_CIFS was enabled, I was trying to make the Makefile more clear
> (without changing any behavior):

That sounds ok, but I think it should be done separately from the
move. Keep the move as a pure move/rename, not "new things".

Also, when you actually do this cleanup, I think you really should just do

  config SMB
        tristate

  config SMB_CLIENT
        tristate

to declare them, but *not* have that

        default y if CIFS=y || SMB_SERVER=y
        default m if CIFS=m || SMB_SERVER=m

kind of noise anywhere. Not for SMBFS, not for SMB_CLIENT.

Just do

        select SMBFS
        select SMB_CLIENT

in the current CIFS Kconfig entry. And then SMB_SERVER can likewise do

        select SMBFS

and I think it will all automatically do what those much more complex
"default" expressions currently do.

But again - I think this kind of "clean things up" should be entirely
separate from the pure code movement. Don't do new functionality when
moving things, just do the minimal required infrastructure changes to
make things work with the movement.

              Linus

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: patches to move ksmbd and cifs under new subdirectory
  2023-05-23 17:34     ` Linus Torvalds
@ 2023-05-24  2:41       ` Steve French
  2023-05-24  4:27         ` Steve French
  0 siblings, 1 reply; 7+ messages in thread
From: Steve French @ 2023-05-24  2:41 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: CIFS, samba-technical, Namjae Jeon, LKML, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 1771 bytes --]

Lightly updated (e.g. to include a missing trivial change needed to
Documentation/filesystems/index.rst that Namjae noticed).  See
attached.

Presumably can defer the additional cleanup/prettying (ie those beyond
those required for the directory rename) with distinct patches later.

On Tue, May 23, 2023 at 12:35 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Mon, May 22, 2023 at 11:39 PM Steve French <smfrench@gmail.com> wrote:
> >
> > My reason for adding CONFIG_SMB_CLIENT, enabling CONFIG_SMB_CLIENT
> > when CONFIG_CIFS was enabled, I was trying to make the Makefile more clear
> > (without changing any behavior):
>
> That sounds ok, but I think it should be done separately from the
> move. Keep the move as a pure move/rename, not "new things".
>
> Also, when you actually do this cleanup, I think you really should just do
>
>   config SMB
>         tristate
>
>   config SMB_CLIENT
>         tristate
>
> to declare them, but *not* have that
>
>         default y if CIFS=y || SMB_SERVER=y
>         default m if CIFS=m || SMB_SERVER=m
>
> kind of noise anywhere. Not for SMBFS, not for SMB_CLIENT.
>
> Just do
>
>         select SMBFS
>         select SMB_CLIENT
>
> in the current CIFS Kconfig entry. And then SMB_SERVER can likewise do
>
>         select SMBFS
>
> and I think it will all automatically do what those much more complex
> "default" expressions currently do.
>
> But again - I think this kind of "clean things up" should be entirely
> separate from the pure code movement. Don't do new functionality when
> moving things, just do the minimal required infrastructure changes to
> make things work with the movement.
>
>               Linus



-- 
Thanks,

Steve

[-- Attachment #2: 0001-smb-move-client-and-server-files-to-common-directory.patch --]
[-- Type: text/x-patch, Size: 43079 bytes --]

From e3adc6b1f0d12b80a7a81fd4f345890a4fb483d6 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Sun, 21 May 2023 20:46:30 -0500
Subject: [PATCH 1/3] smb: move client and server files to common directory
 fs/smb

Move CIFS/SMB3 related client and server files (cifs.ko and ksmbd.ko
and helper modules) to new fs/smb subdirectory:

   fs/cifs --> fs/smb/client
   fs/ksmbd --> fs/smb/server
   fs/smbfs_common --> fs/smb/common

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 MAINTAINERS                                           |  8 ++++----
 fs/Kconfig                                            |  9 +--------
 fs/Makefile                                           |  4 +---
 fs/smb/Kconfig                                        | 11 +++++++++++
 fs/smb/Makefile                                       |  5 +++++
 fs/{cifs => smb/client}/Kconfig                       |  0
 fs/{cifs => smb/client}/Makefile                      |  0
 fs/{cifs => smb/client}/asn1.c                        |  0
 fs/{cifs => smb/client}/cached_dir.c                  |  0
 fs/{cifs => smb/client}/cached_dir.h                  |  0
 fs/{cifs => smb/client}/cifs_debug.c                  |  0
 fs/{cifs => smb/client}/cifs_debug.h                  |  0
 fs/{cifs => smb/client}/cifs_dfs_ref.c                |  0
 fs/{cifs => smb/client}/cifs_fs_sb.h                  |  0
 fs/{cifs => smb/client}/cifs_ioctl.h                  |  0
 fs/{cifs => smb/client}/cifs_spnego.c                 |  0
 fs/{cifs => smb/client}/cifs_spnego.h                 |  0
 fs/{cifs => smb/client}/cifs_spnego_negtokeninit.asn1 |  0
 fs/{cifs => smb/client}/cifs_swn.c                    |  0
 fs/{cifs => smb/client}/cifs_swn.h                    |  0
 fs/{cifs => smb/client}/cifs_unicode.c                |  0
 fs/{cifs => smb/client}/cifs_unicode.h                |  0
 fs/{cifs => smb/client}/cifs_uniupr.h                 |  0
 fs/{cifs => smb/client}/cifsacl.c                     |  0
 fs/{cifs => smb/client}/cifsacl.h                     |  0
 fs/{cifs => smb/client}/cifsencrypt.c                 |  2 +-
 fs/{cifs => smb/client}/cifsfs.c                      |  0
 fs/{cifs => smb/client}/cifsfs.h                      |  0
 fs/{cifs => smb/client}/cifsglob.h                    |  2 +-
 fs/{cifs => smb/client}/cifspdu.h                     |  2 +-
 fs/{cifs => smb/client}/cifsproto.h                   |  0
 fs/{cifs => smb/client}/cifsroot.c                    |  0
 fs/{cifs => smb/client}/cifssmb.c                     |  0
 fs/{cifs => smb/client}/connect.c                     |  0
 fs/{cifs => smb/client}/dfs.c                         |  0
 fs/{cifs => smb/client}/dfs.h                         |  0
 fs/{cifs => smb/client}/dfs_cache.c                   |  0
 fs/{cifs => smb/client}/dfs_cache.h                   |  0
 fs/{cifs => smb/client}/dir.c                         |  0
 fs/{cifs => smb/client}/dns_resolve.c                 |  0
 fs/{cifs => smb/client}/dns_resolve.h                 |  0
 fs/{cifs => smb/client}/export.c                      |  0
 fs/{cifs => smb/client}/file.c                        |  0
 fs/{cifs => smb/client}/fs_context.c                  |  0
 fs/{cifs => smb/client}/fs_context.h                  |  0
 fs/{cifs => smb/client}/fscache.c                     |  0
 fs/{cifs => smb/client}/fscache.h                     |  0
 fs/{cifs => smb/client}/inode.c                       |  0
 fs/{cifs => smb/client}/ioctl.c                       |  0
 fs/{cifs => smb/client}/link.c                        |  0
 fs/{cifs => smb/client}/misc.c                        |  0
 fs/{cifs => smb/client}/netlink.c                     |  0
 fs/{cifs => smb/client}/netlink.h                     |  0
 fs/{cifs => smb/client}/netmisc.c                     |  0
 fs/{cifs => smb/client}/nterr.c                       |  0
 fs/{cifs => smb/client}/nterr.h                       |  0
 fs/{cifs => smb/client}/ntlmssp.h                     |  0
 fs/{cifs => smb/client}/readdir.c                     |  0
 fs/{cifs => smb/client}/rfc1002pdu.h                  |  0
 fs/{cifs => smb/client}/sess.c                        |  0
 fs/{cifs => smb/client}/smb1ops.c                     |  0
 fs/{cifs => smb/client}/smb2file.c                    |  0
 fs/{cifs => smb/client}/smb2glob.h                    |  0
 fs/{cifs => smb/client}/smb2inode.c                   |  0
 fs/{cifs => smb/client}/smb2maperror.c                |  0
 fs/{cifs => smb/client}/smb2misc.c                    |  0
 fs/{cifs => smb/client}/smb2ops.c                     |  0
 fs/{cifs => smb/client}/smb2pdu.c                     |  0
 fs/{cifs => smb/client}/smb2pdu.h                     |  0
 fs/{cifs => smb/client}/smb2proto.h                   |  0
 fs/{cifs => smb/client}/smb2status.h                  |  0
 fs/{cifs => smb/client}/smb2transport.c               |  0
 fs/{cifs => smb/client}/smbdirect.c                   |  0
 fs/{cifs => smb/client}/smbdirect.h                   |  0
 fs/{cifs => smb/client}/smbencrypt.c                  |  2 +-
 fs/{cifs => smb/client}/smberr.h                      |  0
 fs/{cifs => smb/client}/trace.c                       |  0
 fs/{cifs => smb/client}/trace.h                       |  0
 fs/{cifs => smb/client}/transport.c                   |  0
 fs/{cifs => smb/client}/unc.c                         |  0
 fs/{cifs => smb/client}/winucase.c                    |  0
 fs/{cifs => smb/client}/xattr.c                       |  0
 fs/{smbfs_common => smb/common}/Makefile              |  0
 fs/{smbfs_common => smb/common}/arc4.h                |  0
 fs/{smbfs_common => smb/common}/cifs_arc4.c           |  0
 fs/{smbfs_common => smb/common}/cifs_md4.c            |  0
 fs/{smbfs_common => smb/common}/md4.h                 |  0
 fs/{smbfs_common => smb/common}/smb2pdu.h             |  0
 fs/{smbfs_common => smb/common}/smbfsctl.h            |  0
 fs/{ksmbd => smb/server}/Kconfig                      |  0
 fs/{ksmbd => smb/server}/Makefile                     |  0
 fs/{ksmbd => smb/server}/asn1.c                       |  0
 fs/{ksmbd => smb/server}/asn1.h                       |  0
 fs/{ksmbd => smb/server}/auth.c                       |  2 +-
 fs/{ksmbd => smb/server}/auth.h                       |  0
 fs/{ksmbd => smb/server}/connection.c                 |  0
 fs/{ksmbd => smb/server}/connection.h                 |  0
 fs/{ksmbd => smb/server}/crypto_ctx.c                 |  0
 fs/{ksmbd => smb/server}/crypto_ctx.h                 |  0
 fs/{ksmbd => smb/server}/glob.h                       |  0
 fs/{ksmbd => smb/server}/ksmbd_netlink.h              |  0
 .../server}/ksmbd_spnego_negtokeninit.asn1            |  0
 .../server}/ksmbd_spnego_negtokentarg.asn1            |  0
 fs/{ksmbd => smb/server}/ksmbd_work.c                 |  0
 fs/{ksmbd => smb/server}/ksmbd_work.h                 |  0
 fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.c             |  0
 fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.h             |  0
 fs/{ksmbd => smb/server}/mgmt/share_config.c          |  0
 fs/{ksmbd => smb/server}/mgmt/share_config.h          |  0
 fs/{ksmbd => smb/server}/mgmt/tree_connect.c          |  0
 fs/{ksmbd => smb/server}/mgmt/tree_connect.h          |  0
 fs/{ksmbd => smb/server}/mgmt/user_config.c           |  0
 fs/{ksmbd => smb/server}/mgmt/user_config.h           |  0
 fs/{ksmbd => smb/server}/mgmt/user_session.c          |  0
 fs/{ksmbd => smb/server}/mgmt/user_session.h          |  0
 fs/{ksmbd => smb/server}/misc.c                       |  0
 fs/{ksmbd => smb/server}/misc.h                       |  0
 fs/{ksmbd => smb/server}/ndr.c                        |  0
 fs/{ksmbd => smb/server}/ndr.h                        |  0
 fs/{ksmbd => smb/server}/nterr.h                      |  0
 fs/{ksmbd => smb/server}/ntlmssp.h                    |  0
 fs/{ksmbd => smb/server}/oplock.c                     |  0
 fs/{ksmbd => smb/server}/oplock.h                     |  0
 fs/{ksmbd => smb/server}/server.c                     |  0
 fs/{ksmbd => smb/server}/server.h                     |  0
 fs/{ksmbd => smb/server}/smb2misc.c                   |  0
 fs/{ksmbd => smb/server}/smb2ops.c                    |  0
 fs/{ksmbd => smb/server}/smb2pdu.c                    |  0
 fs/{ksmbd => smb/server}/smb2pdu.h                    |  0
 fs/{ksmbd => smb/server}/smb_common.c                 |  0
 fs/{ksmbd => smb/server}/smb_common.h                 |  2 +-
 fs/{ksmbd => smb/server}/smbacl.c                     |  0
 fs/{ksmbd => smb/server}/smbacl.h                     |  0
 fs/{ksmbd => smb/server}/smbfsctl.h                   |  0
 fs/{ksmbd => smb/server}/smbstatus.h                  |  0
 fs/{ksmbd => smb/server}/transport_ipc.c              |  0
 fs/{ksmbd => smb/server}/transport_ipc.h              |  0
 fs/{ksmbd => smb/server}/transport_rdma.c             |  0
 fs/{ksmbd => smb/server}/transport_rdma.h             |  0
 fs/{ksmbd => smb/server}/transport_tcp.c              |  0
 fs/{ksmbd => smb/server}/transport_tcp.h              |  0
 fs/{ksmbd => smb/server}/unicode.c                    |  0
 fs/{ksmbd => smb/server}/unicode.h                    |  0
 fs/{ksmbd => smb/server}/uniupr.h                     |  0
 fs/{ksmbd => smb/server}/vfs.c                        |  0
 fs/{ksmbd => smb/server}/vfs.h                        |  0
 fs/{ksmbd => smb/server}/vfs_cache.c                  |  0
 fs/{ksmbd => smb/server}/vfs_cache.h                  |  0
 fs/{ksmbd => smb/server}/xattr.h                      |  0
 149 files changed, 28 insertions(+), 21 deletions(-)
 create mode 100644 fs/smb/Kconfig
 create mode 100644 fs/smb/Makefile
 rename fs/{cifs => smb/client}/Kconfig (100%)
 rename fs/{cifs => smb/client}/Makefile (100%)
 rename fs/{cifs => smb/client}/asn1.c (100%)
 rename fs/{cifs => smb/client}/cached_dir.c (100%)
 rename fs/{cifs => smb/client}/cached_dir.h (100%)
 rename fs/{cifs => smb/client}/cifs_debug.c (100%)
 rename fs/{cifs => smb/client}/cifs_debug.h (100%)
 rename fs/{cifs => smb/client}/cifs_dfs_ref.c (100%)
 rename fs/{cifs => smb/client}/cifs_fs_sb.h (100%)
 rename fs/{cifs => smb/client}/cifs_ioctl.h (100%)
 rename fs/{cifs => smb/client}/cifs_spnego.c (100%)
 rename fs/{cifs => smb/client}/cifs_spnego.h (100%)
 rename fs/{cifs => smb/client}/cifs_spnego_negtokeninit.asn1 (100%)
 rename fs/{cifs => smb/client}/cifs_swn.c (100%)
 rename fs/{cifs => smb/client}/cifs_swn.h (100%)
 rename fs/{cifs => smb/client}/cifs_unicode.c (100%)
 rename fs/{cifs => smb/client}/cifs_unicode.h (100%)
 rename fs/{cifs => smb/client}/cifs_uniupr.h (100%)
 rename fs/{cifs => smb/client}/cifsacl.c (100%)
 rename fs/{cifs => smb/client}/cifsacl.h (100%)
 rename fs/{cifs => smb/client}/cifsencrypt.c (99%)
 rename fs/{cifs => smb/client}/cifsfs.c (100%)
 rename fs/{cifs => smb/client}/cifsfs.h (100%)
 rename fs/{cifs => smb/client}/cifsglob.h (99%)
 rename fs/{cifs => smb/client}/cifspdu.h (99%)
 rename fs/{cifs => smb/client}/cifsproto.h (100%)
 rename fs/{cifs => smb/client}/cifsroot.c (100%)
 rename fs/{cifs => smb/client}/cifssmb.c (100%)
 rename fs/{cifs => smb/client}/connect.c (100%)
 rename fs/{cifs => smb/client}/dfs.c (100%)
 rename fs/{cifs => smb/client}/dfs.h (100%)
 rename fs/{cifs => smb/client}/dfs_cache.c (100%)
 rename fs/{cifs => smb/client}/dfs_cache.h (100%)
 rename fs/{cifs => smb/client}/dir.c (100%)
 rename fs/{cifs => smb/client}/dns_resolve.c (100%)
 rename fs/{cifs => smb/client}/dns_resolve.h (100%)
 rename fs/{cifs => smb/client}/export.c (100%)
 rename fs/{cifs => smb/client}/file.c (100%)
 rename fs/{cifs => smb/client}/fs_context.c (100%)
 rename fs/{cifs => smb/client}/fs_context.h (100%)
 rename fs/{cifs => smb/client}/fscache.c (100%)
 rename fs/{cifs => smb/client}/fscache.h (100%)
 rename fs/{cifs => smb/client}/inode.c (100%)
 rename fs/{cifs => smb/client}/ioctl.c (100%)
 rename fs/{cifs => smb/client}/link.c (100%)
 rename fs/{cifs => smb/client}/misc.c (100%)
 rename fs/{cifs => smb/client}/netlink.c (100%)
 rename fs/{cifs => smb/client}/netlink.h (100%)
 rename fs/{cifs => smb/client}/netmisc.c (100%)
 rename fs/{cifs => smb/client}/nterr.c (100%)
 rename fs/{cifs => smb/client}/nterr.h (100%)
 rename fs/{cifs => smb/client}/ntlmssp.h (100%)
 rename fs/{cifs => smb/client}/readdir.c (100%)
 rename fs/{cifs => smb/client}/rfc1002pdu.h (100%)
 rename fs/{cifs => smb/client}/sess.c (100%)
 rename fs/{cifs => smb/client}/smb1ops.c (100%)
 rename fs/{cifs => smb/client}/smb2file.c (100%)
 rename fs/{cifs => smb/client}/smb2glob.h (100%)
 rename fs/{cifs => smb/client}/smb2inode.c (100%)
 rename fs/{cifs => smb/client}/smb2maperror.c (100%)
 rename fs/{cifs => smb/client}/smb2misc.c (100%)
 rename fs/{cifs => smb/client}/smb2ops.c (100%)
 rename fs/{cifs => smb/client}/smb2pdu.c (100%)
 rename fs/{cifs => smb/client}/smb2pdu.h (100%)
 rename fs/{cifs => smb/client}/smb2proto.h (100%)
 rename fs/{cifs => smb/client}/smb2status.h (100%)
 rename fs/{cifs => smb/client}/smb2transport.c (100%)
 rename fs/{cifs => smb/client}/smbdirect.c (100%)
 rename fs/{cifs => smb/client}/smbdirect.h (100%)
 rename fs/{cifs => smb/client}/smbencrypt.c (98%)
 rename fs/{cifs => smb/client}/smberr.h (100%)
 rename fs/{cifs => smb/client}/trace.c (100%)
 rename fs/{cifs => smb/client}/trace.h (100%)
 rename fs/{cifs => smb/client}/transport.c (100%)
 rename fs/{cifs => smb/client}/unc.c (100%)
 rename fs/{cifs => smb/client}/winucase.c (100%)
 rename fs/{cifs => smb/client}/xattr.c (100%)
 rename fs/{smbfs_common => smb/common}/Makefile (100%)
 rename fs/{smbfs_common => smb/common}/arc4.h (100%)
 rename fs/{smbfs_common => smb/common}/cifs_arc4.c (100%)
 rename fs/{smbfs_common => smb/common}/cifs_md4.c (100%)
 rename fs/{smbfs_common => smb/common}/md4.h (100%)
 rename fs/{smbfs_common => smb/common}/smb2pdu.h (100%)
 rename fs/{smbfs_common => smb/common}/smbfsctl.h (100%)
 rename fs/{ksmbd => smb/server}/Kconfig (100%)
 rename fs/{ksmbd => smb/server}/Makefile (100%)
 rename fs/{ksmbd => smb/server}/asn1.c (100%)
 rename fs/{ksmbd => smb/server}/asn1.h (100%)
 rename fs/{ksmbd => smb/server}/auth.c (99%)
 rename fs/{ksmbd => smb/server}/auth.h (100%)
 rename fs/{ksmbd => smb/server}/connection.c (100%)
 rename fs/{ksmbd => smb/server}/connection.h (100%)
 rename fs/{ksmbd => smb/server}/crypto_ctx.c (100%)
 rename fs/{ksmbd => smb/server}/crypto_ctx.h (100%)
 rename fs/{ksmbd => smb/server}/glob.h (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_netlink.h (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_spnego_negtokeninit.asn1 (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_spnego_negtokentarg.asn1 (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_work.c (100%)
 rename fs/{ksmbd => smb/server}/ksmbd_work.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/ksmbd_ida.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/share_config.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/share_config.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/tree_connect.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/tree_connect.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_config.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_config.h (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_session.c (100%)
 rename fs/{ksmbd => smb/server}/mgmt/user_session.h (100%)
 rename fs/{ksmbd => smb/server}/misc.c (100%)
 rename fs/{ksmbd => smb/server}/misc.h (100%)
 rename fs/{ksmbd => smb/server}/ndr.c (100%)
 rename fs/{ksmbd => smb/server}/ndr.h (100%)
 rename fs/{ksmbd => smb/server}/nterr.h (100%)
 rename fs/{ksmbd => smb/server}/ntlmssp.h (100%)
 rename fs/{ksmbd => smb/server}/oplock.c (100%)
 rename fs/{ksmbd => smb/server}/oplock.h (100%)
 rename fs/{ksmbd => smb/server}/server.c (100%)
 rename fs/{ksmbd => smb/server}/server.h (100%)
 rename fs/{ksmbd => smb/server}/smb2misc.c (100%)
 rename fs/{ksmbd => smb/server}/smb2ops.c (100%)
 rename fs/{ksmbd => smb/server}/smb2pdu.c (100%)
 rename fs/{ksmbd => smb/server}/smb2pdu.h (100%)
 rename fs/{ksmbd => smb/server}/smb_common.c (100%)
 rename fs/{ksmbd => smb/server}/smb_common.h (99%)
 rename fs/{ksmbd => smb/server}/smbacl.c (100%)
 rename fs/{ksmbd => smb/server}/smbacl.h (100%)
 rename fs/{ksmbd => smb/server}/smbfsctl.h (100%)
 rename fs/{ksmbd => smb/server}/smbstatus.h (100%)
 rename fs/{ksmbd => smb/server}/transport_ipc.c (100%)
 rename fs/{ksmbd => smb/server}/transport_ipc.h (100%)
 rename fs/{ksmbd => smb/server}/transport_rdma.c (100%)
 rename fs/{ksmbd => smb/server}/transport_rdma.h (100%)
 rename fs/{ksmbd => smb/server}/transport_tcp.c (100%)
 rename fs/{ksmbd => smb/server}/transport_tcp.h (100%)
 rename fs/{ksmbd => smb/server}/unicode.c (100%)
 rename fs/{ksmbd => smb/server}/unicode.h (100%)
 rename fs/{ksmbd => smb/server}/uniupr.h (100%)
 rename fs/{ksmbd => smb/server}/vfs.c (100%)
 rename fs/{ksmbd => smb/server}/vfs.h (100%)
 rename fs/{ksmbd => smb/server}/vfs_cache.c (100%)
 rename fs/{ksmbd => smb/server}/vfs_cache.h (100%)
 rename fs/{ksmbd => smb/server}/xattr.h (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index 27ef11624748..902f763e845d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5140,8 +5140,8 @@ S:	Supported
 W:	https://wiki.samba.org/index.php/LinuxCIFS
 T:	git git://git.samba.org/sfrench/cifs-2.6.git
 F:	Documentation/admin-guide/cifs/
-F:	fs/cifs/
-F:	fs/smbfs_common/
+F:	fs/smb/client/
+F:	fs/smb/common/
 F:	include/uapi/linux/cifs
 
 COMPACTPCI HOTPLUG CORE
@@ -11301,8 +11301,8 @@ L:	linux-cifs@vger.kernel.org
 S:	Maintained
 T:	git git://git.samba.org/ksmbd.git
 F:	Documentation/filesystems/cifs/ksmbd.rst
-F:	fs/ksmbd/
-F:	fs/smbfs_common/
+F:	fs/smb/common/
+F:	fs/smb/server/
 
 KERNEL UNIT TESTING FRAMEWORK (KUnit)
 M:	Brendan Higgins <brendanhiggins@google.com>
diff --git a/fs/Kconfig b/fs/Kconfig
index cc07a0cd3172..18d034ec7953 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -368,14 +368,7 @@ config NFS_V4_2_SSC_HELPER
 source "net/sunrpc/Kconfig"
 source "fs/ceph/Kconfig"
 
-source "fs/cifs/Kconfig"
-source "fs/ksmbd/Kconfig"
-
-config SMBFS_COMMON
-	tristate
-	default y if CIFS=y || SMB_SERVER=y
-	default m if CIFS=m || SMB_SERVER=m
-
+source "fs/smb/Kconfig"
 source "fs/coda/Kconfig"
 source "fs/afs/Kconfig"
 source "fs/9p/Kconfig"
diff --git a/fs/Makefile b/fs/Makefile
index 834f1c3dba46..5bfdbf0d7037 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -95,9 +95,7 @@ obj-$(CONFIG_LOCKD)		+= lockd/
 obj-$(CONFIG_NLS)		+= nls/
 obj-y				+= unicode/
 obj-$(CONFIG_SYSV_FS)		+= sysv/
-obj-$(CONFIG_SMBFS_COMMON)	+= smbfs_common/
-obj-$(CONFIG_CIFS)		+= cifs/
-obj-$(CONFIG_SMB_SERVER)	+= ksmbd/
+obj-$(CONFIG_SMBFS)		+= smb/
 obj-$(CONFIG_HPFS_FS)		+= hpfs/
 obj-$(CONFIG_NTFS_FS)		+= ntfs/
 obj-$(CONFIG_NTFS3_FS)		+= ntfs3/
diff --git a/fs/smb/Kconfig b/fs/smb/Kconfig
new file mode 100644
index 000000000000..ef425789fa6a
--- /dev/null
+++ b/fs/smb/Kconfig
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# smbfs configuration
+
+source "fs/smb/client/Kconfig"
+source "fs/smb/server/Kconfig"
+
+config SMBFS
+	tristate
+	default y if CIFS=y || SMB_SERVER=y
+	default m if CIFS=m || SMB_SERVER=m
diff --git a/fs/smb/Makefile b/fs/smb/Makefile
new file mode 100644
index 000000000000..9a1bf59a1a65
--- /dev/null
+++ b/fs/smb/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_SMBFS)		+= common/
+obj-$(CONFIG_CIFS)		+= client/
+obj-$(CONFIG_SMB_SERVER)	+= server/
diff --git a/fs/cifs/Kconfig b/fs/smb/client/Kconfig
similarity index 100%
rename from fs/cifs/Kconfig
rename to fs/smb/client/Kconfig
diff --git a/fs/cifs/Makefile b/fs/smb/client/Makefile
similarity index 100%
rename from fs/cifs/Makefile
rename to fs/smb/client/Makefile
diff --git a/fs/cifs/asn1.c b/fs/smb/client/asn1.c
similarity index 100%
rename from fs/cifs/asn1.c
rename to fs/smb/client/asn1.c
diff --git a/fs/cifs/cached_dir.c b/fs/smb/client/cached_dir.c
similarity index 100%
rename from fs/cifs/cached_dir.c
rename to fs/smb/client/cached_dir.c
diff --git a/fs/cifs/cached_dir.h b/fs/smb/client/cached_dir.h
similarity index 100%
rename from fs/cifs/cached_dir.h
rename to fs/smb/client/cached_dir.h
diff --git a/fs/cifs/cifs_debug.c b/fs/smb/client/cifs_debug.c
similarity index 100%
rename from fs/cifs/cifs_debug.c
rename to fs/smb/client/cifs_debug.c
diff --git a/fs/cifs/cifs_debug.h b/fs/smb/client/cifs_debug.h
similarity index 100%
rename from fs/cifs/cifs_debug.h
rename to fs/smb/client/cifs_debug.h
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/smb/client/cifs_dfs_ref.c
similarity index 100%
rename from fs/cifs/cifs_dfs_ref.c
rename to fs/smb/client/cifs_dfs_ref.c
diff --git a/fs/cifs/cifs_fs_sb.h b/fs/smb/client/cifs_fs_sb.h
similarity index 100%
rename from fs/cifs/cifs_fs_sb.h
rename to fs/smb/client/cifs_fs_sb.h
diff --git a/fs/cifs/cifs_ioctl.h b/fs/smb/client/cifs_ioctl.h
similarity index 100%
rename from fs/cifs/cifs_ioctl.h
rename to fs/smb/client/cifs_ioctl.h
diff --git a/fs/cifs/cifs_spnego.c b/fs/smb/client/cifs_spnego.c
similarity index 100%
rename from fs/cifs/cifs_spnego.c
rename to fs/smb/client/cifs_spnego.c
diff --git a/fs/cifs/cifs_spnego.h b/fs/smb/client/cifs_spnego.h
similarity index 100%
rename from fs/cifs/cifs_spnego.h
rename to fs/smb/client/cifs_spnego.h
diff --git a/fs/cifs/cifs_spnego_negtokeninit.asn1 b/fs/smb/client/cifs_spnego_negtokeninit.asn1
similarity index 100%
rename from fs/cifs/cifs_spnego_negtokeninit.asn1
rename to fs/smb/client/cifs_spnego_negtokeninit.asn1
diff --git a/fs/cifs/cifs_swn.c b/fs/smb/client/cifs_swn.c
similarity index 100%
rename from fs/cifs/cifs_swn.c
rename to fs/smb/client/cifs_swn.c
diff --git a/fs/cifs/cifs_swn.h b/fs/smb/client/cifs_swn.h
similarity index 100%
rename from fs/cifs/cifs_swn.h
rename to fs/smb/client/cifs_swn.h
diff --git a/fs/cifs/cifs_unicode.c b/fs/smb/client/cifs_unicode.c
similarity index 100%
rename from fs/cifs/cifs_unicode.c
rename to fs/smb/client/cifs_unicode.c
diff --git a/fs/cifs/cifs_unicode.h b/fs/smb/client/cifs_unicode.h
similarity index 100%
rename from fs/cifs/cifs_unicode.h
rename to fs/smb/client/cifs_unicode.h
diff --git a/fs/cifs/cifs_uniupr.h b/fs/smb/client/cifs_uniupr.h
similarity index 100%
rename from fs/cifs/cifs_uniupr.h
rename to fs/smb/client/cifs_uniupr.h
diff --git a/fs/cifs/cifsacl.c b/fs/smb/client/cifsacl.c
similarity index 100%
rename from fs/cifs/cifsacl.c
rename to fs/smb/client/cifsacl.c
diff --git a/fs/cifs/cifsacl.h b/fs/smb/client/cifsacl.h
similarity index 100%
rename from fs/cifs/cifsacl.h
rename to fs/smb/client/cifsacl.h
diff --git a/fs/cifs/cifsencrypt.c b/fs/smb/client/cifsencrypt.c
similarity index 99%
rename from fs/cifs/cifsencrypt.c
rename to fs/smb/client/cifsencrypt.c
index 357bd27a7fd1..ef4c2e3c9fa6 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/smb/client/cifsencrypt.c
@@ -21,7 +21,7 @@
 #include <linux/random.h>
 #include <linux/highmem.h>
 #include <linux/fips.h>
-#include "../smbfs_common/arc4.h"
+#include "../common/arc4.h"
 #include <crypto/aead.h>
 
 /*
diff --git a/fs/cifs/cifsfs.c b/fs/smb/client/cifsfs.c
similarity index 100%
rename from fs/cifs/cifsfs.c
rename to fs/smb/client/cifsfs.c
diff --git a/fs/cifs/cifsfs.h b/fs/smb/client/cifsfs.h
similarity index 100%
rename from fs/cifs/cifsfs.h
rename to fs/smb/client/cifsfs.h
diff --git a/fs/cifs/cifsglob.h b/fs/smb/client/cifsglob.h
similarity index 99%
rename from fs/cifs/cifsglob.h
rename to fs/smb/client/cifsglob.h
index 5f8fd20951af..0d84bb1a8cd9 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/smb/client/cifsglob.h
@@ -24,7 +24,7 @@
 #include "cifsacl.h"
 #include <crypto/internal/hash.h>
 #include <uapi/linux/cifs/cifs_mount.h>
-#include "../smbfs_common/smb2pdu.h"
+#include "../common/smb2pdu.h"
 #include "smb2pdu.h"
 #include <linux/filelock.h>
 
diff --git a/fs/cifs/cifspdu.h b/fs/smb/client/cifspdu.h
similarity index 99%
rename from fs/cifs/cifspdu.h
rename to fs/smb/client/cifspdu.h
index 445e3eaebcc1..e17222fec9d2 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/smb/client/cifspdu.h
@@ -11,7 +11,7 @@
 
 #include <net/sock.h>
 #include <asm/unaligned.h>
-#include "../smbfs_common/smbfsctl.h"
+#include "../common/smbfsctl.h"
 
 #define CIFS_PROT   0
 #define POSIX_PROT  (CIFS_PROT+1)
diff --git a/fs/cifs/cifsproto.h b/fs/smb/client/cifsproto.h
similarity index 100%
rename from fs/cifs/cifsproto.h
rename to fs/smb/client/cifsproto.h
diff --git a/fs/cifs/cifsroot.c b/fs/smb/client/cifsroot.c
similarity index 100%
rename from fs/cifs/cifsroot.c
rename to fs/smb/client/cifsroot.c
diff --git a/fs/cifs/cifssmb.c b/fs/smb/client/cifssmb.c
similarity index 100%
rename from fs/cifs/cifssmb.c
rename to fs/smb/client/cifssmb.c
diff --git a/fs/cifs/connect.c b/fs/smb/client/connect.c
similarity index 100%
rename from fs/cifs/connect.c
rename to fs/smb/client/connect.c
diff --git a/fs/cifs/dfs.c b/fs/smb/client/dfs.c
similarity index 100%
rename from fs/cifs/dfs.c
rename to fs/smb/client/dfs.c
diff --git a/fs/cifs/dfs.h b/fs/smb/client/dfs.h
similarity index 100%
rename from fs/cifs/dfs.h
rename to fs/smb/client/dfs.h
diff --git a/fs/cifs/dfs_cache.c b/fs/smb/client/dfs_cache.c
similarity index 100%
rename from fs/cifs/dfs_cache.c
rename to fs/smb/client/dfs_cache.c
diff --git a/fs/cifs/dfs_cache.h b/fs/smb/client/dfs_cache.h
similarity index 100%
rename from fs/cifs/dfs_cache.h
rename to fs/smb/client/dfs_cache.h
diff --git a/fs/cifs/dir.c b/fs/smb/client/dir.c
similarity index 100%
rename from fs/cifs/dir.c
rename to fs/smb/client/dir.c
diff --git a/fs/cifs/dns_resolve.c b/fs/smb/client/dns_resolve.c
similarity index 100%
rename from fs/cifs/dns_resolve.c
rename to fs/smb/client/dns_resolve.c
diff --git a/fs/cifs/dns_resolve.h b/fs/smb/client/dns_resolve.h
similarity index 100%
rename from fs/cifs/dns_resolve.h
rename to fs/smb/client/dns_resolve.h
diff --git a/fs/cifs/export.c b/fs/smb/client/export.c
similarity index 100%
rename from fs/cifs/export.c
rename to fs/smb/client/export.c
diff --git a/fs/cifs/file.c b/fs/smb/client/file.c
similarity index 100%
rename from fs/cifs/file.c
rename to fs/smb/client/file.c
diff --git a/fs/cifs/fs_context.c b/fs/smb/client/fs_context.c
similarity index 100%
rename from fs/cifs/fs_context.c
rename to fs/smb/client/fs_context.c
diff --git a/fs/cifs/fs_context.h b/fs/smb/client/fs_context.h
similarity index 100%
rename from fs/cifs/fs_context.h
rename to fs/smb/client/fs_context.h
diff --git a/fs/cifs/fscache.c b/fs/smb/client/fscache.c
similarity index 100%
rename from fs/cifs/fscache.c
rename to fs/smb/client/fscache.c
diff --git a/fs/cifs/fscache.h b/fs/smb/client/fscache.h
similarity index 100%
rename from fs/cifs/fscache.h
rename to fs/smb/client/fscache.h
diff --git a/fs/cifs/inode.c b/fs/smb/client/inode.c
similarity index 100%
rename from fs/cifs/inode.c
rename to fs/smb/client/inode.c
diff --git a/fs/cifs/ioctl.c b/fs/smb/client/ioctl.c
similarity index 100%
rename from fs/cifs/ioctl.c
rename to fs/smb/client/ioctl.c
diff --git a/fs/cifs/link.c b/fs/smb/client/link.c
similarity index 100%
rename from fs/cifs/link.c
rename to fs/smb/client/link.c
diff --git a/fs/cifs/misc.c b/fs/smb/client/misc.c
similarity index 100%
rename from fs/cifs/misc.c
rename to fs/smb/client/misc.c
diff --git a/fs/cifs/netlink.c b/fs/smb/client/netlink.c
similarity index 100%
rename from fs/cifs/netlink.c
rename to fs/smb/client/netlink.c
diff --git a/fs/cifs/netlink.h b/fs/smb/client/netlink.h
similarity index 100%
rename from fs/cifs/netlink.h
rename to fs/smb/client/netlink.h
diff --git a/fs/cifs/netmisc.c b/fs/smb/client/netmisc.c
similarity index 100%
rename from fs/cifs/netmisc.c
rename to fs/smb/client/netmisc.c
diff --git a/fs/cifs/nterr.c b/fs/smb/client/nterr.c
similarity index 100%
rename from fs/cifs/nterr.c
rename to fs/smb/client/nterr.c
diff --git a/fs/cifs/nterr.h b/fs/smb/client/nterr.h
similarity index 100%
rename from fs/cifs/nterr.h
rename to fs/smb/client/nterr.h
diff --git a/fs/cifs/ntlmssp.h b/fs/smb/client/ntlmssp.h
similarity index 100%
rename from fs/cifs/ntlmssp.h
rename to fs/smb/client/ntlmssp.h
diff --git a/fs/cifs/readdir.c b/fs/smb/client/readdir.c
similarity index 100%
rename from fs/cifs/readdir.c
rename to fs/smb/client/readdir.c
diff --git a/fs/cifs/rfc1002pdu.h b/fs/smb/client/rfc1002pdu.h
similarity index 100%
rename from fs/cifs/rfc1002pdu.h
rename to fs/smb/client/rfc1002pdu.h
diff --git a/fs/cifs/sess.c b/fs/smb/client/sess.c
similarity index 100%
rename from fs/cifs/sess.c
rename to fs/smb/client/sess.c
diff --git a/fs/cifs/smb1ops.c b/fs/smb/client/smb1ops.c
similarity index 100%
rename from fs/cifs/smb1ops.c
rename to fs/smb/client/smb1ops.c
diff --git a/fs/cifs/smb2file.c b/fs/smb/client/smb2file.c
similarity index 100%
rename from fs/cifs/smb2file.c
rename to fs/smb/client/smb2file.c
diff --git a/fs/cifs/smb2glob.h b/fs/smb/client/smb2glob.h
similarity index 100%
rename from fs/cifs/smb2glob.h
rename to fs/smb/client/smb2glob.h
diff --git a/fs/cifs/smb2inode.c b/fs/smb/client/smb2inode.c
similarity index 100%
rename from fs/cifs/smb2inode.c
rename to fs/smb/client/smb2inode.c
diff --git a/fs/cifs/smb2maperror.c b/fs/smb/client/smb2maperror.c
similarity index 100%
rename from fs/cifs/smb2maperror.c
rename to fs/smb/client/smb2maperror.c
diff --git a/fs/cifs/smb2misc.c b/fs/smb/client/smb2misc.c
similarity index 100%
rename from fs/cifs/smb2misc.c
rename to fs/smb/client/smb2misc.c
diff --git a/fs/cifs/smb2ops.c b/fs/smb/client/smb2ops.c
similarity index 100%
rename from fs/cifs/smb2ops.c
rename to fs/smb/client/smb2ops.c
diff --git a/fs/cifs/smb2pdu.c b/fs/smb/client/smb2pdu.c
similarity index 100%
rename from fs/cifs/smb2pdu.c
rename to fs/smb/client/smb2pdu.c
diff --git a/fs/cifs/smb2pdu.h b/fs/smb/client/smb2pdu.h
similarity index 100%
rename from fs/cifs/smb2pdu.h
rename to fs/smb/client/smb2pdu.h
diff --git a/fs/cifs/smb2proto.h b/fs/smb/client/smb2proto.h
similarity index 100%
rename from fs/cifs/smb2proto.h
rename to fs/smb/client/smb2proto.h
diff --git a/fs/cifs/smb2status.h b/fs/smb/client/smb2status.h
similarity index 100%
rename from fs/cifs/smb2status.h
rename to fs/smb/client/smb2status.h
diff --git a/fs/cifs/smb2transport.c b/fs/smb/client/smb2transport.c
similarity index 100%
rename from fs/cifs/smb2transport.c
rename to fs/smb/client/smb2transport.c
diff --git a/fs/cifs/smbdirect.c b/fs/smb/client/smbdirect.c
similarity index 100%
rename from fs/cifs/smbdirect.c
rename to fs/smb/client/smbdirect.c
diff --git a/fs/cifs/smbdirect.h b/fs/smb/client/smbdirect.h
similarity index 100%
rename from fs/cifs/smbdirect.h
rename to fs/smb/client/smbdirect.h
diff --git a/fs/cifs/smbencrypt.c b/fs/smb/client/smbencrypt.c
similarity index 98%
rename from fs/cifs/smbencrypt.c
rename to fs/smb/client/smbencrypt.c
index 4a0487753869..f0ce26414f17 100644
--- a/fs/cifs/smbencrypt.c
+++ b/fs/smb/client/smbencrypt.c
@@ -24,7 +24,7 @@
 #include "cifsglob.h"
 #include "cifs_debug.h"
 #include "cifsproto.h"
-#include "../smbfs_common/md4.h"
+#include "../common/md4.h"
 
 #ifndef false
 #define false 0
diff --git a/fs/cifs/smberr.h b/fs/smb/client/smberr.h
similarity index 100%
rename from fs/cifs/smberr.h
rename to fs/smb/client/smberr.h
diff --git a/fs/cifs/trace.c b/fs/smb/client/trace.c
similarity index 100%
rename from fs/cifs/trace.c
rename to fs/smb/client/trace.c
diff --git a/fs/cifs/trace.h b/fs/smb/client/trace.h
similarity index 100%
rename from fs/cifs/trace.h
rename to fs/smb/client/trace.h
diff --git a/fs/cifs/transport.c b/fs/smb/client/transport.c
similarity index 100%
rename from fs/cifs/transport.c
rename to fs/smb/client/transport.c
diff --git a/fs/cifs/unc.c b/fs/smb/client/unc.c
similarity index 100%
rename from fs/cifs/unc.c
rename to fs/smb/client/unc.c
diff --git a/fs/cifs/winucase.c b/fs/smb/client/winucase.c
similarity index 100%
rename from fs/cifs/winucase.c
rename to fs/smb/client/winucase.c
diff --git a/fs/cifs/xattr.c b/fs/smb/client/xattr.c
similarity index 100%
rename from fs/cifs/xattr.c
rename to fs/smb/client/xattr.c
diff --git a/fs/smbfs_common/Makefile b/fs/smb/common/Makefile
similarity index 100%
rename from fs/smbfs_common/Makefile
rename to fs/smb/common/Makefile
diff --git a/fs/smbfs_common/arc4.h b/fs/smb/common/arc4.h
similarity index 100%
rename from fs/smbfs_common/arc4.h
rename to fs/smb/common/arc4.h
diff --git a/fs/smbfs_common/cifs_arc4.c b/fs/smb/common/cifs_arc4.c
similarity index 100%
rename from fs/smbfs_common/cifs_arc4.c
rename to fs/smb/common/cifs_arc4.c
diff --git a/fs/smbfs_common/cifs_md4.c b/fs/smb/common/cifs_md4.c
similarity index 100%
rename from fs/smbfs_common/cifs_md4.c
rename to fs/smb/common/cifs_md4.c
diff --git a/fs/smbfs_common/md4.h b/fs/smb/common/md4.h
similarity index 100%
rename from fs/smbfs_common/md4.h
rename to fs/smb/common/md4.h
diff --git a/fs/smbfs_common/smb2pdu.h b/fs/smb/common/smb2pdu.h
similarity index 100%
rename from fs/smbfs_common/smb2pdu.h
rename to fs/smb/common/smb2pdu.h
diff --git a/fs/smbfs_common/smbfsctl.h b/fs/smb/common/smbfsctl.h
similarity index 100%
rename from fs/smbfs_common/smbfsctl.h
rename to fs/smb/common/smbfsctl.h
diff --git a/fs/ksmbd/Kconfig b/fs/smb/server/Kconfig
similarity index 100%
rename from fs/ksmbd/Kconfig
rename to fs/smb/server/Kconfig
diff --git a/fs/ksmbd/Makefile b/fs/smb/server/Makefile
similarity index 100%
rename from fs/ksmbd/Makefile
rename to fs/smb/server/Makefile
diff --git a/fs/ksmbd/asn1.c b/fs/smb/server/asn1.c
similarity index 100%
rename from fs/ksmbd/asn1.c
rename to fs/smb/server/asn1.c
diff --git a/fs/ksmbd/asn1.h b/fs/smb/server/asn1.h
similarity index 100%
rename from fs/ksmbd/asn1.h
rename to fs/smb/server/asn1.h
diff --git a/fs/ksmbd/auth.c b/fs/smb/server/auth.c
similarity index 99%
rename from fs/ksmbd/auth.c
rename to fs/smb/server/auth.c
index df8fb076f6f1..5e5e120edcc2 100644
--- a/fs/ksmbd/auth.c
+++ b/fs/smb/server/auth.c
@@ -29,7 +29,7 @@
 #include "mgmt/user_config.h"
 #include "crypto_ctx.h"
 #include "transport_ipc.h"
-#include "../smbfs_common/arc4.h"
+#include "../common/arc4.h"
 
 /*
  * Fixed format data defining GSS header and fixed string
diff --git a/fs/ksmbd/auth.h b/fs/smb/server/auth.h
similarity index 100%
rename from fs/ksmbd/auth.h
rename to fs/smb/server/auth.h
diff --git a/fs/ksmbd/connection.c b/fs/smb/server/connection.c
similarity index 100%
rename from fs/ksmbd/connection.c
rename to fs/smb/server/connection.c
diff --git a/fs/ksmbd/connection.h b/fs/smb/server/connection.h
similarity index 100%
rename from fs/ksmbd/connection.h
rename to fs/smb/server/connection.h
diff --git a/fs/ksmbd/crypto_ctx.c b/fs/smb/server/crypto_ctx.c
similarity index 100%
rename from fs/ksmbd/crypto_ctx.c
rename to fs/smb/server/crypto_ctx.c
diff --git a/fs/ksmbd/crypto_ctx.h b/fs/smb/server/crypto_ctx.h
similarity index 100%
rename from fs/ksmbd/crypto_ctx.h
rename to fs/smb/server/crypto_ctx.h
diff --git a/fs/ksmbd/glob.h b/fs/smb/server/glob.h
similarity index 100%
rename from fs/ksmbd/glob.h
rename to fs/smb/server/glob.h
diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/smb/server/ksmbd_netlink.h
similarity index 100%
rename from fs/ksmbd/ksmbd_netlink.h
rename to fs/smb/server/ksmbd_netlink.h
diff --git a/fs/ksmbd/ksmbd_spnego_negtokeninit.asn1 b/fs/smb/server/ksmbd_spnego_negtokeninit.asn1
similarity index 100%
rename from fs/ksmbd/ksmbd_spnego_negtokeninit.asn1
rename to fs/smb/server/ksmbd_spnego_negtokeninit.asn1
diff --git a/fs/ksmbd/ksmbd_spnego_negtokentarg.asn1 b/fs/smb/server/ksmbd_spnego_negtokentarg.asn1
similarity index 100%
rename from fs/ksmbd/ksmbd_spnego_negtokentarg.asn1
rename to fs/smb/server/ksmbd_spnego_negtokentarg.asn1
diff --git a/fs/ksmbd/ksmbd_work.c b/fs/smb/server/ksmbd_work.c
similarity index 100%
rename from fs/ksmbd/ksmbd_work.c
rename to fs/smb/server/ksmbd_work.c
diff --git a/fs/ksmbd/ksmbd_work.h b/fs/smb/server/ksmbd_work.h
similarity index 100%
rename from fs/ksmbd/ksmbd_work.h
rename to fs/smb/server/ksmbd_work.h
diff --git a/fs/ksmbd/mgmt/ksmbd_ida.c b/fs/smb/server/mgmt/ksmbd_ida.c
similarity index 100%
rename from fs/ksmbd/mgmt/ksmbd_ida.c
rename to fs/smb/server/mgmt/ksmbd_ida.c
diff --git a/fs/ksmbd/mgmt/ksmbd_ida.h b/fs/smb/server/mgmt/ksmbd_ida.h
similarity index 100%
rename from fs/ksmbd/mgmt/ksmbd_ida.h
rename to fs/smb/server/mgmt/ksmbd_ida.h
diff --git a/fs/ksmbd/mgmt/share_config.c b/fs/smb/server/mgmt/share_config.c
similarity index 100%
rename from fs/ksmbd/mgmt/share_config.c
rename to fs/smb/server/mgmt/share_config.c
diff --git a/fs/ksmbd/mgmt/share_config.h b/fs/smb/server/mgmt/share_config.h
similarity index 100%
rename from fs/ksmbd/mgmt/share_config.h
rename to fs/smb/server/mgmt/share_config.h
diff --git a/fs/ksmbd/mgmt/tree_connect.c b/fs/smb/server/mgmt/tree_connect.c
similarity index 100%
rename from fs/ksmbd/mgmt/tree_connect.c
rename to fs/smb/server/mgmt/tree_connect.c
diff --git a/fs/ksmbd/mgmt/tree_connect.h b/fs/smb/server/mgmt/tree_connect.h
similarity index 100%
rename from fs/ksmbd/mgmt/tree_connect.h
rename to fs/smb/server/mgmt/tree_connect.h
diff --git a/fs/ksmbd/mgmt/user_config.c b/fs/smb/server/mgmt/user_config.c
similarity index 100%
rename from fs/ksmbd/mgmt/user_config.c
rename to fs/smb/server/mgmt/user_config.c
diff --git a/fs/ksmbd/mgmt/user_config.h b/fs/smb/server/mgmt/user_config.h
similarity index 100%
rename from fs/ksmbd/mgmt/user_config.h
rename to fs/smb/server/mgmt/user_config.h
diff --git a/fs/ksmbd/mgmt/user_session.c b/fs/smb/server/mgmt/user_session.c
similarity index 100%
rename from fs/ksmbd/mgmt/user_session.c
rename to fs/smb/server/mgmt/user_session.c
diff --git a/fs/ksmbd/mgmt/user_session.h b/fs/smb/server/mgmt/user_session.h
similarity index 100%
rename from fs/ksmbd/mgmt/user_session.h
rename to fs/smb/server/mgmt/user_session.h
diff --git a/fs/ksmbd/misc.c b/fs/smb/server/misc.c
similarity index 100%
rename from fs/ksmbd/misc.c
rename to fs/smb/server/misc.c
diff --git a/fs/ksmbd/misc.h b/fs/smb/server/misc.h
similarity index 100%
rename from fs/ksmbd/misc.h
rename to fs/smb/server/misc.h
diff --git a/fs/ksmbd/ndr.c b/fs/smb/server/ndr.c
similarity index 100%
rename from fs/ksmbd/ndr.c
rename to fs/smb/server/ndr.c
diff --git a/fs/ksmbd/ndr.h b/fs/smb/server/ndr.h
similarity index 100%
rename from fs/ksmbd/ndr.h
rename to fs/smb/server/ndr.h
diff --git a/fs/ksmbd/nterr.h b/fs/smb/server/nterr.h
similarity index 100%
rename from fs/ksmbd/nterr.h
rename to fs/smb/server/nterr.h
diff --git a/fs/ksmbd/ntlmssp.h b/fs/smb/server/ntlmssp.h
similarity index 100%
rename from fs/ksmbd/ntlmssp.h
rename to fs/smb/server/ntlmssp.h
diff --git a/fs/ksmbd/oplock.c b/fs/smb/server/oplock.c
similarity index 100%
rename from fs/ksmbd/oplock.c
rename to fs/smb/server/oplock.c
diff --git a/fs/ksmbd/oplock.h b/fs/smb/server/oplock.h
similarity index 100%
rename from fs/ksmbd/oplock.h
rename to fs/smb/server/oplock.h
diff --git a/fs/ksmbd/server.c b/fs/smb/server/server.c
similarity index 100%
rename from fs/ksmbd/server.c
rename to fs/smb/server/server.c
diff --git a/fs/ksmbd/server.h b/fs/smb/server/server.h
similarity index 100%
rename from fs/ksmbd/server.h
rename to fs/smb/server/server.h
diff --git a/fs/ksmbd/smb2misc.c b/fs/smb/server/smb2misc.c
similarity index 100%
rename from fs/ksmbd/smb2misc.c
rename to fs/smb/server/smb2misc.c
diff --git a/fs/ksmbd/smb2ops.c b/fs/smb/server/smb2ops.c
similarity index 100%
rename from fs/ksmbd/smb2ops.c
rename to fs/smb/server/smb2ops.c
diff --git a/fs/ksmbd/smb2pdu.c b/fs/smb/server/smb2pdu.c
similarity index 100%
rename from fs/ksmbd/smb2pdu.c
rename to fs/smb/server/smb2pdu.c
diff --git a/fs/ksmbd/smb2pdu.h b/fs/smb/server/smb2pdu.h
similarity index 100%
rename from fs/ksmbd/smb2pdu.h
rename to fs/smb/server/smb2pdu.h
diff --git a/fs/ksmbd/smb_common.c b/fs/smb/server/smb_common.c
similarity index 100%
rename from fs/ksmbd/smb_common.c
rename to fs/smb/server/smb_common.c
diff --git a/fs/ksmbd/smb_common.h b/fs/smb/server/smb_common.h
similarity index 99%
rename from fs/ksmbd/smb_common.h
rename to fs/smb/server/smb_common.h
index 9130d2e3cd78..6b0d5f1fe85c 100644
--- a/fs/ksmbd/smb_common.h
+++ b/fs/smb/server/smb_common.h
@@ -10,7 +10,7 @@
 
 #include "glob.h"
 #include "nterr.h"
-#include "../smbfs_common/smb2pdu.h"
+#include "../common/smb2pdu.h"
 #include "smb2pdu.h"
 
 /* ksmbd's Specific ERRNO */
diff --git a/fs/ksmbd/smbacl.c b/fs/smb/server/smbacl.c
similarity index 100%
rename from fs/ksmbd/smbacl.c
rename to fs/smb/server/smbacl.c
diff --git a/fs/ksmbd/smbacl.h b/fs/smb/server/smbacl.h
similarity index 100%
rename from fs/ksmbd/smbacl.h
rename to fs/smb/server/smbacl.h
diff --git a/fs/ksmbd/smbfsctl.h b/fs/smb/server/smbfsctl.h
similarity index 100%
rename from fs/ksmbd/smbfsctl.h
rename to fs/smb/server/smbfsctl.h
diff --git a/fs/ksmbd/smbstatus.h b/fs/smb/server/smbstatus.h
similarity index 100%
rename from fs/ksmbd/smbstatus.h
rename to fs/smb/server/smbstatus.h
diff --git a/fs/ksmbd/transport_ipc.c b/fs/smb/server/transport_ipc.c
similarity index 100%
rename from fs/ksmbd/transport_ipc.c
rename to fs/smb/server/transport_ipc.c
diff --git a/fs/ksmbd/transport_ipc.h b/fs/smb/server/transport_ipc.h
similarity index 100%
rename from fs/ksmbd/transport_ipc.h
rename to fs/smb/server/transport_ipc.h
diff --git a/fs/ksmbd/transport_rdma.c b/fs/smb/server/transport_rdma.c
similarity index 100%
rename from fs/ksmbd/transport_rdma.c
rename to fs/smb/server/transport_rdma.c
diff --git a/fs/ksmbd/transport_rdma.h b/fs/smb/server/transport_rdma.h
similarity index 100%
rename from fs/ksmbd/transport_rdma.h
rename to fs/smb/server/transport_rdma.h
diff --git a/fs/ksmbd/transport_tcp.c b/fs/smb/server/transport_tcp.c
similarity index 100%
rename from fs/ksmbd/transport_tcp.c
rename to fs/smb/server/transport_tcp.c
diff --git a/fs/ksmbd/transport_tcp.h b/fs/smb/server/transport_tcp.h
similarity index 100%
rename from fs/ksmbd/transport_tcp.h
rename to fs/smb/server/transport_tcp.h
diff --git a/fs/ksmbd/unicode.c b/fs/smb/server/unicode.c
similarity index 100%
rename from fs/ksmbd/unicode.c
rename to fs/smb/server/unicode.c
diff --git a/fs/ksmbd/unicode.h b/fs/smb/server/unicode.h
similarity index 100%
rename from fs/ksmbd/unicode.h
rename to fs/smb/server/unicode.h
diff --git a/fs/ksmbd/uniupr.h b/fs/smb/server/uniupr.h
similarity index 100%
rename from fs/ksmbd/uniupr.h
rename to fs/smb/server/uniupr.h
diff --git a/fs/ksmbd/vfs.c b/fs/smb/server/vfs.c
similarity index 100%
rename from fs/ksmbd/vfs.c
rename to fs/smb/server/vfs.c
diff --git a/fs/ksmbd/vfs.h b/fs/smb/server/vfs.h
similarity index 100%
rename from fs/ksmbd/vfs.h
rename to fs/smb/server/vfs.h
diff --git a/fs/ksmbd/vfs_cache.c b/fs/smb/server/vfs_cache.c
similarity index 100%
rename from fs/ksmbd/vfs_cache.c
rename to fs/smb/server/vfs_cache.c
diff --git a/fs/ksmbd/vfs_cache.h b/fs/smb/server/vfs_cache.h
similarity index 100%
rename from fs/ksmbd/vfs_cache.h
rename to fs/smb/server/vfs_cache.h
diff --git a/fs/ksmbd/xattr.h b/fs/smb/server/xattr.h
similarity index 100%
rename from fs/ksmbd/xattr.h
rename to fs/smb/server/xattr.h
-- 
2.34.1


[-- Attachment #3: 0002-cifs-correct-references-in-Documentation-to-old-fs-c.patch --]
[-- Type: text/x-patch, Size: 5631 bytes --]

From a96717ebb794920dde7740e0349cf4abf60fc6dd Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Sun, 21 May 2023 22:52:04 -0500
Subject: [PATCH 2/3] cifs: correct references in Documentation to old fs/cifs
 path

The fs/cifs directory has moved to fs/smb/client, correct mentions
of this in Documentation and comments.

Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 Documentation/admin-guide/cifs/changes.rst         | 4 ++--
 Documentation/admin-guide/cifs/usage.rst           | 8 ++++----
 Documentation/filesystems/cifs/cifsroot.rst        | 2 +-
 Documentation/userspace-api/ioctl/ioctl-number.rst | 2 +-
 fs/smb/server/smbfsctl.h                           | 2 +-
 fs/smb/server/smbstatus.h                          | 2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Documentation/admin-guide/cifs/changes.rst b/Documentation/admin-guide/cifs/changes.rst
index 3147bbae9c43..8c42c4de510b 100644
--- a/Documentation/admin-guide/cifs/changes.rst
+++ b/Documentation/admin-guide/cifs/changes.rst
@@ -5,5 +5,5 @@ Changes
 See https://wiki.samba.org/index.php/LinuxCIFSKernel for summary
 information about fixes/improvements to CIFS/SMB2/SMB3 support (changes
 to cifs.ko module) by kernel version (and cifs internal module version).
-This may be easier to read than parsing the output of "git log fs/cifs"
-by release.
+This may be easier to read than parsing the output of
+"git log fs/smb/client" by release.
diff --git a/Documentation/admin-guide/cifs/usage.rst b/Documentation/admin-guide/cifs/usage.rst
index 2e151cd8c2e4..5f936b4b6018 100644
--- a/Documentation/admin-guide/cifs/usage.rst
+++ b/Documentation/admin-guide/cifs/usage.rst
@@ -45,7 +45,7 @@ Installation instructions
 
 If you have built the CIFS vfs as module (successfully) simply
 type ``make modules_install`` (or if you prefer, manually copy the file to
-the modules directory e.g. /lib/modules/2.4.10-4GB/kernel/fs/cifs/cifs.ko).
+the modules directory e.g. /lib/modules/6.3.0-060300-generic/kernel/fs/smb/client/cifs.ko).
 
 If you have built the CIFS vfs into the kernel itself, follow the instructions
 for your distribution on how to install a new kernel (usually you
@@ -66,15 +66,15 @@ If cifs is built as a module, then the size and number of network buffers
 and maximum number of simultaneous requests to one server can be configured.
 Changing these from their defaults is not recommended. By executing modinfo::
 
-	modinfo kernel/fs/cifs/cifs.ko
+	modinfo <path to cifs.ko>
 
-on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made
+on kernel/fs/smb/client/cifs.ko the list of configuration changes that can be made
 at module initialization time (by running insmod cifs.ko) can be seen.
 
 Recommendations
 ===============
 
-To improve security the SMB2.1 dialect or later (usually will get SMB3) is now
+To improve security the SMB2.1 dialect or later (usually will get SMB3.1.1) is now
 the new default. To use old dialects (e.g. to mount Windows XP) use "vers=1.0"
 on mount (or vers=2.0 for Windows Vista).  Note that the CIFS (vers=1.0) is
 much older and less secure than the default dialect SMB3 which includes
diff --git a/Documentation/filesystems/cifs/cifsroot.rst b/Documentation/filesystems/cifs/cifsroot.rst
index 4930bb443134..bf2d9db3acb9 100644
--- a/Documentation/filesystems/cifs/cifsroot.rst
+++ b/Documentation/filesystems/cifs/cifsroot.rst
@@ -59,7 +59,7 @@ the root file system via SMB protocol.
 Enables the kernel to mount the root file system via SMB that are
 located in the <server-ip> and <share> specified in this option.
 
-The default mount options are set in fs/cifs/cifsroot.c.
+The default mount options are set in fs/smb/client/cifsroot.c.
 
 server-ip
 	IPv4 address of the server.
diff --git a/Documentation/userspace-api/ioctl/ioctl-number.rst b/Documentation/userspace-api/ioctl/ioctl-number.rst
index 176e8fc3f31b..4f7b23faebb9 100644
--- a/Documentation/userspace-api/ioctl/ioctl-number.rst
+++ b/Documentation/userspace-api/ioctl/ioctl-number.rst
@@ -363,7 +363,7 @@ Code  Seq#    Include File                                           Comments
 0xCC  00-0F  drivers/misc/ibmvmc.h                                   pseries VMC driver
 0xCD  01     linux/reiserfs_fs.h
 0xCE  01-02  uapi/linux/cxl_mem.h                                    Compute Express Link Memory Devices
-0xCF  02     fs/cifs/ioctl.c
+0xCF  02     fs/smb/client/cifs_ioctl.h
 0xDB  00-0F  drivers/char/mwave/mwavepub.h
 0xDD  00-3F                                                          ZFCP device driver see drivers/s390/scsi/
                                                                      <mailto:aherrman@de.ibm.com>
diff --git a/fs/smb/server/smbfsctl.h b/fs/smb/server/smbfsctl.h
index b98418aae20c..ecdf8f6e0df4 100644
--- a/fs/smb/server/smbfsctl.h
+++ b/fs/smb/server/smbfsctl.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
 /*
- *   fs/cifs/smbfsctl.h: SMB, CIFS, SMB2 FSCTL definitions
+ *   fs/smb/server/smbfsctl.h: SMB, CIFS, SMB2 FSCTL definitions
  *
  *   Copyright (c) International Business Machines  Corp., 2002,2009
  *   Author(s): Steve French (sfrench@us.ibm.com)
diff --git a/fs/smb/server/smbstatus.h b/fs/smb/server/smbstatus.h
index 108a8b6ed24a..8963deb42404 100644
--- a/fs/smb/server/smbstatus.h
+++ b/fs/smb/server/smbstatus.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
 /*
- *   fs/cifs/smb2status.h
+ *   fs/server/smb2status.h
  *
  *   SMB2 Status code (network error) definitions
  *   Definitions are from MS-ERREF
-- 
2.34.1


[-- Attachment #4: 0003-smb3-move-Documentation-filesystems-cifs-to-Document.patch --]
[-- Type: text/x-patch, Size: 2784 bytes --]

From e90e7ed294db836857a3516cc9d15cdad6a994a3 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Mon, 22 May 2023 09:50:33 -0500
Subject: [PATCH 3/3] smb3: move Documentation/filesystems/cifs to
 Documentation/filesystems/smb

Documentation/filesystems/cifs contains both server and client information
so its pathname is misleading.  In addition, the directory fs/smb
now contains both server and client, so move Documentation/filesystems/cifs
to Documentation/filesystems/smb

Suggested-by: Namjae Jeon <linkinjeon@kernel.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 Documentation/filesystems/index.rst                  | 2 +-
 Documentation/filesystems/{cifs => smb}/cifsroot.rst | 0
 Documentation/filesystems/{cifs => smb}/index.rst    | 0
 Documentation/filesystems/{cifs => smb}/ksmbd.rst    | 0
 MAINTAINERS                                          | 2 +-
 5 files changed, 2 insertions(+), 2 deletions(-)
 rename Documentation/filesystems/{cifs => smb}/cifsroot.rst (100%)
 rename Documentation/filesystems/{cifs => smb}/index.rst (100%)
 rename Documentation/filesystems/{cifs => smb}/ksmbd.rst (100%)

diff --git a/Documentation/filesystems/index.rst b/Documentation/filesystems/index.rst
index fbb2b5ada95b..eb252fc972aa 100644
--- a/Documentation/filesystems/index.rst
+++ b/Documentation/filesystems/index.rst
@@ -72,7 +72,6 @@ Documentation for filesystem implementations.
    befs
    bfs
    btrfs
-   cifs/index
    ceph
    coda
    configfs
@@ -111,6 +110,7 @@ Documentation for filesystem implementations.
    ramfs-rootfs-initramfs
    relay
    romfs
+   smb/index
    spufs/index
    squashfs
    sysfs
diff --git a/Documentation/filesystems/cifs/cifsroot.rst b/Documentation/filesystems/smb/cifsroot.rst
similarity index 100%
rename from Documentation/filesystems/cifs/cifsroot.rst
rename to Documentation/filesystems/smb/cifsroot.rst
diff --git a/Documentation/filesystems/cifs/index.rst b/Documentation/filesystems/smb/index.rst
similarity index 100%
rename from Documentation/filesystems/cifs/index.rst
rename to Documentation/filesystems/smb/index.rst
diff --git a/Documentation/filesystems/cifs/ksmbd.rst b/Documentation/filesystems/smb/ksmbd.rst
similarity index 100%
rename from Documentation/filesystems/cifs/ksmbd.rst
rename to Documentation/filesystems/smb/ksmbd.rst
diff --git a/MAINTAINERS b/MAINTAINERS
index 902f763e845d..6152a4251ce7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11300,7 +11300,7 @@ R:	Tom Talpey <tom@talpey.com>
 L:	linux-cifs@vger.kernel.org
 S:	Maintained
 T:	git git://git.samba.org/ksmbd.git
-F:	Documentation/filesystems/cifs/ksmbd.rst
+F:	Documentation/filesystems/smb/ksmbd.rst
 F:	fs/smb/common/
 F:	fs/smb/server/
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: patches to move ksmbd and cifs under new subdirectory
  2023-05-24  2:41       ` Steve French
@ 2023-05-24  4:27         ` Steve French
  0 siblings, 0 replies; 7+ messages in thread
From: Steve French @ 2023-05-24  4:27 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: CIFS, samba-technical, Namjae Jeon, LKML, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 2127 bytes --]

One more minor change (fs/smb/common/Makefile was missing a two line change).
Running automated tests now.

Attached updated patch

On Tue, May 23, 2023 at 9:41 PM Steve French <smfrench@gmail.com> wrote:
>
> Lightly updated (e.g. to include a missing trivial change needed to
> Documentation/filesystems/index.rst that Namjae noticed).  See
> attached.
>
> Presumably can defer the additional cleanup/prettying (ie those beyond
> those required for the directory rename) with distinct patches later.
>
> On Tue, May 23, 2023 at 12:35 PM Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > On Mon, May 22, 2023 at 11:39 PM Steve French <smfrench@gmail.com> wrote:
> > >
> > > My reason for adding CONFIG_SMB_CLIENT, enabling CONFIG_SMB_CLIENT
> > > when CONFIG_CIFS was enabled, I was trying to make the Makefile more clear
> > > (without changing any behavior):
> >
> > That sounds ok, but I think it should be done separately from the
> > move. Keep the move as a pure move/rename, not "new things".
> >
> > Also, when you actually do this cleanup, I think you really should just do
> >
> >   config SMB
> >         tristate
> >
> >   config SMB_CLIENT
> >         tristate
> >
> > to declare them, but *not* have that
> >
> >         default y if CIFS=y || SMB_SERVER=y
> >         default m if CIFS=m || SMB_SERVER=m
> >
> > kind of noise anywhere. Not for SMBFS, not for SMB_CLIENT.
> >
> > Just do
> >
> >         select SMBFS
> >         select SMB_CLIENT
> >
> > in the current CIFS Kconfig entry. And then SMB_SERVER can likewise do
> >
> >         select SMBFS
> >
> > and I think it will all automatically do what those much more complex
> > "default" expressions currently do.
> >
> > But again - I think this kind of "clean things up" should be entirely
> > separate from the pure code movement. Don't do new functionality when
> > moving things, just do the minimal required infrastructure changes to
> > make things work with the movement.
> >
> >               Linus
>
>
>
> --
> Thanks,
>
> Steve



-- 
Thanks,

Steve

[-- Attachment #2: 0001-smb3-move-Documentation-filesystems-cifs-to-Document.patch --]
[-- Type: text/x-patch, Size: 2780 bytes --]

From 4f0d0031cb97201fdaf4ccc3619310e200fae7ac Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Mon, 22 May 2023 09:50:33 -0500
Subject: [PATCH] smb3: move Documentation/filesystems/cifs to
 Documentation/filesystems/smb

Documentation/filesystems/cifs contains both server and client information
so its pathname is misleading.  In addition, the directory fs/smb
now contains both server and client, so move Documentation/filesystems/cifs
to Documentation/filesystems/smb

Suggested-by: Namjae Jeon <linkinjeon@kernel.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
---
 Documentation/filesystems/index.rst                  | 2 +-
 Documentation/filesystems/{cifs => smb}/cifsroot.rst | 0
 Documentation/filesystems/{cifs => smb}/index.rst    | 0
 Documentation/filesystems/{cifs => smb}/ksmbd.rst    | 0
 MAINTAINERS                                          | 2 +-
 5 files changed, 2 insertions(+), 2 deletions(-)
 rename Documentation/filesystems/{cifs => smb}/cifsroot.rst (100%)
 rename Documentation/filesystems/{cifs => smb}/index.rst (100%)
 rename Documentation/filesystems/{cifs => smb}/ksmbd.rst (100%)

diff --git a/Documentation/filesystems/index.rst b/Documentation/filesystems/index.rst
index fbb2b5ada95b..eb252fc972aa 100644
--- a/Documentation/filesystems/index.rst
+++ b/Documentation/filesystems/index.rst
@@ -72,7 +72,6 @@ Documentation for filesystem implementations.
    befs
    bfs
    btrfs
-   cifs/index
    ceph
    coda
    configfs
@@ -111,6 +110,7 @@ Documentation for filesystem implementations.
    ramfs-rootfs-initramfs
    relay
    romfs
+   smb/index
    spufs/index
    squashfs
    sysfs
diff --git a/Documentation/filesystems/cifs/cifsroot.rst b/Documentation/filesystems/smb/cifsroot.rst
similarity index 100%
rename from Documentation/filesystems/cifs/cifsroot.rst
rename to Documentation/filesystems/smb/cifsroot.rst
diff --git a/Documentation/filesystems/cifs/index.rst b/Documentation/filesystems/smb/index.rst
similarity index 100%
rename from Documentation/filesystems/cifs/index.rst
rename to Documentation/filesystems/smb/index.rst
diff --git a/Documentation/filesystems/cifs/ksmbd.rst b/Documentation/filesystems/smb/ksmbd.rst
similarity index 100%
rename from Documentation/filesystems/cifs/ksmbd.rst
rename to Documentation/filesystems/smb/ksmbd.rst
diff --git a/MAINTAINERS b/MAINTAINERS
index 902f763e845d..6152a4251ce7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11300,7 +11300,7 @@ R:	Tom Talpey <tom@talpey.com>
 L:	linux-cifs@vger.kernel.org
 S:	Maintained
 T:	git git://git.samba.org/ksmbd.git
-F:	Documentation/filesystems/cifs/ksmbd.rst
+F:	Documentation/filesystems/smb/ksmbd.rst
 F:	fs/smb/common/
 F:	fs/smb/server/
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-05-24  4:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-22 16:33 patches to move ksmbd and cifs under new subdirectory Steve French
2023-05-22 17:20 ` Tom Talpey
2023-05-22 17:33 ` Linus Torvalds
2023-05-23  6:39   ` Steve French
2023-05-23 17:34     ` Linus Torvalds
2023-05-24  2:41       ` Steve French
2023-05-24  4:27         ` Steve French

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).