Re: patches to move ksmbd and cifs under new subdirectory

From: Steve French
Date: Tue May 23 2023 - 02:39:30 EST


On Mon, May 22, 2023 at 12:33 PM Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Mon, May 22, 2023 at 9:33 AM Steve French <smfrench@xxxxxxxxx> 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
From ac5c855ee550308f1e3885ebc84b8d034e35c08d Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@xxxxxxxxxxxxx>
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@xxxxxxxxxxxxxxxxxxxx>
Acked-by: Namjae Jeon <linkinjeon@xxxxxxxxxx>
Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
---
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@xxxxxxxxxxxxxxx
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@xxxxxxxxxx>
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