linux-cifs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: ChenXiaoSong <chenxiaosong.chenxiaosong@linux.dev>
To: Steve French <smfrench@gmail.com>
Cc: sfrench@samba.org, linkinjeon@kernel.org, linkinjeon@samba.org,
	linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org,
	liuzhengyuan@kylinos.cn, huhai@kylinos.cn, liuyun01@kylinos.cn,
	ZhangGuoDong <zhangguodong@kylinos.cn>,
	ChenXiaoSong <chenxiaosong@kylinos.cn>
Subject: Re: [PATCH 13/13] smb: move some SMB1 definitions into common/smb1pdu.h
Date: Tue, 9 Dec 2025 10:56:49 +0800	[thread overview]
Message-ID: <6ff6fa14-15d2-487d-8d6f-373bd64fcb46@linux.dev> (raw)
In-Reply-To: <CAH2r5muXiti986tsg7fwLTEw7CceJ6UdtTh6s7CXWqU-D+COAw@mail.gmail.com>

ksmbd only implements SMB_COM_NEGOTIATE. Please refer to the 
init_smb1_rsp_hdr() function

Thanks,
ChenXiaoSong.

On 12/9/25 10:52, Steve French wrote:
> One option to consider is moving smb1 definitions into a client only
> (fs/smb/client) header since ksmbd doesn't use SMB1 technically they
> aren't 'common'
> 
> Did you find ksmbd server cases where it depends on any of these?
> 
> On Mon, Dec 8, 2025 at 7:12 PM <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>
>> From: ZhangGuoDong <zhangguodong@kylinos.cn>
>>
>> These definitions are only used by SMB1, so move them into the new
>> common/smb1pdu.h.
>>
>> Co-developed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
>> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
>> Signed-off-by: ZhangGuoDong <zhangguodong@kylinos.cn>
>> ---
>>   fs/smb/client/cifspdu.h    |  2 +-
>>   fs/smb/common/smb1pdu.h    | 59 ++++++++++++++++++++++++++++++++++++++
>>   fs/smb/common/smb2pdu.h    | 44 ----------------------------
>>   fs/smb/common/smbglob.h    |  2 --
>>   fs/smb/server/smb_common.h |  1 +
>>   5 files changed, 61 insertions(+), 47 deletions(-)
>>   create mode 100644 fs/smb/common/smb1pdu.h
>>
>> diff --git a/fs/smb/client/cifspdu.h b/fs/smb/client/cifspdu.h
>> index 758ea29769da..bf6329cb4fd4 100644
>> --- a/fs/smb/client/cifspdu.h
>> +++ b/fs/smb/client/cifspdu.h
>> @@ -12,7 +12,7 @@
>>   #include <net/sock.h>
>>   #include <linux/unaligned.h>
>>   #include "../common/smbfsctl.h"
>> -#include "../common/smb2pdu.h"
>> +#include "../common/smb1pdu.h"
>>
>>   #define CIFS_PROT   0
>>   #define POSIX_PROT  (CIFS_PROT+1)
>> diff --git a/fs/smb/common/smb1pdu.h b/fs/smb/common/smb1pdu.h
>> new file mode 100644
>> index 000000000000..11797471b2eb
>> --- /dev/null
>> +++ b/fs/smb/common/smb1pdu.h
>> @@ -0,0 +1,59 @@
>> +/* SPDX-License-Identifier: LGPL-2.1 */
>> +/*
>> + *
>> + *   Copyright (c) International Business Machines  Corp., 2002,2009
>> + *                 2018 Samsung Electronics Co., Ltd.
>> + *   Author(s): Steve French (sfrench@us.ibm.com)
>> + *              Namjae Jeon (linkinjeon@kernel.org)
>> + *
>> + */
>> +
>> +#ifndef _COMMON_SMB1_PDU_H
>> +#define _COMMON_SMB1_PDU_H
>> +
>> +#define SMB1_PROTO_NUMBER              cpu_to_le32(0x424d53ff)
>> +
>> +/*
>> + * See MS-CIFS 2.2.3.1
>> + *     MS-SMB 2.2.3.1
>> + */
>> +struct smb_hdr {
>> +       __be32 smb_buf_length;  /* BB length is only two (rarely three) bytes,
>> +               with one or two byte "type" preceding it that will be
>> +               zero - we could mask the type byte off */
>> +       __u8 Protocol[4];
>> +       __u8 Command;
>> +       union {
>> +               struct {
>> +                       __u8 ErrorClass;
>> +                       __u8 Reserved;
>> +                       __le16 Error;
>> +               } __packed DosError;
>> +               __le32 CifsError;
>> +       } __packed Status;
>> +       __u8 Flags;
>> +       __le16 Flags2;          /* note: le */
>> +       __le16 PidHigh;
>> +       union {
>> +               struct {
>> +                       __le32 SequenceNumber;  /* le */
>> +                       __u32 Reserved; /* zero */
>> +               } __packed Sequence;
>> +               __u8 SecuritySignature[8];      /* le */
>> +       } __packed Signature;
>> +       __u8 pad[2];
>> +       __u16 Tid;
>> +       __le16 Pid;
>> +       __u16 Uid;
>> +       __le16 Mid;
>> +       __u8 WordCount;
>> +} __packed;
>> +
>> +/* See MS-CIFS 2.2.4.52.1 */
>> +typedef struct smb_negotiate_req {
>> +       struct smb_hdr hdr;     /* wct = 0 */
>> +       __le16 ByteCount;
>> +       unsigned char DialectsArray[];
>> +} __packed SMB_NEGOTIATE_REQ;
>> +
>> +#endif /* _COMMON_SMB1_PDU_H */
>> diff --git a/fs/smb/common/smb2pdu.h b/fs/smb/common/smb2pdu.h
>> index 2d68bd24f3bd..098f147680c5 100644
>> --- a/fs/smb/common/smb2pdu.h
>> +++ b/fs/smb/common/smb2pdu.h
>> @@ -1642,42 +1642,6 @@ struct smb2_lease_ack {
>>          __le64 LeaseDuration;
>>   } __packed;
>>
>> -/*
>> - * See MS-CIFS 2.2.3.1
>> - *     MS-SMB 2.2.3.1
>> - */
>> -struct smb_hdr {
>> -       __be32 smb_buf_length;  /* BB length is only two (rarely three) bytes,
>> -               with one or two byte "type" preceding it that will be
>> -               zero - we could mask the type byte off */
>> -       __u8 Protocol[4];
>> -       __u8 Command;
>> -       union {
>> -               struct {
>> -                       __u8 ErrorClass;
>> -                       __u8 Reserved;
>> -                       __le16 Error;
>> -               } __packed DosError;
>> -               __le32 CifsError;
>> -       } __packed Status;
>> -       __u8 Flags;
>> -       __le16 Flags2;          /* note: le */
>> -       __le16 PidHigh;
>> -       union {
>> -               struct {
>> -                       __le32 SequenceNumber;  /* le */
>> -                       __u32 Reserved; /* zero */
>> -               } __packed Sequence;
>> -               __u8 SecuritySignature[8];      /* le */
>> -       } __packed Signature;
>> -       __u8 pad[2];
>> -       __u16 Tid;
>> -       __le16 Pid;
>> -       __u16 Uid;
>> -       __le16 Mid;
>> -       __u8 WordCount;
>> -} __packed;
>> -
>>   #define OP_BREAK_STRUCT_SIZE_20                24
>>   #define OP_BREAK_STRUCT_SIZE_21                36
>>
>> @@ -1782,14 +1746,6 @@ struct smb_hdr {
>>   #define SET_MINIMUM_RIGHTS (FILE_READ_EA | FILE_READ_ATTRIBUTES \
>>                                  | READ_CONTROL | SYNCHRONIZE)
>>
>> -/* See MS-CIFS 2.2.4.52.1 */
>> -typedef struct smb_negotiate_req {
>> -       struct smb_hdr hdr;     /* wct = 0 */
>> -       __le16 ByteCount;
>> -       unsigned char DialectsArray[];
>> -} __packed SMB_NEGOTIATE_REQ;
>> -
>> -
>>   /*
>>    * [POSIX-SMB2] SMB3 POSIX Extensions
>>    * Link: https://gitlab.com/samba-team/smb3-posix-spec/-/blob/master/smb3_posix_extensions.md
>> diff --git a/fs/smb/common/smbglob.h b/fs/smb/common/smbglob.h
>> index 7853b5771128..353dc4f0971a 100644
>> --- a/fs/smb/common/smbglob.h
>> +++ b/fs/smb/common/smbglob.h
>> @@ -11,8 +11,6 @@
>>   #ifndef _COMMON_SMB_GLOB_H
>>   #define _COMMON_SMB_GLOB_H
>>
>> -#define SMB1_PROTO_NUMBER              cpu_to_le32(0x424d53ff)
>> -
>>   struct smb_version_values {
>>          char            *version_string;
>>          __u16           protocol_id;
>> diff --git a/fs/smb/server/smb_common.h b/fs/smb/server/smb_common.h
>> index b8da31cdbfd1..f47ce4a6719c 100644
>> --- a/fs/smb/server/smb_common.h
>> +++ b/fs/smb/server/smb_common.h
>> @@ -11,6 +11,7 @@
>>   #include "glob.h"
>>   #include "nterr.h"
>>   #include "../common/smbglob.h"
>> +#include "../common/smb1pdu.h"
>>   #include "../common/smb2pdu.h"
>>   #include "../common/fscc.h"
>>   #include "smb2pdu.h"
>> --
>> 2.43.0
>>
> 
> 


  reply	other threads:[~2025-12-09  2:57 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-09  1:10 [PATCH 00/13 smb: move duplicate definitions into common header file, part 2 chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 01/13] smb: add documentation references for smb2 change notify definitions chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 02/13] smb: move notify completion filter flags into common/smb2pdu.h chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 03/13] smb: move SMB2 Notify Action Flags " chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 04/13] smb: move file_notify_information to common/fscc.h chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 05/13] smb: move File Attributes definitions into common/fscc.h chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 06/13] smb: update struct duplicate_extents_to_file_ex chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 07/13] smb/server: add comment to FileSystemName of FileFsAttributeInformation chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 08/13] smb: move smb3_fs_vol_info into common/fscc.h chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 09/13] smb: move some definitions from common/smb2pdu.h " chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 10/13] smb/client: remove DeviceType Flags and Device Characteristics definitions chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 11/13] smb: introduce struct create_posix_ctxt_rsp chenxiaosong.chenxiaosong
2025-12-09 23:45   ` Namjae Jeon
2025-12-10  0:12     ` ChenXiaoSong
2025-12-10  0:31       ` Namjae Jeon
2025-12-10  0:37         ` ChenXiaoSong
2025-12-09  1:10 ` [PATCH 12/13] smb: introduce struct file_posix_info chenxiaosong.chenxiaosong
2025-12-09  1:10 ` [PATCH 13/13] smb: move some SMB1 definitions into common/smb1pdu.h chenxiaosong.chenxiaosong
2025-12-09  2:52   ` Steve French
2025-12-09  2:56     ` ChenXiaoSong [this message]
2025-12-10  4:34 ` [PATCH 00/13 smb: move duplicate definitions into common header file, part 2 ChenXiaoSong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ff6fa14-15d2-487d-8d6f-373bd64fcb46@linux.dev \
    --to=chenxiaosong.chenxiaosong@linux.dev \
    --cc=chenxiaosong@kylinos.cn \
    --cc=huhai@kylinos.cn \
    --cc=linkinjeon@kernel.org \
    --cc=linkinjeon@samba.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liuyun01@kylinos.cn \
    --cc=liuzhengyuan@kylinos.cn \
    --cc=sfrench@samba.org \
    --cc=smfrench@gmail.com \
    --cc=zhangguodong@kylinos.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).