diff options
Diffstat (limited to 'fs/cifs/smb2file.c')
-rw-r--r-- | fs/cifs/smb2file.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/fs/cifs/smb2file.c b/fs/cifs/smb2file.c index 020245d5c9a7..4564787dc7d7 100644 --- a/fs/cifs/smb2file.c +++ b/fs/cifs/smb2file.c | |||
@@ -40,21 +40,21 @@ smb2_set_oplock_level(struct cifsInodeInfo *cinode, __u32 oplock) | |||
40 | oplock &= 0xFF; | 40 | oplock &= 0xFF; |
41 | if (oplock == SMB2_OPLOCK_LEVEL_NOCHANGE) | 41 | if (oplock == SMB2_OPLOCK_LEVEL_NOCHANGE) |
42 | return; | 42 | return; |
43 | if (oplock == SMB2_OPLOCK_LEVEL_EXCLUSIVE || | 43 | if (oplock == SMB2_OPLOCK_LEVEL_BATCH) { |
44 | oplock == SMB2_OPLOCK_LEVEL_BATCH) { | 44 | cinode->oplock = CIFS_CACHE_READ_FLG | CIFS_CACHE_WRITE_FLG | |
45 | cinode->clientCanCacheAll = true; | 45 | CIFS_CACHE_HANDLE_FLG; |
46 | cinode->clientCanCacheRead = true; | 46 | cifs_dbg(FYI, "Batch Oplock granted on inode %p\n", |
47 | &cinode->vfs_inode); | ||
48 | } else if (oplock == SMB2_OPLOCK_LEVEL_EXCLUSIVE) { | ||
49 | cinode->oplock = CIFS_CACHE_READ_FLG | CIFS_CACHE_WRITE_FLG; | ||
47 | cifs_dbg(FYI, "Exclusive Oplock granted on inode %p\n", | 50 | cifs_dbg(FYI, "Exclusive Oplock granted on inode %p\n", |
48 | &cinode->vfs_inode); | 51 | &cinode->vfs_inode); |
49 | } else if (oplock == SMB2_OPLOCK_LEVEL_II) { | 52 | } else if (oplock == SMB2_OPLOCK_LEVEL_II) { |
50 | cinode->clientCanCacheAll = false; | 53 | cinode->oplock = CIFS_CACHE_READ_FLG; |
51 | cinode->clientCanCacheRead = true; | ||
52 | cifs_dbg(FYI, "Level II Oplock granted on inode %p\n", | 54 | cifs_dbg(FYI, "Level II Oplock granted on inode %p\n", |
53 | &cinode->vfs_inode); | 55 | &cinode->vfs_inode); |
54 | } else { | 56 | } else |
55 | cinode->clientCanCacheAll = false; | 57 | cinode->oplock = 0; |
56 | cinode->clientCanCacheRead = false; | ||
57 | } | ||
58 | } | 58 | } |
59 | 59 | ||
60 | int | 60 | int |