diff options
author | Bharath SM <[email protected]> | 2023-07-07 15:29:01 +0000 |
---|---|---|
committer | Steve French <[email protected]> | 2023-07-10 10:37:12 -0500 |
commit | df9d70c18616760c6504b97fec66b6379c172dbb (patch) | |
tree | 0867ab2615b27abbea5ec35a6fc90a9a4deb68b8 | |
parent | 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 (diff) |
cifs: if deferred close is disabled then close files immediately
If defer close timeout value is set to 0, then there is no
need to include files in the deferred close list and utilize
the delayed worker for closing. Instead, we can close them
immediately.
Signed-off-by: Bharath SM <[email protected]>
Reviewed-by: Shyam Prasad N <[email protected]>
Cc: [email protected]
Signed-off-by: Steve French <[email protected]>
-rw-r--r-- | fs/smb/client/file.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/smb/client/file.c b/fs/smb/client/file.c index 879bc8e6555c..fc5acc95cd13 100644 --- a/fs/smb/client/file.c +++ b/fs/smb/client/file.c @@ -1080,8 +1080,8 @@ int cifs_close(struct inode *inode, struct file *file) cfile = file->private_data; file->private_data = NULL; dclose = kmalloc(sizeof(struct cifs_deferred_close), GFP_KERNEL); - if ((cinode->oplock == CIFS_CACHE_RHW_FLG) && - cinode->lease_granted && + if ((cifs_sb->ctx->closetimeo && cinode->oplock == CIFS_CACHE_RHW_FLG) + && cinode->lease_granted && !test_bit(CIFS_INO_CLOSE_ON_LOCK, &cinode->flags) && dclose) { if (test_and_clear_bit(CIFS_INO_MODIFIED_ATTR, &cinode->flags)) { |