mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7ca7a0a983
commit
338ae99f3e
@@ -4260,7 +4260,7 @@ map_oplock_to_lease(u8 oplock)
|
|||||||
if (oplock == SMB2_OPLOCK_LEVEL_EXCLUSIVE)
|
if (oplock == SMB2_OPLOCK_LEVEL_EXCLUSIVE)
|
||||||
return SMB2_LEASE_WRITE_CACHING_LE | SMB2_LEASE_READ_CACHING_LE;
|
return SMB2_LEASE_WRITE_CACHING_LE | SMB2_LEASE_READ_CACHING_LE;
|
||||||
else if (oplock == SMB2_OPLOCK_LEVEL_II)
|
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)
|
else if (oplock == SMB2_OPLOCK_LEVEL_BATCH)
|
||||||
return SMB2_LEASE_HANDLE_CACHING_LE | SMB2_LEASE_READ_CACHING_LE |
|
return SMB2_LEASE_HANDLE_CACHING_LE | SMB2_LEASE_READ_CACHING_LE |
|
||||||
SMB2_LEASE_WRITE_CACHING_LE;
|
SMB2_LEASE_WRITE_CACHING_LE;
|
||||||
|
|||||||
Reference in New Issue
Block a user