Do not return number of bytes written for ioctl CIFS_IOC_COPYCHUNK_FILE
diff mbox

Message ID 20170426161017.19993-1-sprabhu@redhat.com
State New
Headers show

Commit Message

Sachin Prabhu April 26, 2017, 4:10 p.m. UTC
commit 620d8745b35d ("Introduce cifs_copy_file_range()") changes the
behaviour of the cifs ioctl call CIFS_IOC_COPYCHUNK_FILE. In case of
successful writes, it now returns the number of bytes written. This
return value is treated as an error by the xfstest cifs/001. Depending
on the errno set at that time, this may or may not result in the test
failing.

The patch fixes this by setting the return value to 0 in case of
successful writes.

Fixes: commit 620d8745b35d ("Introduce cifs_copy_file_range()")
Reported-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
---
 fs/cifs/ioctl.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Pavel Shilovsky April 26, 2017, 11:37 p.m. UTC | #1
2017-04-26 9:10 GMT-07:00 Sachin Prabhu <sprabhu@redhat.com>:
> commit 620d8745b35d ("Introduce cifs_copy_file_range()") changes the
> behaviour of the cifs ioctl call CIFS_IOC_COPYCHUNK_FILE. In case of
> successful writes, it now returns the number of bytes written. This
> return value is treated as an error by the xfstest cifs/001. Depending
> on the errno set at that time, this may or may not result in the test
> failing.
>
> The patch fixes this by setting the return value to 0 in case of
> successful writes.
>
> Fixes: commit 620d8745b35d ("Introduce cifs_copy_file_range()")
> Reported-by: Eryu Guan <eguan@redhat.com>
> Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
> ---
>  fs/cifs/ioctl.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/cifs/ioctl.c b/fs/cifs/ioctl.c
> index 265c45f..7f4bba5 100644
> --- a/fs/cifs/ioctl.c
> +++ b/fs/cifs/ioctl.c
> @@ -74,7 +74,8 @@ static long cifs_ioctl_copychunk(unsigned int xid, struct file *dst_file,
>
>         rc = cifs_file_copychunk_range(xid, src_file.file, 0, dst_file, 0,
>                                         src_inode->i_size, 0);
> -
> +       if (rc > 0)
> +               rc = 0;
>  out_fput:
>         fdput(src_file);
>  out_drop_write:
> --
> 2.9.3
>
> --
> 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

Acked-by: Pavel Shilovsky <pshilov@microsoft.com>

--
Best regards,
Pavel Shilovsky
--
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
Steve French April 27, 2017, 8:08 p.m. UTC | #2
merged into cifs-2.6.git for-next

On Wed, Apr 26, 2017 at 6:37 PM, Pavel Shilovsky <piastryyy@gmail.com> wrote:
> 2017-04-26 9:10 GMT-07:00 Sachin Prabhu <sprabhu@redhat.com>:
>> commit 620d8745b35d ("Introduce cifs_copy_file_range()") changes the
>> behaviour of the cifs ioctl call CIFS_IOC_COPYCHUNK_FILE. In case of
>> successful writes, it now returns the number of bytes written. This
>> return value is treated as an error by the xfstest cifs/001. Depending
>> on the errno set at that time, this may or may not result in the test
>> failing.
>>
>> The patch fixes this by setting the return value to 0 in case of
>> successful writes.
>>
>> Fixes: commit 620d8745b35d ("Introduce cifs_copy_file_range()")
>> Reported-by: Eryu Guan <eguan@redhat.com>
>> Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
>> ---
>>  fs/cifs/ioctl.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/fs/cifs/ioctl.c b/fs/cifs/ioctl.c
>> index 265c45f..7f4bba5 100644
>> --- a/fs/cifs/ioctl.c
>> +++ b/fs/cifs/ioctl.c
>> @@ -74,7 +74,8 @@ static long cifs_ioctl_copychunk(unsigned int xid, struct file *dst_file,
>>
>>         rc = cifs_file_copychunk_range(xid, src_file.file, 0, dst_file, 0,
>>                                         src_inode->i_size, 0);
>> -
>> +       if (rc > 0)
>> +               rc = 0;
>>  out_fput:
>>         fdput(src_file);
>>  out_drop_write:
>> --
>> 2.9.3
>>
>> --
>> 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
>
> Acked-by: Pavel Shilovsky <pshilov@microsoft.com>
>
> --
> Best regards,
> Pavel Shilovsky
> --
> 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

Patch
diff mbox

diff --git a/fs/cifs/ioctl.c b/fs/cifs/ioctl.c
index 265c45f..7f4bba5 100644
--- a/fs/cifs/ioctl.c
+++ b/fs/cifs/ioctl.c
@@ -74,7 +74,8 @@  static long cifs_ioctl_copychunk(unsigned int xid, struct file *dst_file,
 
 	rc = cifs_file_copychunk_range(xid, src_file.file, 0, dst_file, 0,
 					src_inode->i_size, 0);
-
+	if (rc > 0)
+		rc = 0;
 out_fput:
 	fdput(src_file);
 out_drop_write: