]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cifs: abort open_cached_dir if we don't request leases
authorShyam Prasad N <sprasad@microsoft.com>
Tue, 28 Apr 2026 16:07:47 +0000 (21:37 +0530)
committerSteve French <stfrench@microsoft.com>
Mon, 4 May 2026 02:06:02 +0000 (21:06 -0500)
commitd68ce834f8cf6cb2e77f3331df65166b35466b53
treeb123158bc9ae0621b6b71fb0920b73efe58ea43b
parent7fd2df204f342fc17d1a0bfcd474b24232fb0f32
cifs: abort open_cached_dir if we don't request leases

It is possible that SMB2_open_init may not set lease context based
on the requested oplock level. This can happen when leases have been
temporarily or permanently disabled. When this happens, we will have
open_cached_dir making an open without lease context and the response
will anyway be rejected by open_cached_dir (thereby forcing a close to
discard this open). That's unnecessary two round-trips to the server.

This change adds a check before making the open request to the server
to make sure that SMB2_open_init did add the expected lease context
to the open in open_cached_dir.

Cc: <stable@vger.kernel.org>
Reviewed-by: Bharath SM <bharathsm@microsoft.com>
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cached_dir.c