[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <df5f5874-e073-4096-946d-1fa43717015c@linux.dev>
Date: Wed, 29 Oct 2025 12:17:33 +0800
From: ChenXiaoSong <chenxiaosong.chenxiaosong@...ux.dev>
To: Namjae Jeon <linkinjeon@...nel.org>
Cc: sfrench@...ba.org, smfrench@...il.com, linkinjeon@...ba.org,
christophe.jaillet@...adoo.fr, linux-cifs@...r.kernel.org,
linux-kernel@...r.kernel.org, ChenXiaoSong <chenxiaosong@...inos.cn>
Subject: Re: [PATCH v4 19/24] smb/server: remove create_durable_reconn_req
They are:
- SMB2_CREATE_DURABLE_HANDLE_REQUEST in MS-SMB2 2.2.13.2.3
- SMB2_CREATE_DURABLE_HANDLE_RECONNECT in MS-SMB2 2.2.13.2.4
- SMB2_FILEID in MS-SMB2 2.2.14.1
We can uniformly name them create_durable:
struct create_durable {
...
union {
__u8 Reserved[16]; // DurableRequest of
SMB2_CREATE_DURABLE_HANDLE_REQUEST, A 16-byte field that MUST NOT be
used and MUST be reserved. This value MUST be set to 0 by the client and
ignored by the server.
struct {
__u64 PersistentFileId; // See 2.2.14.1 SMB2_FILEID
__u64 VolatileFileId; // See 2.2.14.1 SMB2_FILEID
} Fid; // Data of SMB2_CREATE_DURABLE_HANDLE_RECONNECT,
An SMB2_FILEID structure, as specified in section 2.2.14.1, for the open
that is being reestablished.
} Data;
} __packed;
Thanks,
ChenXiaoSong.
On 10/29/25 11:54 AM, Namjae Jeon wrote:
> On Mon, Oct 27, 2025 at 4:23 PM <chenxiaosong.chenxiaosong@...ux.dev> wrote:
>>
>> From: ChenXiaoSong <chenxiaosong@...inos.cn>
>>
>> The fields in struct create_durable_reconn_req and struct create_durable
>> are exactly the same.
>>
>> Signed-off-by: ChenXiaoSong <chenxiaosong@...inos.cn>
>> ---
>> fs/smb/server/smb2pdu.c | 6 +++---
>> fs/smb/server/smb2pdu.h | 12 ------------
>> 2 files changed, 3 insertions(+), 15 deletions(-)
>>
>> diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c
>> index 6b3503c7bfaa..3e8344fa163b 100644
>> --- a/fs/smb/server/smb2pdu.c
>> +++ b/fs/smb/server/smb2pdu.c
>> @@ -2766,7 +2766,7 @@ static int parse_durable_handle_context(struct ksmbd_work *work,
>> }
>> case DURABLE_RECONN:
>> {
>> - struct create_durable_reconn_req *recon;
>> + struct create_durable *recon;
>>
>> if (dh_info->type == DURABLE_RECONN_V2 ||
>> dh_info->type == DURABLE_REQ_V2) {
>> @@ -2776,12 +2776,12 @@ static int parse_durable_handle_context(struct ksmbd_work *work,
>>
>> if (le16_to_cpu(context->DataOffset) +
>> le32_to_cpu(context->DataLength) <
>> - sizeof(struct create_durable_reconn_req)) {
>> + sizeof(struct create_durable)) {
> Please check the specification, Which structure name is correct?
> thanks.
Powered by blists - more mailing lists