aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <lsahlber@redhat.com>2020-02-19 06:01:03 +1000
committerSteve French <stfrench@microsoft.com>2020-02-24 14:20:38 -0600
commitfc513fac56e1b626ae48a74d7551d9c35c50129e (patch)
tree08355bc8cf0b36fd5b9d51165c525571e513b3f5 /fs/cifs/cifsfs.c
parentLinux 5.6-rc3 (diff)
downloadlinux-dev-fc513fac56e1b626ae48a74d7551d9c35c50129e.tar.xz
linux-dev-fc513fac56e1b626ae48a74d7551d9c35c50129e.zip
cifs: don't leak -EAGAIN for stat() during reconnect
If from cifs_revalidate_dentry_attr() the SMB2/QUERY_INFO call fails with an error, such as STATUS_SESSION_EXPIRED, causing the session to be reconnected it is possible we will leak -EAGAIN back to the application even for system calls such as stat() where this is not a valid error. Fix this by re-trying the operation from within cifs_revalidate_dentry_attr() if cifs_get_inode_info*() returns -EAGAIN. This fixes stat() and possibly also other system calls that uses cifs_revalidate_dentry*(). Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> Signed-off-by: Steve French <stfrench@microsoft.com> Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com> Reviewed-by: Aurelien Aptel <aaptel@suse.com> CC: Stable <stable@vger.kernel.org>
Diffstat (limited to 'fs/cifs/cifsfs.c')
0 files changed, 0 insertions, 0 deletions