[<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
 
