patches to move ksmbd and cifs under new subdirectory

From: Steve French
Date: Mon May 22 2023 - 12:33:49 EST


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@xxxxxxxxxx>

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
From b686a0741a28969786944c7ffb38563f4c6383f4 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@xxxxxxxxxxxxx>
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@xxxxxxxxxx>
Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
---
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@xxxxxxxxxx>
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@xxxxxxxxxx)
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

From 909b8a8f6475bb9902e3621d3cd9cba3a95e3f0e 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/conmon

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}/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@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..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

From 449ef93f80ae51c0edac57d74aae3bc113dcca58 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@xxxxxxxxxxxxx>
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@xxxxxxxxxx>
Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
---
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@xxxxxxxxxx>
L: linux-cifs@xxxxxxxxxxxxxxx
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