summaryrefslogtreecommitdiff
path: root/fs/smb
diff options
context:
space:
mode:
authorSteve French <stfrench@microsoft.com>2024-11-18 12:19:46 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-12-05 14:02:59 +0100
commit7b58644f4ade0e14ec2a099b7c97ab2bcd68eda8 (patch)
tree943a9e74fef694e4ff9f31b13be568edc628bd89 /fs/smb
parent0e2b654a3848bf9da3b0d54c1ccf3f1b8c635591 (diff)
downloadlinux-7b58644f4ade0e14ec2a099b7c97ab2bcd68eda8.tar.gz
linux-7b58644f4ade0e14ec2a099b7c97ab2bcd68eda8.tar.bz2
linux-7b58644f4ade0e14ec2a099b7c97ab2bcd68eda8.zip
smb3: request handle caching when caching directories
commit 9ed9d83a51a9636d367c796252409e7b2f4de4d4 upstream. This client was only requesting READ caching, not READ and HANDLE caching in the LeaseState on the open requests we send for directories. To delay closing a handle (e.g. for caching directory contents) we should be requesting HANDLE as well as READ (as we already do for deferred close of files). See MS-SMB2 3.3.1.4 e.g. Cc: stable@vger.kernel.org Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/smb')
-rw-r--r--fs/smb/client/smb2ops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c
index 24a2aa04a108..7571fefeb83a 100644
--- a/fs/smb/client/smb2ops.c
+++ b/fs/smb/client/smb2ops.c
@@ -4080,7 +4080,7 @@ map_oplock_to_lease(u8 oplock)
if (oplock == SMB2_OPLOCK_LEVEL_EXCLUSIVE)
return SMB2_LEASE_WRITE_CACHING_LE | SMB2_LEASE_READ_CACHING_LE;
else if (oplock == SMB2_OPLOCK_LEVEL_II)
- return SMB2_LEASE_READ_CACHING_LE;
+ return SMB2_LEASE_READ_CACHING_LE | SMB2_LEASE_HANDLE_CACHING_LE;
else if (oplock == SMB2_OPLOCK_LEVEL_BATCH)
return SMB2_LEASE_HANDLE_CACHING_LE | SMB2_LEASE_READ_CACHING_LE |
SMB2_LEASE_WRITE_CACHING_LE;