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
>>
>
>
next prev parent 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).