Commit fc513fa
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>1 parent f8788d8 commit fc513fa
1 file changed
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2073 | 2073 | | |
2074 | 2074 | | |
2075 | 2075 | | |
| 2076 | + | |
2076 | 2077 | | |
2077 | 2078 | | |
2078 | 2079 | | |
| |||
2094 | 2095 | | |
2095 | 2096 | | |
2096 | 2097 | | |
| 2098 | + | |
2097 | 2099 | | |
2098 | 2100 | | |
2099 | 2101 | | |
2100 | 2102 | | |
2101 | 2103 | | |
2102 | | - | |
| 2104 | + | |
| 2105 | + | |
2103 | 2106 | | |
2104 | 2107 | | |
2105 | 2108 | | |
| 2109 | + | |
2106 | 2110 | | |
2107 | 2111 | | |
2108 | 2112 | | |
| |||
0 commit comments