smb: enable reuse of deferred file handles for write operations

Previously, deferred file handles were reused only for read
operations, this commit extends to reusing deferred handles
for write operations. By reusing these handles we can reduce
the need for open/close operations over the wire.

Signed-off-by: Bharath SM <bharathsm@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
Bharath SM 2024-12-13 22:50:21 +05:30 committed by Steve French
parent 4bbf9020be
commit b8ea3b1ff5

View file

@ -990,7 +990,11 @@ int cifs_open(struct inode *inode, struct file *file)
}
/* Get the cached handle as SMB2 close is deferred */
rc = cifs_get_readable_path(tcon, full_path, &cfile);
if (OPEN_FMODE(file->f_flags) & FMODE_WRITE) {
rc = cifs_get_writable_path(tcon, full_path, FIND_WR_FSUID_ONLY, &cfile);
} else {
rc = cifs_get_readable_path(tcon, full_path, &cfile);
}
if (rc == 0) {
if (file->f_flags == cfile->f_flags) {
file->private_data = cfile;