| From: Steve French <stfrench@microsoft.com> |
| Date: Mon, 17 Jun 2019 14:49:07 -0500 |
| Subject: SMB3: retry on STATUS_INSUFFICIENT_RESOURCES instead of failing write |
| |
| commit 8d526d62db907e786fd88948c75d1833d82bd80e upstream. |
| |
| Some servers such as Windows 10 will return STATUS_INSUFFICIENT_RESOURCES |
| as the number of simultaneous SMB3 requests grows (even though the client |
| has sufficient credits). Return EAGAIN on STATUS_INSUFFICIENT_RESOURCES |
| so that we can retry writes which fail with this status code. |
| |
| This (for example) fixes large file copies to Windows 10 on fast networks. |
| |
| Signed-off-by: Steve French <stfrench@microsoft.com> |
| Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com> |
| Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| fs/cifs/smb2maperror.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/fs/cifs/smb2maperror.c |
| +++ b/fs/cifs/smb2maperror.c |
| @@ -455,7 +455,7 @@ static const struct status_to_posix_erro |
| {STATUS_FILE_INVALID, -EIO, "STATUS_FILE_INVALID"}, |
| {STATUS_ALLOTTED_SPACE_EXCEEDED, -EIO, |
| "STATUS_ALLOTTED_SPACE_EXCEEDED"}, |
| - {STATUS_INSUFFICIENT_RESOURCES, -EREMOTEIO, |
| + {STATUS_INSUFFICIENT_RESOURCES, -EAGAIN, |
| "STATUS_INSUFFICIENT_RESOURCES"}, |
| {STATUS_DFS_EXIT_PATH_FOUND, -EIO, "STATUS_DFS_EXIT_PATH_FOUND"}, |
| {STATUS_DEVICE_DATA_ERROR, -EIO, "STATUS_DEVICE_DATA_ERROR"}, |