From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AE6F3BBA19 for ; Thu, 9 Apr 2026 10:00:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775728811; cv=none; b=MO6khep35xQEx1T+dTKxKjyn5MVcyjwAsjrdOFjWzTf5gxy+d0Nu3kVtA2Isgti3bQKQ4Tsg1O+p64TdPymmY8ApqGnJd0+O2sezxPSTaK7j0cYgqfu2/byoafCoW8mevNdx+3bIHXKfvy8JPlLzYPiuIsNiACy4yo9BUwemr0U= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775728811; c=relaxed/simple; bh=iVLJ2lod5R2JDz1cIrkKG1CXH3xzWLlnArZjx/SFbJQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GHEZrsga4WqaHBd+ICphOBjjKJmA+WBEojYBY4UGWqqLxaP7/+vaY1jnrFsY5nJqUBdD6JoFJivGkKfpGug1uCFO4laLJ+n9OGGYAMkfC8UUaMvNR/XajsQHzliaAi4wMEAEj0blkDIo9MQRfeRhe80d8U9u5xTJPLWO6ZDXilM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Szlv/O8a; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Szlv/O8a" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-82ce2e2880cso488980b3a.0 for ; Thu, 09 Apr 2026 03:00:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775728808; x=1776333608; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jz4zNE+M7pi3tWDtuAf/A5LJVd6SnwS9PUa/d+0Kxas=; b=Szlv/O8aSHTleVA2HYKi+mXGTpSGVsgkUcn4kMQ6nq4vU9a/0tXAL9LdKcdTtOwiog jLT6uF0c727vUZ6VxoFTWAF5yvzJT65CKS3xpIpRoMaAzdttKnxvx6hxz+nXiJuVrBOr c1WwDzqnMwtqolcbSKgOiAn2I7CnTftA9Gf3MsjrEmJXUpsbb6xV9ZTK4/ucfZZhMXAd WTMekYXBOfTo5LdYQuFuUa9CXOkA7hIhSPIUUa7avqidT5vwPkWo6xWzmQgLr4p9qWZe 3lGE07sxu9C3Q9AgDLiAP85vlP8E196ZXt+FQHYEW+jH558liEnMGkoOSjBsyXctB65l X91A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775728808; x=1776333608; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jz4zNE+M7pi3tWDtuAf/A5LJVd6SnwS9PUa/d+0Kxas=; b=gY4SAhsPZXdX3RBMviLbdqGmm5DWGOzoNtHyGHHGQmJ7w0uJ8eBB8/td2eypgf2OOK WTt7WUPG7GbmqKQurX31DVqOQIuFKcLd/JEz4n5AArEX6KiwnsqKp9TIfejgok7ohlQ3 J8zPFoefFtlH5apAgfLx+WE9039Jt1WSEpvUA8PKbRXFe7wGm8kYNKpjheHKug9ZK8Wn HnzniEg0A3MfiC36HjoIxpQesUZa1z+mn81UYCAjK/BWSZ0h2Vhsa5eVqBUhKHoPMGZS Ifma0tNVApmd+rClbv1dBO4sa+ASAO7s5qAYcHAXpAgEaMCdKxdJaNBEZQqpO2MZ4LC7 rKdQ== X-Forwarded-Encrypted: i=1; AJvYcCWwcdgRDusMKlu0GdX28MAUImay8zFU9W+VwLEwWo0wm0PH2C6qskAmdhKbG8P49UDtZCjYcTFFq6KfYgk=@vger.kernel.org X-Gm-Message-State: AOJu0YxOTc8D31HxIaWReigCeg7iraTauC8bx2Zkeg4uwt8SfQmrrrGp 9QvWDO2RYWwZPTJen90xx3IcXVjVtE2jxgyxcY7kR/vZDOOhOGrxpS91 X-Gm-Gg: AeBDietUOLfAD9Hz0kkeFVEvUwhoUsR51WAzxBX+PwI95ku0ja+GQ5ZwUjuTtbof35r PpHFX1UBkQcg8pvRs8W28e4CCE0q+vf3aDSvHHAWsqPiCd2lZL5ebyzCf5pa/9NirTRoPJBgkPs U8dS/eXqvVytF43YXcgQbcqqaB/1iYCgDGV3xkiSpWeqV4HuRGk0EfUI/kzosqFL0jeUDUitg73 mmm12z6xseMxLRmHrld30uFJxb8pdmnRA4sP7fSHQffHtPamDynIPPI5B+WoeCcJoFqOIoPrD6f 237MBtsfkcv3SE/id/dopJ4Fwy2CM9pnRt2wWt1i5IVEl28NMW3JXyR6LsHLJ4e7lqnaVyOTl50 QinDV3mdUaApgGM3pHfY4CoVO3KlBU4KYBFwEnT8ibTHBL3TOfoh0TBrRT0WXIhsT1DcJvNnui2 GQIRKT6ovyoSnaRBq8VLfPUS9McnsbWiYn/RJyqAALzlcYKbXvxO9k36ezQBlytgA7If+C0QLLs md7zeBHe9WAcGr5cAODHoU= X-Received: by 2002:a05:6a00:bc0b:b0:829:af4a:5ebc with SMTP id d2e1a72fcca58-82d0da284c1mr24255682b3a.7.1775728808218; Thu, 09 Apr 2026 03:00:08 -0700 (PDT) Received: from dev-vm-rm.hzz4ddxqtfeetjrh00qlbgyytb.rx.internal.cloudapp.net ([20.197.52.255]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82cf9c6b80dsm29113671b3a.42.2026.04.09.03.00.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Apr 2026 03:00:07 -0700 (PDT) From: rajasimandalos@gmail.com To: sfrench@samba.org, linux-cifs@vger.kernel.org Cc: pc@manguebit.org, ronniesahlberg@gmail.com, sprasad@microsoft.com, tom@talpey.com, metze@samba.org, bharathsm@microsoft.com, samba-technical@lists.samba.org, linux-kernel@vger.kernel.org, Rajasi Mandal Subject: [PATCH 6/9] smb: client: allow nolease option to be reconfigured on remount Date: Thu, 9 Apr 2026 09:59:23 +0000 Message-ID: <20260409095926.905020-6-rajasimandalos@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260409095926.905020-1-rajasimandalos@gmail.com> References: <20260409095926.905020-1-rajasimandalos@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Rajasi Mandal The nolease mount option (tcon->no_lease) controls whether the client requests oplocks/leases from the server during SMB2 opens. Previously, changing this option via remount was silently accepted but had no effect because the value was never synced from the updated ctx to the live tcon. Add no_lease to smb3_sync_tcon_opts() so the flag is propagated to all tcons on remount, matching the pattern used by retry, nodelete, and max_cached_dirs. When switching to nolease, also close all deferred file handles via cifs_close_all_deferred_files(). Deferred handles retain their original lease from the previous open; without closing them, a subsequent open would reuse the cached handle and inherit the stale lease, preventing nolease from taking effect. Both transitions are safe: - lease -> nolease: deferred handles are force-closed, and future opens get OPLOCK_LEVEL_NONE. - nolease -> lease: future opens will request leases; existing uncached files remain uncached until reopened. On reconnect, cifs_reopen_file() reads the current tcon->no_lease and the server grants (or not) accordingly, so the per-inode cache state is naturally updated. Signed-off-by: Rajasi Mandal --- fs/smb/client/fs_context.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/smb/client/fs_context.c b/fs/smb/client/fs_context.c index 5f0637035172..ce4842e778c4 100644 --- a/fs/smb/client/fs_context.c +++ b/fs/smb/client/fs_context.c @@ -1330,8 +1330,12 @@ static void smb3_sync_tcon_opts(struct cifs_sb_info *cifs_sb, spin_lock(&tcon->tc_lock); tcon->retry = ctx->retry; + tcon->no_lease = ctx->no_lease; tcon->max_cached_dirs = ctx->max_cached_dirs; spin_unlock(&tcon->tc_lock); + + if (ctx->no_lease) + cifs_close_all_deferred_files(tcon); } spin_unlock(&cifs_sb->tlink_tree_lock); } -- 2.43.0