diff mbox

cifs: smb2_clone_range() - exit on unhandled error

Message ID 1423055426-22242-1-git-send-email-sprabhu@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sachin Prabhu Feb. 4, 2015, 1:10 p.m. UTC
While attempting to clone a file on a samba server, we receive a
STATUS_INVALID_DEVICE_REQUEST. This is mapped to -EOPNOTSUPP which
isn't handled in smb2_clone_range(). We end up looping in the while loop
making same call to the samba server over and over again.

The proposed fix is to exit and return the error value when encountered
with an unhandled error.

Cc: <stable@vger.kernel.org>
Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
---
 fs/cifs/smb2ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Steve French Feb. 6, 2015, 6:05 a.m. UTC | #1
Merged into cifs-2.6.git

On Wed, Feb 4, 2015 at 7:10 AM, Sachin Prabhu <sprabhu@redhat.com> wrote:
> While attempting to clone a file on a samba server, we receive a
> STATUS_INVALID_DEVICE_REQUEST. This is mapped to -EOPNOTSUPP which
> isn't handled in smb2_clone_range(). We end up looping in the while loop
> making same call to the samba server over and over again.
>
> The proposed fix is to exit and return the error value when encountered
> with an unhandled error.
>
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
> ---
>  fs/cifs/smb2ops.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
> index 96b5d40..eab05e1 100644
> --- a/fs/cifs/smb2ops.c
> +++ b/fs/cifs/smb2ops.c
> @@ -684,7 +684,8 @@ smb2_clone_range(const unsigned int xid,
>
>                         /* No need to change MaxChunks since already set to 1 */
>                         chunk_sizes_updated = true;
> -               }
> +               } else
> +                       goto cchunk_out;
>         }
>
>  cchunk_out:
> --
> 2.1.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index 96b5d40..eab05e1 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -684,7 +684,8 @@  smb2_clone_range(const unsigned int xid,
 
 			/* No need to change MaxChunks since already set to 1 */
 			chunk_sizes_updated = true;
-		}
+		} else
+			goto cchunk_out;
 	}
 
 cchunk_out: