{"id":2196718,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2196718/?format=json","project":{"id":12,"url":"http://patchwork.ozlabs.org/api/1.0/projects/12/?format=json","name":"Linux CIFS Client","link_name":"linux-cifs-client","list_id":"linux-cifs.vger.kernel.org","list_email":"linux-cifs@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260216082018.156695-2-zhang.guodong@linux.dev>","date":"2026-02-16T08:20:14","name":"[v3,1/5] smb: move smb3_fs_vol_info into common/fscc.h","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"1e3a3059d04562fbdacb542a715a16d7f8a06203","submitter":{"id":92649,"url":"http://patchwork.ozlabs.org/api/1.0/people/92649/?format=json","name":"ZhangGuoDong","email":"zhang.guodong@linux.dev"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-cifs-client/patch/20260216082018.156695-2-zhang.guodong@linux.dev/mbox/","series":[{"id":492258,"url":"http://patchwork.ozlabs.org/api/1.0/series/492258/?format=json","date":"2026-02-16T08:20:13","name":"smb: move duplicate definitions into common header file, part 2","version":3,"mbox":"http://patchwork.ozlabs.org/series/492258/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2196718/checks/","tags":{},"headers":{"Return-Path":"\n <linux-cifs+bounces-9391-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-cifs@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linux.dev header.i=@linux.dev header.a=rsa-sha256\n header.s=key1 header.b=RTKIJDON;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-cifs+bounces-9391-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev\n header.b=\"RTKIJDON\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=95.215.58.182","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.dev","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.dev"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fDwk03yYnz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 19:22:16 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 9903630097C4\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 08:21:47 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 166DA2475CB;\n\tMon, 16 Feb 2026 08:21:47 +0000 (UTC)","from out-182.mta1.migadu.com (out-182.mta1.migadu.com\n [95.215.58.182])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 50AA92475E3\n\tfor <linux-cifs@vger.kernel.org>; Mon, 16 Feb 2026 08:21:45 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771230107; cv=none;\n b=s/0FkHsw7vklep+YnSEwsmnPkcYAawbR04V6vh4y2hY85bD+YexdM0JUtQoBw8MH740dzbJw7qb33oVMeZiAyigF/SaMRmxxqNydpCg2qMf1Fmy6JA63/eGgScLnW7vCntOPYbZyfplQQpxeADOdyuSLawWXO7mJ6w7rj4j5vCU=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771230107; c=relaxed/simple;\n\tbh=xcnrTsEvQQsMwy7hD8XM2TFkMyIaYqb4InSp6f4BivE=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=KNcz7e4+a31keD1fxZ9kJH28FJlWOCM7fNTpLoJ3e6LeQsWNEXECmMaMqfcOEWnVklQyGtqp6OcwCQzxtaoMwicoypz9eUmkjWheVM6BI2CovzqdnoX6C9xL4kbMYwFI9JH4efIXIz9yxrp591JwBSqN5JUFM4fx1f2DmYHuyaQ=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.dev;\n spf=pass smtp.mailfrom=linux.dev;\n dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev\n header.b=RTKIJDON; arc=none smtp.client-ip=95.215.58.182","X-Report-Abuse":"Please report any abuse attempt to abuse@migadu.com and\n include these headers.","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1;\n\tt=1771230103;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:\n\t content-transfer-encoding:content-transfer-encoding:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=VyyGKWLBr+53PHddrYJXBTJYh5DtS8RIHbKNPXNkl1Q=;\n\tb=RTKIJDONou8BmbjEAS2ats7STiT+Lvd8SBLzF9ygBszZm4DHQtq00Zx+DXWtv0lbeDx7KE\n\t59EsdpHKwu5ntBhwe5EWaYGK/xCGxZLi82U9f/lmhDS+ssU1YvfJuWo3okj2kTqjhCKLql\n\tMs2kUse4y4UWwiWrlRbV8aTBiCt91EE=","From":"zhang.guodong@linux.dev","To":"smfrench@gmail.com,\n\tlinkinjeon@kernel.org,\n\tpc@manguebit.org,\n\tronniesahlberg@gmail.com,\n\tsprasad@microsoft.com,\n\ttom@talpey.com,\n\tbharathsm@microsoft.com,\n\tsenozhatsky@chromium.org,\n\tdhowells@redhat.com,\n\tchenxiaosong@kylinos.cn,\n\tchenxiaosong.chenxiaosong@linux.dev","Cc":"linux-cifs@vger.kernel.org,\n\tZhangGuoDong <zhangguodong@kylinos.cn>,\n\tSteve French <stfrench@microsoft.com>","Subject":"[PATCH v3 1/5] smb: move smb3_fs_vol_info into common/fscc.h","Date":"Mon, 16 Feb 2026 08:20:14 +0000","Message-ID":"<20260216082018.156695-2-zhang.guodong@linux.dev>","In-Reply-To":"<20260216082018.156695-1-zhang.guodong@linux.dev>","References":"<20260216082018.156695-1-zhang.guodong@linux.dev>","Precedence":"bulk","X-Mailing-List":"linux-cifs@vger.kernel.org","List-Id":"<linux-cifs.vger.kernel.org>","List-Subscribe":"<mailto:linux-cifs+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-cifs+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Migadu-Flow":"FLOW_OUT"},"content":"From: ZhangGuoDong <zhangguodong@kylinos.cn>\n\nThe structure definition on the server side is specified in MS-CIFS\n2.2.8.2.3, but we should instead refer to MS-FSCC 2.5.9, just as the\nclient side does.\n\nModify the following places:\n\n  - filesystem_vol_info -> smb3_fs_vol_info\n  - SerialNumber -> VolumeSerialNumber\n  - VolumeLabelSize -> VolumeLabelLength\n\nThen move it into common header file.\n\nSigned-off-by: ZhangGuoDong <zhangguodong@kylinos.cn>\nReviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>\nReviewed-by: Steve French <stfrench@microsoft.com>\n---\n fs/smb/common/fscc.h       | 11 +++++++++++\n fs/smb/common/smb2pdu.h    | 11 -----------\n fs/smb/server/smb2pdu.c    | 10 +++++-----\n fs/smb/server/smb_common.h |  8 --------\n 4 files changed, 16 insertions(+), 24 deletions(-)","diff":"diff --git a/fs/smb/common/fscc.h b/fs/smb/common/fscc.h\nindex 0123f34db1e8..d2e00eba1a98 100644\n--- a/fs/smb/common/fscc.h\n+++ b/fs/smb/common/fscc.h\n@@ -138,6 +138,17 @@ typedef struct {\n \t__le32 BytesPerSector;\n } __packed FILE_SYSTEM_SIZE_INFO;\t/* size info, level 0x103 */\n \n+/* volume info struct - see MS-FSCC 2.5.9 */\n+#define MAX_VOL_LABEL_LEN\t32\n+struct smb3_fs_vol_info {\n+\t__le64\tVolumeCreationTime;\n+\t__le32\tVolumeSerialNumber;\n+\t__le32\tVolumeLabelLength; /* includes trailing null */\n+\t__u8\tSupportsObjects; /* True if eg like NTFS, supports objects */\n+\t__u8\tReserved;\n+\t__u8\tVolumeLabel[]; /* variable len */\n+} __packed;\n+\n /* See MS-FSCC 2.5.10 */\n typedef struct {\n \t__le32 DeviceType;\ndiff --git a/fs/smb/common/smb2pdu.h b/fs/smb/common/smb2pdu.h\nindex e482c86ceb00..69dd7c792804 100644\n--- a/fs/smb/common/smb2pdu.h\n+++ b/fs/smb/common/smb2pdu.h\n@@ -1942,17 +1942,6 @@ struct smb2_fs_control_info {\n \t__le32 Padding;\n } __packed;\n \n-/* volume info struct - see MS-FSCC 2.5.9 */\n-#define MAX_VOL_LABEL_LEN\t32\n-struct smb3_fs_vol_info {\n-\t__le64\tVolumeCreationTime;\n-\t__u32\tVolumeSerialNumber;\n-\t__le32\tVolumeLabelLength; /* includes trailing null */\n-\t__u8\tSupportsObjects; /* True if eg like NTFS, supports objects */\n-\t__u8\tReserved;\n-\t__u8\tVolumeLabel[]; /* variable len */\n-} __packed;\n-\n /* See MS-SMB2 2.2.23 through 2.2.25 */\n struct smb2_oplock_break {\n \tstruct smb2_hdr hdr;\ndiff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c\nindex cbb31efdbaa2..966a499d2eb8 100644\n--- a/fs/smb/server/smb2pdu.c\n+++ b/fs/smb/server/smb2pdu.c\n@@ -5531,11 +5531,11 @@ static int smb2_get_info_filesystem(struct ksmbd_work *work,\n \t}\n \tcase FS_VOLUME_INFORMATION:\n \t{\n-\t\tstruct filesystem_vol_info *info;\n+\t\tstruct smb3_fs_vol_info *info;\n \t\tsize_t sz;\n \t\tunsigned int serial_crc = 0;\n \n-\t\tinfo = (struct filesystem_vol_info *)(rsp->Buffer);\n+\t\tinfo = (struct smb3_fs_vol_info *)(rsp->Buffer);\n \t\tinfo->VolumeCreationTime = 0;\n \t\tserial_crc = crc32_le(serial_crc, share->name,\n \t\t\t\t      strlen(share->name));\n@@ -5544,14 +5544,14 @@ static int smb2_get_info_filesystem(struct ksmbd_work *work,\n \t\tserial_crc = crc32_le(serial_crc, ksmbd_netbios_name(),\n \t\t\t\t      strlen(ksmbd_netbios_name()));\n \t\t/* Taking dummy value of serial number*/\n-\t\tinfo->SerialNumber = cpu_to_le32(serial_crc);\n+\t\tinfo->VolumeSerialNumber = cpu_to_le32(serial_crc);\n \t\tlen = smbConvertToUTF16((__le16 *)info->VolumeLabel,\n \t\t\t\t\tshare->name, PATH_MAX,\n \t\t\t\t\tconn->local_nls, 0);\n \t\tlen = len * 2;\n-\t\tinfo->VolumeLabelSize = cpu_to_le32(len);\n+\t\tinfo->VolumeLabelLength = cpu_to_le32(len);\n \t\tinfo->Reserved = 0;\n-\t\tsz = sizeof(struct filesystem_vol_info) + len;\n+\t\tsz = sizeof(struct smb3_fs_vol_info) + len;\n \t\trsp->OutputBufferLength = cpu_to_le32(sz);\n \t\tbreak;\n \t}\ndiff --git a/fs/smb/server/smb_common.h b/fs/smb/server/smb_common.h\nindex ca7e3610d074..b090b56743c4 100644\n--- a/fs/smb/server/smb_common.h\n+++ b/fs/smb/server/smb_common.h\n@@ -90,14 +90,6 @@ struct smb_negotiate_rsp {\n \t__le16 ByteCount;\n } __packed;\n \n-struct filesystem_vol_info {\n-\t__le64 VolumeCreationTime;\n-\t__le32 SerialNumber;\n-\t__le32 VolumeLabelSize;\n-\t__le16 Reserved;\n-\t__le16 VolumeLabel[];\n-} __packed;\n-\n #define EXTENDED_INFO_MAGIC 0x43667364\t/* Cfsd */\n #define STRING_LENGTH 28\n \n","prefixes":["v3","1/5"]}