From nobody Mon Sep 28 09:58:48 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012008.outbound.protection.outlook.com [52.101.66.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3BEFA2472A2; Mon, 24 Aug 2026 00:56:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533012; cv=fail; b=P+EvFRY+7oLAJga+9wPvmdOLaUXR+amB2V36KVmOPONa9EJD94nFn0Cdrh6DbQOpQW/gqIL4AyeYh4SP8QCHfCfQDbkSDYMIms7vvb5Wc23skC5syzlvKZ6fXaSkgikWKiZKd343SObJ96MJ6lrMxe7SMidKqZxv5oSEHUYJSpE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533012; c=relaxed/simple; bh=iIbw+dJKI73WTELEbm5qE3DIHky5/7T8fMnkaT4huz8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=NJkHcisDuTGr17Rt2ZXFrT6P3PIz4RwORG7a7NvqW4bu+YPE8dvIxiYt/UdQRTw4uFgKUvEkc+Y3O2T2pj0x25oI3+myT0SpUPUO+NrKOQm5eBhv6QHjUc3traPfyH+t6Uz6o5q3k+VcDtTJIZjCR07GdomUjRz0JsJd5TkUpR4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech; spf=pass smtp.mailfrom=est.tech; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b=nA/3jneW; arc=fail smtp.client-ip=52.101.66.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=est.tech Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b="nA/3jneW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QZpoSl0M4G6sOYdszD0bxOP9Nu/x15hjenrq6qURF/f4JE2AVHD86Z8rphPigAqIrE/0oeatdRKCmVw3QZFbTiTLNqloG9brM+vNOXLm/+LdBZaqW2X9wRXgxFsCDqxhGI3+VnwEvtNnrn2LrFDNNhcm06zag9CNMlR15mmq7t1oF6q02sS3DMZxG7shyguFxkYU40o82ItfUF2fQlVhoFcQwmYHoOrhAIxiPEV1DVUsvVSsJ2k/Mk4QVx7h0tcXLtCgDD5jVgvDDzkixK7lDedLA8BQWB/Kr3tB1xfclIXHqlg1AyFiC8fd4SazligVjzS0hWDVtlUcKiL16gI4wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iLZVKvCyxss/qo9XBVIZWXFEuXX7L3s+sr0nlM2QJIc=; b=yTjGs/EsWyIXC4dgPZW9jvxKYz8P+arp4hzYssxy3gu7brLmOr2ozpCOldSHB58bri9LF9mtx4foFPRXUSuUKh9xOGHvYd28rP8paYKQB6rgM5K0gE/1w5IBZ5e4JILeT7fm/0fYzWJXeuq7eYNySjMJLO7QCFI7RGWwuFrtCAsOHlTtLEwXQBFqVHo8wLXZ8/tgonkX0XJNbGNwCapOjDjzn6KUKX/k+avnuDJKKLstPRU4Sj/FKwUeMHraMR2MUKPNgHb1gQk9hrVrA9Ybo8lBY9VM7OvezjPQMcUaTLOjX4fKjqdkyV/ESGuZWK1HResfsv/sL7EHfYYE0Sup9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=est.tech; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iLZVKvCyxss/qo9XBVIZWXFEuXX7L3s+sr0nlM2QJIc=; b=nA/3jneWdlZ+lGw78yld95iAijsl5qASaQc08uWxcdyICtGK8Ok6fHNXDOiVBy4fQhoesLbEeUOndRQR/jhHIipk6fQBwNMFVIkzRtAqsAPr2uo93/zQcAxm3Oo4+/DJ+nBcKUlaeaIep62vZNeJn6DHAQRZfciL0U8Rm4p6C84jmlebiiUhiIHyU7ZHVDj9p4B3XbEGD7Qhc97KLksjvxawvY7jcKJlHPIy5qwq8cy/VGYBqStALDfmnUJLR5xhFqcWm1bgSNQIEqzWN0fECZiA/IXL+x7ezhYk4ED4jWARglqoxlUFL4l7vd/BERGRjk726HYI2G9+axuBAYPUNg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=est.tech; Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) by GV4P189MB3726.EURP189.PROD.OUTLOOK.COM (2603:10a6:150:2b6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.5; Mon, 24 Aug 2026 00:56:45 +0000 Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4]) by AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4%6]) with mapi id 15.21.0360.005; Mon, 24 Aug 2026 00:56:45 +0000 From: Yunseong Kim Date: Mon, 24 Aug 2026 02:56:28 +0200 Subject: [PATCH 1/4] ksmbd: advertise SMB2_GLOBAL_CAP_PERSISTENT_HANDLES Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260824-b4-ca-v1-1-79d6ae0ad2c3@est.tech> References: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> In-Reply-To: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> To: Namjae Jeon , Sergey Senozhatsky , Tom Talpey , ChenXiaoSong Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org, Yunseong Kim , ysk@kzalloc.com X-Mailer: b4 0.17-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1787533000; l=1697; i=yunseong.kim@est.tech; s=20260824; h=from:subject:message-id; bh=iIbw+dJKI73WTELEbm5qE3DIHky5/7T8fMnkaT4huz8=; b=PSET1wIzs/QU3LLyVDePbohCZS2Mo5wm/HT11U8SPqjPnHNwz+RVd/r6znaNDI/DyRZDHPlsu /MVWNX9/b5EBBkY4mUXWfg3WdKX2uN4Fy6iIjKQgxVi0P65+zpL5heK X-Developer-Key: i=yunseong.kim@est.tech; a=ed25519; pk=nfdmjNawkxBHo9UNdzLNBEht8sYmXp0MYUsa/hwC7vw= X-ClientProxiedBy: GVX0EPF0005F718.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::39b) To AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P189MB1752:EE_|GV4P189MB3726:EE_ X-MS-Office365-Filtering-Correlation-Id: 0aa5b206-7114-492a-f05d-08df017a91fb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|10070799003|23010399003|10067099003|11063799006|56012099006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 9r8b5HWtJ3XAA8DYzh3LAz68jAcSHfmV7Ezsp25Ur4Q/P7CDlzMhwoF/PY3xdCne7v1zxf6H7sty1CZKkf6Vfy84bZzmml2/xWx+ooqmnhKgORc8IVlTAs/Ovze49UZnerkf7DiPJjNkQKTEw7MZXbUVoYo9sHpej2zPurHt3ID/9uBD+23MqrQT6MioedsOf8Ls+2z+xbF7E1m1AR9+KGou+MI0zBflEg47Fl8G+2Vy10RHoUpEOwBrHgHDdxsI9MC1yWjwuLwfVo96HHZigBFgrOhhoLBgVrDAU79sq1E+E/6Ze0Pes554rOEpSlzcp+tG9El+ZI6ppnyFh7YkvyeoB/Y8dRG1YLAWjb/fMxGvR4L/QH0happB4ojMZ/SnNwek6nIaJnkJkgVktK9H39rCXRBg5QO7L26518/I6SlvaTl0rrrNs1CsHukFnb1tYYeJvY0B+LEU1sPYCiL7WKBk0414CH8KR8r0grYfQBPrIZZQxwOar2OLEjyqqI3Rq4gbpu5D1c1xmEXfpne1bLc2REjUaLtd34J9ccv4t6hvEE9NfJlFBQHrWKun3za3Bb9SdcfoM6KJkVQLOReRW1qk5h8YZ6n3fir3+yBHJn4D9IdgLg/AGh3IhTQxIpx9Lh4OnNt0O1GkMErH9IzCboakiHsy8ypbjI7JM+fTbOA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8P189MB1752.EURP189.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(10070799003)(23010399003)(10067099003)(11063799006)(56012099006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R3MyaVNDNURzbjQxMWVSNWtiMTZwQ2o1dWcxaGVKLzJWaFJHeFM2YUNvTUlK?= =?utf-8?B?czlhSTNYOEY2QzJUanhOMFZtMjFvUTBRMTVqeklpT3R1NXFIT0dWNFY0TkNu?= =?utf-8?B?VVhENERJam82M3lqdDZnZlIrWTd5N0NGamVOKzJmWVBHU3R4YVZXaFcvak13?= =?utf-8?B?dmVqSktCUVFOOURLd2RTYkZyZUVLWmVQSW1zejRDd1RhbzJFeHZVVmJQMkZO?= =?utf-8?B?Q05uOWVGSGswd2pZNWdLS29YWWltazJJaW45a2MxZkxQNlJDcVI1VVlQWkI4?= =?utf-8?B?czNJKzBLeEZldDU2c2t1eVhKZTFHc1hGNkNrNEduZVBOa1JDejJtcmxUV0tW?= =?utf-8?B?Ymw4UlZJTkZYRW1zdmxZeXdrUDFyQmdpUmdSU1pBT1AyaWdqVE9GUE04QWcx?= =?utf-8?B?L1g1UmVFa1pLd0NXYzc4TlhXaUJEUkl2UlRIamxlbVRSNkVJdzRiZzlENG9P?= =?utf-8?B?c2tZU3p0UE9obWhaOG90enU2NWEwV2dCS3YveFVkUzRmUUZIWDFZb2RqUG5n?= =?utf-8?B?b0MvWWNnNUZ3SGpHSm51NVY0SEp1Z3hqRmRwRW5zWXpuY3M3ZTZhWUwzVldn?= =?utf-8?B?akk0Smx0K00vay91amE5Wlhtemc1VGU2UFpOWmFFWWRDei9zejFDNzJ1bWlF?= =?utf-8?B?bk9HTklGMFd2QlRkRDdCRlorNE5jMHFhM01HTWNVZWtJQXQ4K2xmNkRIZ2N3?= =?utf-8?B?VDRXSWQ1SHBmeGgzL2ovWS9QOFhiRDRWb0tqb0hEcFdMdWxON1JQb001TnFi?= =?utf-8?B?Z3JJczY0N1IzWXEwbzBiQ3VHeFh0RGEwRnRLTlRxbzlBWW1aT3lGSGQyenI4?= =?utf-8?B?U0ZSME12K1pVM2ppZnJtSVRhNFBlRjRuR1Qwdm51TlJVZ1lwc0xhWVpzWkNx?= =?utf-8?B?Z2tIbk9PTXpMV3dCelA2a2syMnBpZTdZQU9ERzRTUit0Mld4b1Nzc1Z5SHNP?= =?utf-8?B?REg2U0oyM1FOSjZwUjZGenFNVlUzQnlGYXI0emR5d2p3UnJ6aEtob1ovTnpa?= =?utf-8?B?am1ESEFQT3VwMEx5WEVjZlM3T0hmUmNrYXJSY1JCbjZyaUN5RkYxVzFNR1U4?= =?utf-8?B?SGw0MlBkVllGY2JPZUdHVlh6WGtIbGxJRnQyMjhOWXZheHFVaWRUYkdzK0Ux?= =?utf-8?B?dDVJV0lvQ1cvRE43VUhKMW9LMHoreElOSGcwalBsMktaeGtHaEJ2VmFTeWx6?= =?utf-8?B?elExdDlEY3lCNTk4anhsMHQvVXVLYS84Qlduelp6TWQ0NFZGSThtTHdWWHIy?= =?utf-8?B?TWpvVGJzZlN5UkpDc09nR096MEV5RGExblRQbEJZcHVZSkt3UWo3NllLWHFj?= =?utf-8?B?akdua0VHc0U2NzFva0R0dVo5dmhlSUxjZGdibEtNMm0xNHZtS0VNNm5nUGJU?= =?utf-8?B?T1BROUhBOXEwYm5Xbnp6bmMycUxRQ3BudDQ2bTVwY0hkZzBaa1RPS1dkd1lZ?= =?utf-8?B?YkE3RlB1TzVaS0RzVnNacmpubXExMURPNG9DVHJCV0Q0YTMzcjh1dUNwall5?= =?utf-8?B?d3dDTFkvcEVTRnBwSDdEN3VBdjFrUmRGYkRCWEVIZVpXRVdpYzFlNUZLdXRm?= =?utf-8?B?V1RnL21XUm0wNjBpbTFrTnNiMDJWbW1OWnNVTFV6cFZmVFZYUTVzNFBYcURO?= =?utf-8?B?WWpsc2xQVkxtRzRUbW9HU1lBUkROS2tOSFpuL0RFZlQyclNjb0VJYUtZWVBr?= =?utf-8?B?SHplbHl3cVExdzg5N3NwWDZ1eUkzMzFNSmVUZ1JHUDkxNUk3U3VnalNsUnA2?= =?utf-8?B?cERGbzA3MEJrNmJRUDVVeTRKYlVJSlZUYndhcmRnTTNPUUxIMjFkSTF3akVz?= =?utf-8?B?NEZiY1h2aU85MGZLVDkya1J4a2ZuSlNWM3FueDlpRGt0bHdLUEsycUxFWXYv?= =?utf-8?B?ZlJLanJNY3JMVzk1MjZ5QjcrWnFZL05HR2lyNGZzRFNlSkxZNk53U05HZENn?= =?utf-8?B?Zm5Zdi8xeTVVcXhPWURicjZ4Y1ZOUW9oZ05xZXFZdXllU09HNnhvSUVJMUJE?= =?utf-8?B?S3JGQ0VodklkZmowc2pyTzZOZm1pRS9OeVJnU1dpL2dwVG81SVMyMzM0YnN5?= =?utf-8?B?Tnk3dWpCY1hDWUxHZTBRYVNJc1lJemFnamE2RUpwamhJK2hHNzNFSVE3T2ZD?= =?utf-8?B?bTEwS0ZrK3JyTnI5ay9oc05zOVRsczB0V0IycGgvVDNSRGxmNFRyeTdwN0Zh?= =?utf-8?B?cVYvYVdDdzV0enhDbEQ3QkQ2SEtUTTBZbXFDZUZtUmF3OVR4blhqYXQ3aXJW?= =?utf-8?B?aGgyMyt2emUzQTF3K25RNGVkRk1zekY2ZDkwaHRDc01CWnB3Q0tSUUNYcjVP?= =?utf-8?B?L2N6aU16TXJEaWh5MjFNNkRseVhvOHlZWFUvUVlRYWJNeFZ5Y1p3Wnk1bEFw?= =?utf-8?Q?cng/yod+qsRD07D7CTDomTactLRt/wkjHBTmB+jDYbBtw?= X-MS-Exchange-AntiSpam-MessageData-1: nH/gwWir1cAH8g== X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: 0aa5b206-7114-492a-f05d-08df017a91fb X-MS-Exchange-CrossTenant-AuthSource: AS8P189MB1752.EURP189.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2026 00:56:45.8845 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Chow/r+qiCo9Yk3NHuVebp2BxhGiwDKeF9mb0v/tT/FReWZ0sI0uI9QfmAIXPn1Cxm5xqL97e9vWHCmoG7PdIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4P189MB3726 Advertise SMB2_GLOBAL_CAP_PERSISTENT_HANDLES in the SMB2 negotiate response when durable handles are enabled globally. This tells clients that the server supports persistent handles, which is a prerequisite for Continuously Available (CA) share functionality. The capability is gated by KSMBD_GLOBAL_FLAG_DURABLE_HANDLE (controlled by 'durable handles =3D yes' in ksmbd.conf) so administrators must explicitly enable it. Signed-off-by: Yunseong Kim --- fs/smb/server/smb2ops.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/smb/server/smb2ops.c b/fs/smb/server/smb2ops.c index 4578291fb172..414153fa2a68 100644 --- a/fs/smb/server/smb2ops.c +++ b/fs/smb/server/smb2ops.c @@ -270,10 +270,8 @@ void init_smb3_02_server(struct ksmbd_conn *conn) if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB3_MULTICHANNEL) conn->vals->req_capabilities |=3D SMB2_GLOBAL_CAP_MULTI_CHANNEL; =20 - /* - * Durable handles are in-memory only. Do not advertise persistent - * handles until CA recovery and fencing are implemented. - */ + if (server_conf.flags & KSMBD_GLOBAL_FLAG_DURABLE_HANDLE) + conn->vals->req_capabilities |=3D SMB2_GLOBAL_CAP_PERSISTENT_HANDLES; } =20 /** @@ -296,7 +294,9 @@ int init_smb3_11_server(struct ksmbd_conn *conn) if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB3_MULTICHANNEL) conn->vals->req_capabilities |=3D SMB2_GLOBAL_CAP_MULTI_CHANNEL; =20 - /* See init_smb3_02_server(): persistent handles require CA recovery. */ + if (server_conf.flags & KSMBD_GLOBAL_FLAG_DURABLE_HANDLE) + conn->vals->req_capabilities |=3D SMB2_GLOBAL_CAP_PERSISTENT_HANDLES; + return 0; } =20 --=20 2.47.3 From nobody Mon Sep 28 09:58:48 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012008.outbound.protection.outlook.com [52.101.66.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 10FD4296BC8; Mon, 24 Aug 2026 00:56:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533014; cv=fail; b=JqET+d+Bo2NZ4N4CoiDgt/jGM/gYXbG9cF4GQDPMaty34buFH3NKOI2o/Bi/fbTldbpsgmi2uSZ29j+5h6UDt4kE4q+qQ9hAm0d5g8upQarDLj3tffdIzOcZ2qih9zJgA+PNyWpeErpMy4UmOB71U+q6fuTEXSVUL+dh4R8T4VY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533014; c=relaxed/simple; bh=1WMvV53ENad8TPA2FUOgU5vZ1JKrMPw3EbjaacUMLo8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=h0N657OUmfjJXyNAvxa22NXmCGB100X/n23clzuqcL/E9yurpHAxLf7QB+G4BwKGciu9TMjr0MROvNkmiZPuUk8mnoHra23HqwzpiZtyjT5lLCvpg21rqWa282GV4wGD10hBtMPrnt7s9vWrvV8se4nhLWoOOXOzNQGpSIwrmLU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech; spf=pass smtp.mailfrom=est.tech; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b=ru6mNm5A; arc=fail smtp.client-ip=52.101.66.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=est.tech Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b="ru6mNm5A" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t22oW/7UM8SLdrQcesMe01rhLjaCj7RBhadF0Y8Ba+IOZGGjqKyRmrpM63mf0kfGq9hCGUaqm+UhPJEBFXUzyKR7Ccgn+QrBYev9bVVC+WYo1jaRwSiNB/hrmhowBJTUfVdodCRxwe3b4EcrD1ScNIRVVgdxXV6JVKQJe0CnzIimtsnkyPCU82nZCxbwEYLaJXksSZ7Q/x5oR2bhXkRR8Ms91oKTATayJLCZIGPRfQJF5yegO7YN6dexoMUKAQCqHpvQI5BtC47syGGLah5GmQvhb9X67e3CTEz03ggOHZRGobFntdKnuFUXawMiaMj1VWnv8ioEaFZdS6lT/80asg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IVb7ftB63+s7x4ZzyNcxhXVU1YyZbnT3ksTPIX7wsNM=; b=K0HWs1Ioreq2QMsstEbqJQ5GAeP2s0tk30Yi6j9VkllKSOA4s2Nyg1wWEJmfCHOLzBmZI8i8sJ3+AJ3JzL3DexcOrtKnuzwcx8GBIWumaBSIUu3hcCTzyGecO8aPAXQgZsZp1mmbBhqOWvmJ2PmXYt0aZpS1FgIM5G1RBuptI/eSvcWR3ackyrK0qxyl9qsTF2S55YKBLjsZrRrqRfKB2K1E3L59emjSVnXnv/6bN9aMMcHCCtBfkbAwSiC+/KeDBCEJjSBHWAQUWYL5jUTl/8nco9owy/KiQbw9AoyX3/q1anxQwkdCeMzXSNoMnuZ4sXzn15adUXSz+Y4W6dFRBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=est.tech; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IVb7ftB63+s7x4ZzyNcxhXVU1YyZbnT3ksTPIX7wsNM=; b=ru6mNm5A65AmZf3e47fRtdcB29Vr8ndkGvsrKWMjrlpbFodFG9Gn+fGFj0IpkIJgtm1XPOAdKzUeHR2N7G6mL20PBW3F4ex4OmSRGsOG4K5GbnS3vuq/TrTpzkfL+XI8F/Rb7ohHMX87plTd34fb6ROOgCV/Je+G53v5kbZzzPTxMqtqaLOz4BnXnwy1wdRX4ajw9wtaN3Hi9o3/iSSCWstjMLl9zniKVP5H8kyN407DaAlOw8KvMUiCXg6ESK/JhjagaHKAZSryDCm/Y/x1dgzRjmdRwoW5zKZse2amhjyYygPFPiUL+3Cr3e9j/LyHWHdUMI5tkuOcgw6H7TT5FQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=est.tech; Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) by GV4P189MB3726.EURP189.PROD.OUTLOOK.COM (2603:10a6:150:2b6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.5; Mon, 24 Aug 2026 00:56:48 +0000 Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4]) by AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4%6]) with mapi id 15.21.0360.005; Mon, 24 Aug 2026 00:56:48 +0000 From: Yunseong Kim Date: Mon, 24 Aug 2026 02:56:29 +0200 Subject: [PATCH 2/4] ksmbd: set SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY in tree connect Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260824-b4-ca-v1-2-79d6ae0ad2c3@est.tech> References: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> In-Reply-To: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> To: Namjae Jeon , Sergey Senozhatsky , Tom Talpey , ChenXiaoSong Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org, Yunseong Kim , ysk@kzalloc.com X-Mailer: b4 0.17-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1787533000; l=1640; i=yunseong.kim@est.tech; s=20260824; h=from:subject:message-id; bh=1WMvV53ENad8TPA2FUOgU5vZ1JKrMPw3EbjaacUMLo8=; b=ehnf2CFpCvY0OR9OdzBVsVPSCxXk7nIqB82J2UyNV2Bgf0zkQkZrjAfLtBcfpLPagzXNNt7/P QxxMD376h5RD+rtSttrrVg8T21vczk8xXpmQ32L68ML7JGDBf5NSqRp X-Developer-Key: i=yunseong.kim@est.tech; a=ed25519; pk=nfdmjNawkxBHo9UNdzLNBEht8sYmXp0MYUsa/hwC7vw= X-ClientProxiedBy: GVX0EPF0005F6CF.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:401::64c) To AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P189MB1752:EE_|GV4P189MB3726:EE_ X-MS-Office365-Filtering-Correlation-Id: e31f6b6a-204b-49f2-6400-08df017a9359 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|10070799003|23010399003|10067099003|11063799006|56012099006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: qn8Z+yH34usyAlRukhP4HR0nBI4/4NfiB1BcabuTsEqVavIF7Ae7DMSUOvw0wdHvPdfE5VbzhEHOkeuFPZsU4qP6gWhP8UQoK76BCcd7VPTjFXfl9tjQYhYKzllpAY1gBSK4G0WeN8GGd8aMoYWuc/SPCMkjVLtaa9/IX46HkgQ/DF9D9UwcyR1o2tKO3yfjTygGmarSlpnye5n5b6yQD6F4jv5w6s9icOkDdQ7fyhOa2FSGz2kucHw0OWjNXt7fe0SmOYD1wEwMakrXBagVMGYPqxEUv1KrtrbU15zj6sbIxK3ChO0578M7Qb3+H+qkvza2jk91UgTjnPP2oPp1vQXRXmt8uXdsevZ+x3u7g1aWFXSGPymPnCSIZad/f4+/lxwcwoF36bkYp4cm29N9Pv2S6guPFZzIh+9g2ijkmtgWj0w9WEAJqU2x7MzxeQDuMmwDbfwhdzeQSsqVs2HdpbR5fflPyFEv7EFNE1G5CLO9sNHxK/Pn5AIiHdcaaOpqE5IWVzOxRnR8dIB4OmlOyVBuQjIgReLF6b9EmOIQC9/iCRrH+1TsIRnPO48QMHE4FeITgvDWuIKj/uxzYRGufm3e+pMJZ1ElWzK201Xm2bHdtIkq1AQo/JeXDV2IYZDcWVZANavnVirz//INk2ydfcxVrY750+zjKBw7Dc0BTUU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8P189MB1752.EURP189.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(10070799003)(23010399003)(10067099003)(11063799006)(56012099006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MkpiNVZEN2REdVhsWUc2c2U2YVNoaUNJMHJwaHVpSXZBS0xyUVpvbFAzNFZ0?= =?utf-8?B?WUQ1dDhkVTBUVXdadm02TFlsUzJCZ2U2ZlMycHppN2owaHNDSmRjT1cwMWVD?= =?utf-8?B?YUdyV0hpTW5nQUozbDBIZWRoQTU4OG55OVBLMnN1bytmakU4MmJhWHdvbUZK?= =?utf-8?B?aW1TQUNVdXphQTNIL21EWS8xSTZHT25uQ0MrdEZyLzVUN1crcmxBOGRkWkdy?= =?utf-8?B?VzRuTHZaeU9uNFRpa3ZtbHFuRW16OVBHc1dQZWxtUjlrb20vcFB2YzYrcys2?= =?utf-8?B?R241eWdUeFc4bGxqSkdNdytYbDhNZUxjbksvTmoyMzlKZEZURWxmMXRjeVZv?= =?utf-8?B?SHVoN0VZWFdoZldXWDRQcThnc3pkNzV2MndhWm90MnhzUS9DSDUzWFlMSlZV?= =?utf-8?B?emlxUHhSZmZzeVVHRHlsckxuNFdzaStrb3o1UGRScmVLdHJnL1N5Nlg3MWFu?= =?utf-8?B?YklYMGZ2NmhaOFVYVzJzSk1NMS84SEJvQkJKVkJuNjN3NW1ya1lGbTQzQXEx?= =?utf-8?B?aWNlN3BOcDQzT09rdWcvNE5rQUsxaFNyOVBqQmVBY3JQWHZEUTRTRVI4Uzky?= =?utf-8?B?VGZ6YmQ1NXpkWTMzRkdudlc2Qjd6dDZvRTBCWFNCWUJZa2UrNmVmd2I2Qkk1?= =?utf-8?B?Ymg0VzF6Q0VHUzUvS2cvclUvQ2hIQ1VMZklidXJDem1aSy9MZ3VmRlpmcWVI?= =?utf-8?B?OWlFRUo1dmVGRUdsdlpUUDkvTDc0T20xMCtJdjVhcm12MmJzbFNFeDdYSzhG?= =?utf-8?B?TzJZRUxsSGREN0FXWFFQR2VYOEpYRksvZ1R4L2tpeThiR0JZRDV3cmNrcEY4?= =?utf-8?B?eDY0c0FQSkVQdEJwVUxYZGVtd0pnVXFETTRBUzhlKy8vQU03TFhEaGlDYyt1?= =?utf-8?B?czFKeU1udWRvWk1wUmhmVVh0ZU1ZdEY3WldsbzFmc2RwMXl3THdrdFZlK3Ur?= =?utf-8?B?SnJYeWNIb0V3UmFBL2p6S2draHFEVksrU1B1VjRjdndFYzlwdFM1VDdRVXU1?= =?utf-8?B?Nk04OVB4eWVEeHlrb1VxNHhLVE92M0VPREJLVlY2b1kvVGc3QVQ4K0VFaUd6?= =?utf-8?B?dDBDeFYwZ3dBVHd1djVxUXpmR1hoWFROUUJOSEhncXpnYnVGZkQvOHk5UURv?= =?utf-8?B?bEgxU1d1NVRBVmJDbVA1UUV2ZmI0VGlwVWpJc285R2srNk51VXR3U0pwNmRn?= =?utf-8?B?TTFQS3VYclhQMnd3VnBTM2JRVXJjdmJsdXR2bHNWaXFLUEY1K3lTWWhxcGw5?= =?utf-8?B?SHF4TDh1M3kyK3pzdHBBQlNoVG13WEhya1I4Y3ZMRkdmbDZEc2JWeERBY0I4?= =?utf-8?B?bEE3cjFSeUFzeGxlZHFRKzZGUXFUbGRtNWtrZW04VzFVNVBnTjc5NFVrTjJU?= =?utf-8?B?aWRjMDRNU1I2MVF5c0ZHRVdjRWFXajhMdVVudUt4OUR2T0x4YUJUY3BTT1hh?= =?utf-8?B?a2NhOTFTV0RNWk5vZ3VBMEFnTDIwbkptVEIxYnBmRzV4VW1wN25DWnBiaVZk?= =?utf-8?B?SHRKZ0x4L25XS0t2V3BYeVVONlMwMVpQN1N6bWFoN05waTFwckJKYitLazdB?= =?utf-8?B?bnN3cms4eGh3ZVR2NUZHZ3R6UkxHWUppdnNXT21sbGJPWFk0OXdrb2dZb0dV?= =?utf-8?B?QWVmVjVVNXZXczg4Yi9OVWdPSkhrTXMwVmFaVDNuZ21QSFpoZDhmQ1JMNmNl?= =?utf-8?B?a3JDckEyUTZSbTVBRzJMdXdkR1JodXFrN0dtK1ppQ3NMcWRXeHZzQTZ5ODN5?= =?utf-8?B?V1VaQ2E3dlhtOEU4QmQ1L0R2bVhOMWYweTYyUTNoVXRpdzEwN3dDWHJLTk9x?= =?utf-8?B?SDJSUkZPNVhPdkQvdjR6ekltamc1c1AvZEF2ZW5xcWJlRkd0MVd4ZWZNQnlE?= =?utf-8?B?RTJqUEdRN21lT1AwdUYybnVwQkw2aGYwUVYrNGd1ZTFudURvOTJWOXp6bUN0?= =?utf-8?B?cWhYaWJiZzlmMWlBVzVTUGk5T0ZSOFNmOCtpUHM1ZFBQZC9Ya1IwdUlIKzNN?= =?utf-8?B?TmZZaWxhd3FtTjZhSksvazZiS2kxcTN5L2kzQXdVVmFyL1RyYnBLRU5OeDdG?= =?utf-8?B?Wlppam5rU3dxK3dOYm40VE5peEZOa2o0dUJScDF3bXBIUFBJZzRzcU53ZDdh?= =?utf-8?B?aGFuc1RBajNGTEQ5YXRwWHRlOUxYWFRKVk8xRTRRNEc3V2syYTNUWG13S1BL?= =?utf-8?B?bUVBV2wrdHlSdDVTVUJKQ1U2N1JNSG9CQmxsUFNoV21YaHVmNlBNaHBKTW1H?= =?utf-8?B?WEdvMEpnUWlvaHQ2djhJMmN4OVVydHNEWnJLZ05VZzJpL0pMVkVRV0x6VHBY?= =?utf-8?B?WDI2dUlDTVJHcnkyVGNQNmZvMGsyY21UNEVuM3JLQlJXM0ZCaVVIbXBxZllm?= =?utf-8?Q?6QTf/xAl4qydrAKqeUgMXx/hvqoJj2qIw23uP0d1C8l/0?= X-MS-Exchange-AntiSpam-MessageData-1: 94URFF5XhX3tlw== X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: e31f6b6a-204b-49f2-6400-08df017a9359 X-MS-Exchange-CrossTenant-AuthSource: AS8P189MB1752.EURP189.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2026 00:56:48.0247 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OvEurCPlNs/WNDmeY0YBsM9EFQKVYVDN1EYdjfGQQ++ZqTlTZBv6krMifFSrrgzaeeNTmHJaa5w3v5jIMd4WUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4P189MB3726 Set the SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY capability in the tree connect response for shares configured with the 'continuous availability' option (KSMBD_SHARE_FLAG_CONTINUOUS_AVAILABILITY). This capability is only advertised when persistent handles are also enabled globally (SMB2_GLOBAL_CAP_PERSISTENT_HANDLES). It informs clients that the share supports persistent handles, allowing them to request SMB2_DHANDLE_FLAG_PERSISTENT in DH2Q create contexts. Signed-off-by: Yunseong Kim --- fs/smb/server/smb2pdu.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c index bd74b45ce0e7..b4bf36fb7183 100644 --- a/fs/smb/server/smb2pdu.c +++ b/fs/smb/server/smb2pdu.c @@ -2858,10 +2858,15 @@ int smb2_tree_connect(struct ksmbd_work *work) rsp->StructureSize =3D cpu_to_le16(16); out_err1: /* - * A configured CA share is not continuously available until persistent - * open recovery, ownership fencing, and failover are implemented. + * Advertise Continuous Availability on shares configured with + * the CA flag, when persistent handles are enabled globally. */ - rsp->Capabilities =3D 0; + if (share && test_share_config_flag(share, + KSMBD_SHARE_FLAG_CONTINUOUS_AVAILABILITY) && + conn->vals->req_capabilities & SMB2_GLOBAL_CAP_PERSISTENT_HANDLES) + rsp->Capabilities =3D cpu_to_le32(SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY= ); + else + rsp->Capabilities =3D 0; rsp->Reserved =3D 0; /* default manual caching */ rsp->ShareFlags =3D SMB2_SHAREFLAG_MANUAL_CACHING; --=20 2.47.3 From nobody Mon Sep 28 09:58:48 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012008.outbound.protection.outlook.com [52.101.66.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0230E2BEC43; Mon, 24 Aug 2026 00:56:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533016; cv=fail; b=R9N0kufZU4UTtUMHhh8Brtxigpk4+Gx3VvZUdNBm2Oe3xWlth+TbLGmL11fS8/fU/LwCj6jYkw8E5gi4C+Iyw7MQMK7nZzaRjj+cDD6I6e+yHEOSM5GvyMnIy5oH5dV5GarSuxj4zqVDYb1jnn+ZIPccyLk1uD+xaWj370yRBHA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533016; c=relaxed/simple; bh=8RWzXVZEjDOj8MlOVChB8ImYwz5zwtKOYihAeHreM2w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=gMGYfAl+zrCdb59B7UEV44LqWcae6k1xpInMZFFBTchM5D0b8dnGxk+XfKWMaurz2Baxc8qwVWkujBkxcRC5NvHzHuMYDEXggF2IoG66UhLH4JWdfW2/PbxraS8X6SHJ7PCFp4cMCJjP3lB0e9sf3tqDoFVwfmZhJKQwwKqoag0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech; spf=pass smtp.mailfrom=est.tech; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b=SPAingN/; arc=fail smtp.client-ip=52.101.66.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=est.tech Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b="SPAingN/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cIBt0DzuQ8s0f48F+rveiryUGTpvKKGEYan7g3q7RxAiUvLCU91RnsgretvJAHnNL7srfC3dw6e/FleNwbG5a21MXoX0kgolkU1CBkiMsc/Eq/CDx+0tSRUltYRtM+9Q5jZrGVHttMtJNm2VmF7sdmmeKs1e169IeVhYvttV0E6sIOJdTf0N8OMxSoxaPVjbxfso8jGIy2P7Ief+DDWVCWNsXTzzQ/NUq1K0VVvgmerorArRqE37UJbJt7rykNJE+8rkpZqbntfaz7+WUi7wugHkRgZNbnIdZqdwsnbWMWqTNGyYYsHeoXtrfYYg8T9d3kBNUdkCPoNwLTnVmHmfOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VQUG/l1C5cWbCkBQvAnEOL3DD5tAxb/wkBdsmSbVsTk=; b=CHglgl0Ny8RYZOOAAi3wlxgn7Bt+cPi9vGe+g3+xmAb9AWjdqA1f08iH8E3/02Dhailj4nnSM5+GnbxnQW8r1f/Gvy/fqUUnfvdq2Qohjxnq8Chl6CuhCfWM8e7fFBfMnBudG2VDnth0ByFYrcNqZHZj+QSfMa+i22Fefj13V4o6AUehKPFcHN5Ye1wcptFgswIqk/SHlZLMqvkMXzPrjDa4MHz/p1ePVfDOCfDMNYXtDYSBatRuEKmNt2NqwRrkQeYDio/sj+MiKN5+0lWbXilP/C+jzd5uiLFFeR879hTWHmt/4xYe7VtTiOcMYtX+SD8pOEGqQZZ4cuFGdfHocw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=est.tech; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VQUG/l1C5cWbCkBQvAnEOL3DD5tAxb/wkBdsmSbVsTk=; b=SPAingN/TF5hoYppljFVC18KwSp/Ac9yCWQgQLyWuTP1m/sMl1Hz3hEmvtRSHjtUXlxQ00aM6ix3qUvLBu/5QTYp1tKW+fsC9BOoWNKHxOCF1YgDGRG3FcIusFVFYvBh2RBh0vsdnupXZ9vo7fOtE6o5wt2OKvDc/gHB4oMTtVCng7CE/bebnnZTs7SdGAniQzujSIvxsUVYwkbbyaMh/o4iQ7kGalB215UpRTWaiNDwOIj2nV3OT2cFZH8eHfR6AfSljgV/qQZga5/wI9HynIP0XE00bJpO2/ukYahiLMXhvGanAhM8i05RsR8I0qhyLN7E6nV+TGTUg61DQNsU2Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=est.tech; Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) by GV4P189MB3726.EURP189.PROD.OUTLOOK.COM (2603:10a6:150:2b6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.5; Mon, 24 Aug 2026 00:56:50 +0000 Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4]) by AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4%6]) with mapi id 15.21.0360.005; Mon, 24 Aug 2026 00:56:50 +0000 From: Yunseong Kim Date: Mon, 24 Aug 2026 02:56:30 +0200 Subject: [PATCH 3/4] ksmbd: add fencing for disconnected persistent handles Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260824-b4-ca-v1-3-79d6ae0ad2c3@est.tech> References: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> In-Reply-To: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> To: Namjae Jeon , Sergey Senozhatsky , Tom Talpey , ChenXiaoSong Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org, Yunseong Kim , ysk@kzalloc.com X-Mailer: b4 0.17-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1787533000; l=4289; i=yunseong.kim@est.tech; s=20260824; h=from:subject:message-id; bh=8RWzXVZEjDOj8MlOVChB8ImYwz5zwtKOYihAeHreM2w=; b=fAjB1Fo4wtpjXfRpd5malkjBSJmRGD7AFHRnuBI9pWMLpggmGlGelkkWkxwe5UYnDNQnxbq6k DbY3BmHtOyxCNDMBJNHq1CtQJrnqG8PFEowGsRzoXIPKpYqZ/BaNfAo X-Developer-Key: i=yunseong.kim@est.tech; a=ed25519; pk=nfdmjNawkxBHo9UNdzLNBEht8sYmXp0MYUsa/hwC7vw= X-ClientProxiedBy: GV2PEPF00023A1A.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::21c) To AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P189MB1752:EE_|GV4P189MB3726:EE_ X-MS-Office365-Filtering-Correlation-Id: b6b5f282-6749-476a-c15c-08df017a9487 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|10070799003|23010399003|10067099003|11063799006|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: gubrsc7GACH1GFPQBu3jcb3AS/0fs5aXtLewynbZGM3zykrPP05RizEaY3QJaPb/4sSDhjhv7cPEyva59gRwFOO/PcTB/Ps6quOlgoXB1YM0vVvG5gTTJz1/4A1ne3kHCmbxZGnUoSqMb5/35zcjU26TvanVzXtCsGwquPuH8Y0dBxwmzakp0fa8wCq28HIMyswUbfhqe9DCV+zDdld2El2bSrScOVFDj8wK4q8EgmoZav71HECIpiLw2ks7PIGoDEqmDPSWs7bTxQi7ys3J7K9v+Esca04FdF1ix2p7aDTR0cAhawPQpjxfKzOZPb4/g2iRZyIWa0xt/hnUkoDzYks78Gyr/gU7+KpUcUKgwdOKAcSYvXNnITLCe5xsTy8s0Rw41Dhp0A+VTZ564xzLyFEopyS7WsTrDrvyPB0K1wBUoCJVfBy3CvQnpQvE8p6VX4itdLbEPCBhx2UZF7VAVhgr+jdkDqQUj3cFybGt+cIWsECjSyhoMYa6B5ObyiXoeQQVCc++bFIxGyThMHMNqQtpwZV+nfV+9T4EPCVEtM1WXjPROl9/9u/BOc065BbaCr7GGr5eAoDhgoRxflcR8C1RV8NTH8f6brnmPDabYxF000thXM/eu/8iYClg2VeF8p/R4mp85p/XzA/AwF0PE5K4RzlkAC0Fu1kKnwKiX4c= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8P189MB1752.EURP189.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(10070799003)(23010399003)(10067099003)(11063799006)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c1lNd3YxWWtyWWVoY2FYcHdVajZidWFwMFdnVEJpYTRzM2orZUE5Z1REZ0x3?= =?utf-8?B?OWtMTzlRRCt5Mmtvejd4ZFFNSndSZHBxS0lHK1ZWNExDNGhkNE1aTU1HTjAv?= =?utf-8?B?eHlhYm1HZGlwOXVvSFpGS1V2cjlvcEFoK0p6NnVRUTdRcWcrYWF6N2k3bnV0?= =?utf-8?B?R3M4UEVwU2NWME0xSDRnNkNPV241aStLTGRxcGdFNi9xVE5zbllTQ0VQY216?= =?utf-8?B?b0c2a3doNWlpR1JoSkxhalNQdFk3L25RNklwMm1TdFF5c3cwR2I4blNrQ1Vh?= =?utf-8?B?dmxabVNUNnA5RjhJRmZVOUJGQkhZS3FHSWRtS3RLVFZmTHU5bnZiZDFRTGF0?= =?utf-8?B?Rm9nMlc2K2xLT1NmelREdXFDNEwvb2NPSGJVSnY3K05yKzBRL3FIUUxHVmJN?= =?utf-8?B?Q0MwRXBWTEY3Q3dNWElFb2w0cTZ2eCtCOUk5cVFwQ0lHMys1NW1IRnc1YTZF?= =?utf-8?B?NzBWdFJybnZNNjNMeFV5eHJZaWhRZ3FqZUJQV3pmQTl2WlRGcjIxa0JsT2Rw?= =?utf-8?B?Q1Z4cGhhUlJWeU1oTjg1VVdXRk5ob2dRTXJVZkFlYXRFUk03clJDQVRTSU1o?= =?utf-8?B?YzBKRnBIKzhDQXF2KzBNNER6RG1FMUVqZlhCMXZMOGFmMXIwdzkxVVR1alpj?= =?utf-8?B?UzZYRHhUUlNGSmNoNjdpYjBSMVdYM1d6THhjcVJaZEV6TEw5OEVQWGlUalhJ?= =?utf-8?B?K0Vidk5VWW12RkZoTG8wQ2xZZ0t2UHEvSm9ITE9JWWpteUpxUEoyZzJRRUJa?= =?utf-8?B?bno3a1RVRkI4a2JjbkR1Z1RCb3FUS2JPVTRSSVhDdkhQNjlCMzRMZDRWWVlE?= =?utf-8?B?bFE0Vk1FeEN6aGtmRWlyMEhMNk1iZHpBMU1UeDB1VXhqbXdnMGo1UGtnNW5s?= =?utf-8?B?dHg3QjByQm9zUk9qMlM4cHRRMnk5YWtvL2toTXM1YTBsaDlnM1FXWUM5cjg5?= =?utf-8?B?cEdJSGxpTDJkSnp5NlNOUm5VOHA5TmZMZW9CZTRaWHhzdmtna1lFZFhyblJl?= =?utf-8?B?SG9KV1A0WTVmZHFjWlJIbG5ycmpxKzdNVWFBS25oSmdRMDcvWDJlWVVhd2w0?= =?utf-8?B?RUE0SWYyVVc5MW11aGg3WkxFMDZRYk5GRlB2Wlh5UlErSFR4LzBwYis1R04r?= =?utf-8?B?aFFxU2xPVE5QR0UzQWtHUzl3RUVvVkhnWHM4ak84RjdickNKUjduZlQ2U2RL?= =?utf-8?B?QmhXQWxBeGxqRStZcU5JaU9JVDFhZHZBV0ltVmQrbWxuL2xDcmc4Y2FKT09m?= =?utf-8?B?UEd4ZlJrTlQ0TnFzZ1VXOG94aURsdDdMdFZaQzBoTnFReE5DR0hjd0xtL25V?= =?utf-8?B?b1dHQUpvWWlWcWlZY2tVclY2cU9HUXZxWXFRZm05bmZtekpPNjhzeU96OTBR?= =?utf-8?B?Wm4ySXgvZFJ4VFVkOUxpdlp3UUhZSWtlbmhYdXA1MVYrVkZaaW0waGhQblJt?= =?utf-8?B?ZWJqYUhjNk1JZUtvUEVlbEpCQnV3Q001VmhscmNCMWUyalB0VXo0ZDVzbkwr?= =?utf-8?B?ZE1VdXBIdk5pYS80dWVxd2dJNXhQR2pSUUpLSFo4eFdFSTNnbXNXc3VSRGFG?= =?utf-8?B?MFYvRmwyUXpqWEgzS2NxN0FsUlhjZ0FoSVIvN3VUZTVVNXhnbTNHMURreERP?= =?utf-8?B?SnFPdk5ZanFySWNUQlpUK2tOODd2a0pwWDNBSTlnOE9CQnlFMU82UG1Rcjg0?= =?utf-8?B?SjlSRk9nODI2bFZXdE9MSFVIVEl6WWcxWElRZzBtUTVYQnhrZ1dlZ3pNNUN1?= =?utf-8?B?NFFjZGFqQ3NXdFV1UXFaQVVsTE4vZFRDYmZvaUV1anYwUE1OT2hXSjQ1REpK?= =?utf-8?B?d21oaW9MNTBPcm53L3NyYW51L0o5VjNBYzd5YWZrSWI4aHA5elFYR2JxbjNx?= =?utf-8?B?MzhiUXY0OS9wRFlTUjF5a2k5VmgyL0JPZlRScmdkSndXcmp6NzZyVTdGTmp0?= =?utf-8?B?ajJld25keDJ3YjVNaXIxL3FaWFpSVGZ4amtlNGw4aTFZWUJlUnc2YnFBUlky?= =?utf-8?B?TDFzcTd1L1FmMGZWWk1YVEkvdnZ2ejB1cTNuYlNFdVNaMVMyRTJLNm53Unpr?= =?utf-8?B?R200eWFMZDUxeGxucldNOGIzMmhEcWF6TU1YV3U1Vm9GL0lPRUcvTlE1U1lj?= =?utf-8?B?bVNydTZvU3gzM2ZQcEk2NzVMZlhZYmlzQVRSeXp3cWErQU9ha2pCZTNLV3ZT?= =?utf-8?B?K1VoZU5aWnlXVWRkQ2FzRjhYNEZKZ1h4RlBtU1VBcHpKc1FQQkZqdzBkZnF5?= =?utf-8?B?OThrNFBQNUUwZE5QeCtHaVdjbmZZSDdlNldVTFUrY3ZPaEtQWjJxWFZDejBO?= =?utf-8?B?QkYxcTIxOXIyV3NPazZJRnJudmN0MjRkdHl0Vk5XbEJLaTh1VFQrUVNFTlMx?= =?utf-8?Q?vTxgqTqSpvG8QmaLTniStUZVW+WQfbniiunSAWkMBeQ35?= X-MS-Exchange-AntiSpam-MessageData-1: 4muYZ+OwFd8izg== X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: b6b5f282-6749-476a-c15c-08df017a9487 X-MS-Exchange-CrossTenant-AuthSource: AS8P189MB1752.EURP189.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2026 00:56:50.0345 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: drpTA18o5U9Xz4c7V5YL0tuRNKcl5+x9exs6wCOKSyt28Qp49EN0l0qsHeRx43ZdXnzZXJibfI7OBMEvK9sHqw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4P189MB3726 Per MS-SMB2 3.3.5.9, when a non-reconnect CREATE request arrives for a file that has a disconnected persistent handle from a different client, the server SHOULD fail the request with STATUS_FILE_NOT_AVAILABLE. Add ksmbd_has_disconnected_persistent_handle() which checks the inode's open list for any persistent handle that is disconnected (fp->conn is NULL) and belongs to a different client (different ClientGUID). The same client is allowed through so it can reconnect its own handle via DH2C. This fencing prevents data corruption by blocking conflicting opens while the original client's persistent handle is preserved for reconnection. Signed-off-by: Yunseong Kim --- fs/smb/server/smb2pdu.c | 13 +++++++++++++ fs/smb/server/vfs_cache.c | 45 +++++++++++++++++++++++++++++++++++++++++++= ++ fs/smb/server/vfs_cache.h | 2 ++ 3 files changed, 60 insertions(+) diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c index b4bf36fb7183..36efc3f0bf15 100644 --- a/fs/smb/server/smb2pdu.c +++ b/fs/smb/server/smb2pdu.c @@ -4427,6 +4427,19 @@ int smb2_open(struct ksmbd_work *work) if (!rc) { file_present =3D true; =20 + /* + * MS-SMB2 3.3.5.9: If a non-reconnect CREATE arrives for a + * file with a disconnected persistent handle from a different + * client, fail with STATUS_FILE_NOT_AVAILABLE. + */ + if (!dh_info.reconnected && !dh_info.replay && + ksmbd_has_disconnected_persistent_handle(path.dentry, + conn->ClientGUID)) { + rsp->hdr.Status =3D STATUS_FILE_NOT_AVAILABLE; + rc =3D -EAGAIN; + goto err_out; + } + if (req->CreateOptions & FILE_DELETE_ON_CLOSE_LE) { struct xattr_dos_attrib da; =20 diff --git a/fs/smb/server/vfs_cache.c b/fs/smb/server/vfs_cache.c index 81626d204249..48762f743789 100644 --- a/fs/smb/server/vfs_cache.c +++ b/fs/smb/server/vfs_cache.c @@ -788,6 +788,51 @@ bool ksmbd_close_disconnected_durable_delete_on_close(= struct dentry *dentry) return closed; } =20 +/** + * ksmbd_has_disconnected_persistent_handle() - check if a file has a + * disconnected persistent handle that should block new opens (fencing) + * @dentry: dentry of the file being opened + * @client_guid: ClientGUID of the requesting client (same client may reco= nnect) + * + * Per MS-SMB2 3.3.5.9: when a non-reconnect CREATE arrives for a file with + * a disconnected persistent handle, the server SHOULD fail with + * STATUS_FILE_NOT_AVAILABLE. Exception: same ClientGuid with handle-cach= ing + * lease or batch oplock may attempt to break the lease. + * + * Return: true if a disconnected persistent handle exists from a + * different client. + */ +bool ksmbd_has_disconnected_persistent_handle(struct dentry *dentry, + const char *client_guid) +{ + struct ksmbd_inode *ci; + struct ksmbd_file *fp; + bool found =3D false; + + ci =3D ksmbd_inode_lookup_lock(dentry); + if (!ci) + return false; + + down_read(&ci->m_lock); + list_for_each_entry(fp, &ci->m_fp_list, node) { + if (!fp->is_persistent) + continue; + if (fp->conn) + continue; + if (fp->f_state !=3D FP_INITED) + continue; + /* Same client can reconnect =E2=80=94 don't fence it */ + if (!memcmp(fp->client_guid, client_guid, + SMB2_CLIENT_GUID_SIZE)) + continue; + found =3D true; + break; + } + up_read(&ci->m_lock); + ksmbd_inode_put(ci); + return found; +} + static struct ksmbd_file *ksmbd_fp_get(struct ksmbd_file *fp) { if (fp->f_state !=3D FP_INITED) diff --git a/fs/smb/server/vfs_cache.h b/fs/smb/server/vfs_cache.h index 502efb16f05f..c562ed1c9ee8 100644 --- a/fs/smb/server/vfs_cache.h +++ b/fs/smb/server/vfs_cache.h @@ -207,6 +207,8 @@ void ksmbd_fd_put(struct ksmbd_work *work, struct ksmbd= _file *fp); struct ksmbd_inode *ksmbd_inode_lookup_lock(struct dentry *d); void ksmbd_inode_put(struct ksmbd_inode *ci); bool ksmbd_close_disconnected_durable_delete_on_close(struct dentry *dentr= y); +bool ksmbd_has_disconnected_persistent_handle(struct dentry *dentry, + const char *client_guid); struct ksmbd_file *ksmbd_lookup_global_fd(unsigned long long id); struct ksmbd_file *ksmbd_lookup_durable_fd(unsigned long long id); void ksmbd_put_durable_fd(struct ksmbd_file *fp); --=20 2.47.3 From nobody Mon Sep 28 09:58:48 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012008.outbound.protection.outlook.com [52.101.66.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1FE0025B099; Mon, 24 Aug 2026 00:56:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533018; cv=fail; b=pjxHKGfVCqyxXoJfotEzpkcHtmKb0iAvKvvO+ltjR75iJA3u4XnxvSD4kdhOUMG7t08XBYjACbb+RNahBHZu8YNxvFwzUvurexCGBgRoeQekqrnDrsqvFZoN+rLcm0zfonTk+USCPWU7P5rN8oo8NOdgZAV0S7SkWzM4aAJN5/M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787533018; c=relaxed/simple; bh=cw8mYIbJ6GWOJ8huf79FYuVT/sNSGQm1zLjUkM8Whsg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=g5NRxZtPpHDF5VcyGe+qUxvmoiFLVoqWHi4+woNXWfWMfko3GxuicFj9tRdnL5ErYDnmE0RVD4yRVkV58GJSGcCyIaAF3CpN2xKHGwQW6mg4O3ZKR3XPyhJmw5j0vecRx+gJr8uzWs6zIw2mAUOeeNTpeT8Pv+5gNgDvtpD17mI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech; spf=pass smtp.mailfrom=est.tech; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b=IqpHD1pA; arc=fail smtp.client-ip=52.101.66.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=est.tech Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b="IqpHD1pA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VPLVCBFkYrvHApffC670EXNSG4yJW+WXADe6khrMsC9yW1ejPazASBPSNIAsWLvvNK71V/kyZ0f6lqjsDvNeU0HRmoRTSm5t5wc2RXmhWlSssTG8lkl11zw6noQUGw7JIxz+WXxNED/u5YChhSkG+dQXCoRsQqiQCCsfHj5aKpad5KbSz4XNTaA+p9QNaCACShWafpX6wcpV0ljUUYZ3u3opaKNmU2qyJzKos0MT6JWneSwfcXp/jrr+GyCvRL4L0ZjLrH1ZX/qiT0jobhFUBptZjpYWrFfW+45QbvAJMlNeCatLN4eTmbHYOBjmtFuatTaPWgGbq7n4XJplakI2kA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=25mQSvdatJ3hJ7NsnmpI08uB1oWbFJSzMu6gUwZwOS4=; b=tW04a8Yy2hPta7Rc+oqAq+naHkrMU3tA42zT1CFxz309ZhNgZ39t7SV+4Dw7qa6TaBfdjL8Wg8wx8cxzVgNe3vcQRT1wxyTVrl4CuB0szHXmFncCitVeKjr7Ep4OpD0JMNkE8ipPRGAG8qljxTQ42YsMBbaQm47YmMyFFK+5RgNzB3+Ge2rzJqDyVB13rH350s0w5Vr375yiwzG2zzw9RBD06SjQknENvRgfJacpiFYaF3UUcD1c633ARbhs9TQNOFZhXxYFz0ZsKv+5HI0xNhWEfQF2aaejdU7fcOo64CbSiWzG22F3KB7/HcaYsrjcKhZPqu7UyLFBcX6vYWvDDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=est.tech; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=25mQSvdatJ3hJ7NsnmpI08uB1oWbFJSzMu6gUwZwOS4=; b=IqpHD1pArOc+N+OwXNL7JV3ky40PxZjbKWGOcrPsx7kp2mMVyRoamw+3ZY3IqJahBtWoIHZnM6mRvkeBk5pjkMxdReq9qpZA+Noj0n+HKxyCTCBTmSK+bT41fUE7D/W+eXyJ/BZ9PtlAOgeZoqQgf9aQuI/BJqzhbn8r+KUPbBspj7iLHTN8JxsuSQCo+u0BoP1+ioWcFvdbBxxXzhTsKGsJ4ekbnerRfXJ2fgnSVTVp2tHfkOMKybhdTTMdnXjkonsm5jyWRjrR77l2nW56sjWf/6EZ/qtkNMUuH23Yx+7a8EPgxHJ6+RYSUPySBZEn/Pof3yuHT4mGAXQ332s9/w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=est.tech; Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) by GV4P189MB3726.EURP189.PROD.OUTLOOK.COM (2603:10a6:150:2b6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.5; Mon, 24 Aug 2026 00:56:52 +0000 Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4]) by AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4%6]) with mapi id 15.21.0360.005; Mon, 24 Aug 2026 00:56:52 +0000 From: Yunseong Kim Date: Mon, 24 Aug 2026 02:56:31 +0200 Subject: [PATCH 4/4] ksmbd: enforce write-through on CA share opens Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260824-b4-ca-v1-4-79d6ae0ad2c3@est.tech> References: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> In-Reply-To: <20260824-b4-ca-v1-0-79d6ae0ad2c3@est.tech> To: Namjae Jeon , Sergey Senozhatsky , Tom Talpey , ChenXiaoSong Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org, Yunseong Kim , ysk@kzalloc.com X-Mailer: b4 0.17-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1787533000; l=1412; i=yunseong.kim@est.tech; s=20260824; h=from:subject:message-id; bh=cw8mYIbJ6GWOJ8huf79FYuVT/sNSGQm1zLjUkM8Whsg=; b=7RpgI5Hqku7Dl0AT3GcUye+Mfkgm3D4bZwkpZv3JqO6tkz3DzT6vkHiikR7+5AnPzvyVrq0L2 7RS/DPEU0TjA1P/MkrhZlxnZbksIXkzH1V50Zh/EVXaDZJHykCeoRpR X-Developer-Key: i=yunseong.kim@est.tech; a=ed25519; pk=nfdmjNawkxBHo9UNdzLNBEht8sYmXp0MYUsa/hwC7vw= X-ClientProxiedBy: GV2PEPF00023A16.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::20e) To AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P189MB1752:EE_|GV4P189MB3726:EE_ X-MS-Office365-Filtering-Correlation-Id: 468514ff-32a9-470e-9d3d-08df017a95e9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|10070799003|23010399003|10067099003|11063799006|56012099006|10063799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: yXg04Zygz0Q/1iu6u5iuF3pAHgkfjky9Go7B/6FwT7GlDNPge9Nnlxpui+X2qf/4fwLWIzMN/ZAUaklT6oxXLC5iV5HcT1xSOxeus+C2jg+jSjyliTYm7OkkjMugyQ9LH8V1Gc9EFh2IhoXUojSgUDNGcQIuUWQPr1XALPNk6hnZMuZzydnWWzh4xCK1P6F3ZtlsUdu97qqV8DXCO5x5xqZvKo/bRYYfVBaUGi/iJ8sJPni4G+INq3a2xnGl+0OrgRhUYW/r3qLMdUtDaCpjsGR668wf8yxKHbDMdtw/KB0qgrzNLq5YYFbX3olaANjurW78Ve1sxbAOi0EQySL41tiPYwcmXraH9PpGpjco5go6M4F9hKERLDwyjvd2WV4cg99rKSTBV9ZJ7okZXNfqH0+AtEjEdDldErhR4plD+/rMfJNqh3GohlhESEE/cG4ylRopnVaHSqR1h8QC1t5M9PQqpWw531bTq7rS/73a23/HL3sntkpXEc7j4pKO2taiDToHSFffaO+LDfuQAbiicic8ITCVF/1kw7F0+wgHgMMLkDwOlYFMyo8LWiwKufVKljZvGfZ/WzVvHfKj5v+6kQeqomhOPJaBNWewTWm9fdEplAq1+PYH4DxvHrjX0MW1tIZzBlnS2uDjGSEWsznapBkPHvTiEAJagAfLXRSoV9U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8P189MB1752.EURP189.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(10070799003)(23010399003)(10067099003)(11063799006)(56012099006)(10063799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YXdZMlZEcTdVOGdSUU81dnFwQzVsNzFHVFAxck03dFVTYzd4MXZGcTJEVGJ2?= =?utf-8?B?NFBjY0JqTHIvWnAwUi8vaXBoTkRQK3VXSjNRZ0VtcHRxK1FoclpEZkhGZUlo?= =?utf-8?B?UCsyTG9iZTR2UjVpWnRLM0RlNCs1aUdzZmo1T3NQaXpyYjJVTHBuUmNkaitj?= =?utf-8?B?WGlyTXJ2TDRrUngwaHBBQjl2VjdjNEpubGZ3QVQxdXdKUnNVL0VyZnM3cHc0?= =?utf-8?B?Y21KOEo0MGFPUnhodjlLS2hjd1UvYk9iZDNvQTVKak1FT25DN1EzZzN4QVgy?= =?utf-8?B?cnErZzJZSGVqQmUwUHV6UExxZWNvbXFjMXRmL0c5THVwTTVjS3o3QTYrQlVH?= =?utf-8?B?b2RZWEFYREN3enlwblppT2RXUnhwWHcxUjlrc1VzbmpPaHFFNGxmTmY5aFB2?= =?utf-8?B?Mno3aklyVU5neUJHbkxzQW9QTWdqZERtUC9qUlNzZnQzaG9PMjFuWmlOKzNI?= =?utf-8?B?NXZjeDF2UXhEenBhYkxlSDIxRTRDTURLV01qWXdhVFZlYnJjdlF3SExGdTZP?= =?utf-8?B?ZEVHM09DYUV6ZlNnOTU2WkFFYjhlQ1F2dFo3SitZSmlINVV4bC9HVlYzRHov?= =?utf-8?B?VEFiejZGb05oZVJIcEcvdzR2WSt3VktkczdvUEVMTjBxcWR1TG5WbjhMb1pv?= =?utf-8?B?RTBnbWlnVEF0ZFZFZE54Y1FEUlFRODM2Tkk4WmZCckMxclF4NGdieHNBY2Jz?= =?utf-8?B?Nnp1ZTV5YmlXb1ZFNFQ4M01PSFJUUFVDUG9mKzdZbWwvajU2UHE1Yi9HelF6?= =?utf-8?B?VW5laXdtR2l5aVRBV3VMRzdxRVMwVzhURWlLbnpCYUV1VHVXU1hDM2wrRXVr?= =?utf-8?B?V1lCVTNDMGNVSTlhY2JreHJqaXhKaktHRnNnaDRaUXI5VnY3LytCNTkwbE9D?= =?utf-8?B?MGx3MHFCejhQZ25pdi9yZE4xa25iZ3pHazV0NVdXblVZQ2Q5b3hTd1EySkJk?= =?utf-8?B?UEdTVmgrVEtRWDZPcmdQYUVFYk9lZkIxUnFOQ2FMVm5GTUVYdGYvSmtBQlhT?= =?utf-8?B?RFJEaXh2N3RLUE16dVpQTUZISDRVNzdyUTJCeWlmRW5XQ3l4SjVEYjZuMGxh?= =?utf-8?B?cHZRZWNDL2xRUXJkQUZhZmxSV3U2VUN3c2lwWUdKU3FsZGd6QzgyY0pmRFFM?= =?utf-8?B?MjBIbXJnS1pjWFhCZ3BKZFc0WHBORll1Yld0T3B6c0pIdjMwSHdxekkrcTRZ?= =?utf-8?B?clVybDNhY2RLaCtMYUc5NUVyakN4ZHRIdzZvNkxaQ2J5NG1XQ1c4NDVYd1ZU?= =?utf-8?B?ZGF0cDJCaGVPV2VpbXRTdUxvS21mQjYwTDRXTGVkMG0ySTVJekN5cGkwOU5y?= =?utf-8?B?dEN0NGgvZjFzK0dZWWRrVGhJNENyVzBaUmFkd01jVmN0Mm5WY2JGekYrQmNn?= =?utf-8?B?b3ZPU2hUQjJSbXU1d05MdzhFdkEyMjdGWG9zOE51WTNOSXh0N01pTTl3eVFs?= =?utf-8?B?eVNxOElNRzN5czExZVdvOVd3OW9wTzdoS1lJaUxUN2tub2sxY1lsU25ZcG04?= =?utf-8?B?cUJoZ3dkeDd4YlRwN1VpQ2hLYzJXNncremJLOFhXdVI3bmw2cUxBMTBGRjh0?= =?utf-8?B?cFFUaGJRcGdtT0s5SFg0ay92bzV0bjdkVDVvTGVJdFV4c0hQU2YwVmNjdysr?= =?utf-8?B?bE9MVDdhc1VGTE1iYlhpeU1ZRUZGb3FWQlpPc04rM1VzMDFISGg5dUVLU2FF?= =?utf-8?B?UklzeFlZRmo2UlFSSTQ2NXFTakt3SG9GME0vbjJvbGtNcHdkbzIzYW1rajBK?= =?utf-8?B?a2xob2p2R1dEYjZheURXTFF1MEtGWGdMRW5KdUxUMG5FNnIySFA4RmVrWHNR?= =?utf-8?B?THN1RktPQi9zVnpJSEdYeGgxQlJhR1pwSkNmVTN6UXhxeWs2L2h5ZjFqZVBK?= =?utf-8?B?U0RpWmZQcUNFN1VSNHRiU1Q5OXh4eW5ZNU9Wd0R5QkVrYkFDY1Axd0RReXZJ?= =?utf-8?B?b1lBeFQ5ZStUTDFwcGEzSVhRcSs2SzJUaU9EUGtMSVB2djhhWHZvWWp0NXN6?= =?utf-8?B?WHQzV2lsZFp1NFg3Wlp6ZU9uOWkveWF5K0FVdWlKRVlvMFI0WGJveGZ0Y1JW?= =?utf-8?B?LzJuNjZMeXd2dzFwcE5kSEJ3RW40RHI4eEtWaTVuZzNlQlhKNnZ4ZS94YjRq?= =?utf-8?B?V0t0TnJ3RWNpckJaTnVHdmYybHVYVmtWckMyNitleUdQUk9na2VCUWJ2KzhO?= =?utf-8?B?bUZsSlQ3UXI4Nkl4Nlo0OGoyOG1ONVdLd2ZwajlEZG8zQ2orU1MyZDc1c0Z0?= =?utf-8?B?ZFJ2WUphSkNVdzZ0Y1NUMFBCUGV2WmQwL1VQTmV1WVdNc3pQUUhqWEk1MStI?= =?utf-8?B?S0lVTG92THVPNHNoYlZxNE8xS3U2SGZqS1BudXFzUzhkVW1lQUpoeFhxb3pS?= =?utf-8?Q?E3FwjKOAwh/QBenX8PvNAO7vhp+E2Bv5hNj/SH9Mxf17n?= X-MS-Exchange-AntiSpam-MessageData-1: KgwFMkpBm1j3BQ== X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: 468514ff-32a9-470e-9d3d-08df017a95e9 X-MS-Exchange-CrossTenant-AuthSource: AS8P189MB1752.EURP189.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2026 00:56:52.3246 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vhgCrptdKM10rcJO4LLszQrKqeWUwXs+abzvLFPq5RXd4dUSUXT23TywJETpVZAdD/XO0fcF1W8qFAjzfeNkPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4P189MB3726 Per MS-SMB2 3.3.5.9, opens on Continuously Available shares MUST have FILE_WRITE_THROUGH semantics to ensure data is committed to stable storage before the operation completes. This is required because persistent handles may need to be recovered after a server failure, and any data not flushed to disk would be lost. Force FILE_WRITE_THROUGH_LE in the CreateOptions passed to ksmbd_vfs_set_fadvise() for files opened on CA shares, which sets O_SYNC on the underlying file descriptor. Signed-off-by: Yunseong Kim --- fs/smb/server/smb2pdu.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c index 36efc3f0bf15..beb5120013ed 100644 --- a/fs/smb/server/smb2pdu.c +++ b/fs/smb/server/smb2pdu.c @@ -4681,7 +4681,14 @@ int smb2_open(struct ksmbd_work *work) file_info =3D FILE_CREATED; } =20 - ksmbd_vfs_set_fadvise(filp, req->CreateOptions); + /* + * MS-SMB2 3.3.5.9: Opens on CA shares MUST have FILE_WRITE_THROUGH + * semantics to ensure data is committed to stable storage. + */ + if (test_share_config_flag(share, KSMBD_SHARE_FLAG_CONTINUOUS_AVAILABILIT= Y)) + ksmbd_vfs_set_fadvise(filp, req->CreateOptions | FILE_WRITE_THROUGH_LE); + else + ksmbd_vfs_set_fadvise(filp, req->CreateOptions); =20 /* Obtain Volatile-ID */ fp =3D ksmbd_open_fd(work, filp); --=20 2.47.3