[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <bb4597b3-65cb-4170-8f15-796ee78b1d5b@linux.dev>
Date: Sat, 15 Nov 2025 16:06:40 +0800
From: ChenXiaoSong <chenxiaosong.chenxiaosong@...ux.dev>
To: Namjae Jeon <linkinjeon@...nel.org>, chenxiaosong.chenxiaosong@...ux.dev
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@...nxiaosong.com
Subject: Re: [PATCH v7 2/2] smb: move FILE_SYSTEM_ATTRIBUTE_INFO to
common/fscc.h
It seems we need to add 52 to `max_len` in the `SMB2_QFS_attr()`
function, similar to struct smb3_fs_vol_info.
Or we can temporarily use the v5 version for now? v5:
https://lore.kernel.org/all/20251102073059.3681026-13-chenxiaosong.chenxiaosong@linux.dev/
Thanks,
ChenXiaoSong.
On 11/15/25 15:41, Namjae Jeon wrote:
> On Thu, Nov 13, 2025 at 10:34 PM <chenxiaosong.chenxiaosong@...ux.dev> wrote:
>>
>> From: ChenXiaoSong <chenxiaosong@...inos.cn>
>>
>> Modify the following places:
>>
>> - struct filesystem_attribute_info -> FILE_SYSTEM_ATTRIBUTE_INFO
>> - client: remove MIN_FS_ATTR_INFO_SIZE definition,
>> MIN_FS_ATTR_INFO_SIZE -> sizeof(FILE_SYSTEM_ATTRIBUTE_INFO)
>>
>> Then move FILE_SYSTEM_ATTRIBUTE_INFO to common header file.
>>
>> Suggested-by: Namjae Jeon <linkinjeon@...nel.org>
>> Signed-off-by: ChenXiaoSong <chenxiaosong@...inos.cn>
>> ---
>> fs/smb/client/cifspdu.h | 10 ----------
>> fs/smb/client/smb2pdu.c | 2 +-
>> fs/smb/common/fscc.h | 8 ++++++++
>> fs/smb/server/smb2pdu.c | 6 +++---
>> fs/smb/server/smb_common.h | 7 -------
>> 5 files changed, 12 insertions(+), 21 deletions(-)
>>
>> diff --git a/fs/smb/client/cifspdu.h b/fs/smb/client/cifspdu.h
>> index d84e10b1477f..49f35cb3cf2e 100644
>> --- a/fs/smb/client/cifspdu.h
>> +++ b/fs/smb/client/cifspdu.h
>> @@ -2068,16 +2068,6 @@ typedef struct {
>> #define FILE_PORTABLE_DEVICE 0x00004000
>> #define FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL 0x00020000
>>
>> -/* minimum includes first three fields, and empty FS Name */
>> -#define MIN_FS_ATTR_INFO_SIZE 12
>> -
>> -typedef struct {
>> - __le32 Attributes;
>> - __le32 MaxPathNameComponentLength;
>> - __le32 FileSystemNameLen;
>> - char FileSystemName[52]; /* do not have to save this - get subset? */
>> -} __attribute__((packed)) FILE_SYSTEM_ATTRIBUTE_INFO;
>> -
>> /******************************************************************************/
>> /* QueryFileInfo/QueryPathinfo (also for SetPath/SetFile) data buffer formats */
>> /******************************************************************************/
>> diff --git a/fs/smb/client/smb2pdu.c b/fs/smb/client/smb2pdu.c
>> index 30c391424022..4ccc8d1e130d 100644
>> --- a/fs/smb/client/smb2pdu.c
>> +++ b/fs/smb/client/smb2pdu.c
>> @@ -5982,7 +5982,7 @@ SMB2_QFS_attr(const unsigned int xid, struct cifs_tcon *tcon,
>> min_len = sizeof(FILE_SYSTEM_DEVICE_INFO);
>> } else if (level == FS_ATTRIBUTE_INFORMATION) {
>> max_len = sizeof(FILE_SYSTEM_ATTRIBUTE_INFO);
>> - min_len = MIN_FS_ATTR_INFO_SIZE;
>> + min_len = sizeof(FILE_SYSTEM_ATTRIBUTE_INFO);
> FILE_SYSTEM_ATTRIBUTE_INFO is being used elsewhere on the smb client,
> and there are cases where sizeof(FILE_SYSTEM_ATTRIBUTE_INFO) is being
> used. Will there really be no problems if we change it to flex-array?
Powered by blists - more mailing lists