[PATCH v5 00/14] smb: move duplicate definitions to common header file

chenxiaosong.chenxiaosong@linux.dev posted 14 patches 3 months, 1 week ago
There is a newer version of this series
fs/smb/client/cifsglob.h   |   1 +
fs/smb/client/cifspdu.h    | 593 +++++++++++--------------------------
fs/smb/client/cifssmb.c    |  12 +-
fs/smb/client/connect.c    |   4 +-
fs/smb/client/inode.c      |   4 +-
fs/smb/client/ntlmssp.h    |   8 +-
fs/smb/client/readdir.c    |  12 +-
fs/smb/client/reparse.h    |   8 +-
fs/smb/client/rfc1002pdu.h |   8 +-
fs/smb/client/smb1ops.c    |   2 +-
fs/smb/client/smb2inode.c  |   2 +-
fs/smb/client/smb2pdu.c    |  16 +-
fs/smb/client/smb2pdu.h    |  69 -----
fs/smb/common/fscc.h       | 179 +++++++++++
fs/smb/common/smb2pdu.h    | 221 +++++++++++++-
fs/smb/common/smbacl.h     |   8 +-
fs/smb/common/smbglob.h    |   4 +
fs/smb/server/oplock.c     |   8 +-
fs/smb/server/smb2ops.c    |   6 +-
fs/smb/server/smb2pdu.c    | 116 ++++----
fs/smb/server/smb2pdu.h    |  68 -----
fs/smb/server/smb_common.h | 237 +--------------
fs/smb/server/vfs.c        |   2 +-
23 files changed, 682 insertions(+), 906 deletions(-)
create mode 100644 fs/smb/common/fscc.h
[PATCH v5 00/14] smb: move duplicate definitions to common header file
Posted by chenxiaosong.chenxiaosong@linux.dev 3 months, 1 week ago
From: ChenXiaoSong <chenxiaosong@kylinos.cn>

The following patches from v3 have already been merged into the mainline:

  - 6fced056d2cc smb/server: fix possible memory leak in smb2_read()
  - 379510a815cb smb/server: fix possible refcount leak in smb2_sess_setup()
  - d877470b5991 smb: move some duplicate definitions to common/cifsglob.h

The following patches from v4 have been applied to [the ksmbd-for-next-next branch](https://git.samba.org/?p=ksmbd.git;a=shortlog;h=refs/heads/ksmbd-for-next-next):

  - smb: move resume_key_ioctl_rsp to common/smb2pdu.h
  - smb: move copychunk definitions to common/smb2pdu.h
  - smb: move smb_sockaddr_in and smb_sockaddr_in6 to common/smb2pdu.h
  - smb: move SMB1_PROTO_NUMBER to common/smbglob.h
  - smb: move get_rfc1002_len() to common/smbglob.h
  - smb: move smb_version_values to common/smbglob.h
  - smb: rename common/cifsglob.h to common/smbglob.h

In order to maintain the code more easily, move some duplicate definitions
to common header file.

Add some MS documentation references for macro and struct definitions.

I will test these code changes with smbtorure and xfstests as soon as possible.

By cleaning the common definitions for client and server, I've become more
familiar with the MS documentation, which I believe will be very useful for
developing SMB features soon. 

v4->v5:
  - The following modifications were made according to Namjae's and Steve's suggestions.
  - Create patch #01 #02 #08.
  - Patch #07: move struct smb_hdr to common/smb2pdu.h, do not move SET_FILE_READ_RIGHTS and SET_FILE_WRITE_RIGHTS.
  - Patch #09 ~ #12: move definitions to common/fscc.h
  - Patch #10: include all changes that only rename structures in this patch.
  - Patch #11 #12: some cleanups.

v4: https://lore.kernel.org/all/20251027071316.3468472-1-chenxiaosong.chenxiaosong@linux.dev/

ChenXiaoSong (13):
  smb/client: fix CAP_BULK_TRANSFER value
  smb: move MAX_CIFS_SMALL_BUFFER_SIZE to common/smbglob.h
  smb: move create_durable_req_v2 to common/smb2pdu.h
  smb: move create_durable_handle_reconnect_v2 to common/smb2pdu.h
  smb: move create_durable_rsp_v2 to common/smb2pdu.h
  smb/server: remove create_durable_reconn_req
  smb: move SMB_NEGOTIATE_REQ to common/smb2pdu.h
  smb: move list of FileSystemAttributes to common/fscc.h
  smb: move some duplicate struct definitions to common/fscc.h
  smb: move FILE_SYSTEM_SIZE_INFO to common/fscc.h
  smb: move FILE_SYSTEM_ATTRIBUTE_INFO to common/fscc.h
  smb: do some cleanups
  smb: fix some warnings reported by scripts/checkpatch.pl

ZhangGuoDong (1):
  smb: move some duplicate definitions to common/smb2pdu.h

 fs/smb/client/cifsglob.h   |   1 +
 fs/smb/client/cifspdu.h    | 593 +++++++++++--------------------------
 fs/smb/client/cifssmb.c    |  12 +-
 fs/smb/client/connect.c    |   4 +-
 fs/smb/client/inode.c      |   4 +-
 fs/smb/client/ntlmssp.h    |   8 +-
 fs/smb/client/readdir.c    |  12 +-
 fs/smb/client/reparse.h    |   8 +-
 fs/smb/client/rfc1002pdu.h |   8 +-
 fs/smb/client/smb1ops.c    |   2 +-
 fs/smb/client/smb2inode.c  |   2 +-
 fs/smb/client/smb2pdu.c    |  16 +-
 fs/smb/client/smb2pdu.h    |  69 -----
 fs/smb/common/fscc.h       | 179 +++++++++++
 fs/smb/common/smb2pdu.h    | 221 +++++++++++++-
 fs/smb/common/smbacl.h     |   8 +-
 fs/smb/common/smbglob.h    |   4 +
 fs/smb/server/oplock.c     |   8 +-
 fs/smb/server/smb2ops.c    |   6 +-
 fs/smb/server/smb2pdu.c    | 116 ++++----
 fs/smb/server/smb2pdu.h    |  68 -----
 fs/smb/server/smb_common.h | 237 +--------------
 fs/smb/server/vfs.c        |   2 +-
 23 files changed, 682 insertions(+), 906 deletions(-)
 create mode 100644 fs/smb/common/fscc.h

-- 
2.43.0
Re: [PATCH v5 00/14] smb: move duplicate definitions to common header file
Posted by ChenXiaoSong 3 months ago
Hi Steve and Namjae,

I have tested the following patches using xfstests and smbtorture, no 
additional failed test cases were observed in the test results.
   - [PATCH v2 0/6] smb/server: fix return values of smb2_0_server_cmds proc
   - Patches applied to the ksmbd-for-next-next branch
   - [PATCH v5 00/14] smb: move duplicate definitions to common header file

The detailed test results can be found in 
http://chenxiaosong.com/smb-test/20251109

Thanks,
ChenXiaoSong.

On 11/2/25 3:30 PM, chenxiaosong.chenxiaosong@linux.dev wrote:
> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
> 
> The following patches from v3 have already been merged into the mainline:
> 
>    - 6fced056d2cc smb/server: fix possible memory leak in smb2_read()
>    - 379510a815cb smb/server: fix possible refcount leak in smb2_sess_setup()
>    - d877470b5991 smb: move some duplicate definitions to common/cifsglob.h
> 
> The following patches from v4 have been applied to [the ksmbd-for-next-next branch](https://git.samba.org/?p=ksmbd.git;a=shortlog;h=refs/heads/ksmbd-for-next-next):
> 
>    - smb: move resume_key_ioctl_rsp to common/smb2pdu.h
>    - smb: move copychunk definitions to common/smb2pdu.h
>    - smb: move smb_sockaddr_in and smb_sockaddr_in6 to common/smb2pdu.h
>    - smb: move SMB1_PROTO_NUMBER to common/smbglob.h
>    - smb: move get_rfc1002_len() to common/smbglob.h
>    - smb: move smb_version_values to common/smbglob.h
>    - smb: rename common/cifsglob.h to common/smbglob.h
> 
> In order to maintain the code more easily, move some duplicate definitions
> to common header file.
> 
> Add some MS documentation references for macro and struct definitions.
> 
> I will test these code changes with smbtorure and xfstests as soon as possible.
> 
> By cleaning the common definitions for client and server, I've become more
> familiar with the MS documentation, which I believe will be very useful for
> developing SMB features soon.
> 
> v4->v5:
>    - The following modifications were made according to Namjae's and Steve's suggestions.
>    - Create patch #01 #02 #08.
>    - Patch #07: move struct smb_hdr to common/smb2pdu.h, do not move SET_FILE_READ_RIGHTS and SET_FILE_WRITE_RIGHTS.
>    - Patch #09 ~ #12: move definitions to common/fscc.h
>    - Patch #10: include all changes that only rename structures in this patch.
>    - Patch #11 #12: some cleanups.
> 
> v4: https://lore.kernel.org/all/20251027071316.3468472-1-chenxiaosong.chenxiaosong@linux.dev/
> 
> ChenXiaoSong (13):
>    smb/client: fix CAP_BULK_TRANSFER value
>    smb: move MAX_CIFS_SMALL_BUFFER_SIZE to common/smbglob.h
>    smb: move create_durable_req_v2 to common/smb2pdu.h
>    smb: move create_durable_handle_reconnect_v2 to common/smb2pdu.h
>    smb: move create_durable_rsp_v2 to common/smb2pdu.h
>    smb/server: remove create_durable_reconn_req
>    smb: move SMB_NEGOTIATE_REQ to common/smb2pdu.h
>    smb: move list of FileSystemAttributes to common/fscc.h
>    smb: move some duplicate struct definitions to common/fscc.h
>    smb: move FILE_SYSTEM_SIZE_INFO to common/fscc.h
>    smb: move FILE_SYSTEM_ATTRIBUTE_INFO to common/fscc.h
>    smb: do some cleanups
>    smb: fix some warnings reported by scripts/checkpatch.pl
> 
> ZhangGuoDong (1):
>    smb: move some duplicate definitions to common/smb2pdu.h
> 
>   fs/smb/client/cifsglob.h   |   1 +
>   fs/smb/client/cifspdu.h    | 593 +++++++++++--------------------------
>   fs/smb/client/cifssmb.c    |  12 +-
>   fs/smb/client/connect.c    |   4 +-
>   fs/smb/client/inode.c      |   4 +-
>   fs/smb/client/ntlmssp.h    |   8 +-
>   fs/smb/client/readdir.c    |  12 +-
>   fs/smb/client/reparse.h    |   8 +-
>   fs/smb/client/rfc1002pdu.h |   8 +-
>   fs/smb/client/smb1ops.c    |   2 +-
>   fs/smb/client/smb2inode.c  |   2 +-
>   fs/smb/client/smb2pdu.c    |  16 +-
>   fs/smb/client/smb2pdu.h    |  69 -----
>   fs/smb/common/fscc.h       | 179 +++++++++++
>   fs/smb/common/smb2pdu.h    | 221 +++++++++++++-
>   fs/smb/common/smbacl.h     |   8 +-
>   fs/smb/common/smbglob.h    |   4 +
>   fs/smb/server/oplock.c     |   8 +-
>   fs/smb/server/smb2ops.c    |   6 +-
>   fs/smb/server/smb2pdu.c    | 116 ++++----
>   fs/smb/server/smb2pdu.h    |  68 -----
>   fs/smb/server/smb_common.h | 237 +--------------
>   fs/smb/server/vfs.c        |   2 +-
>   23 files changed, 682 insertions(+), 906 deletions(-)
>   create mode 100644 fs/smb/common/fscc.h
>