All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.