diff options
Diffstat (limited to 'fs/nfsd/vfs.c')
| -rw-r--r-- | fs/nfsd/vfs.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 9824e32b2f23..7dc98e14655d 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
| @@ -557,9 +557,11 @@ __be32 nfsd4_clone_file_range(struct file *src, u64 src_pos, struct file *dst, | |||
| 557 | loff_t cloned; | 557 | loff_t cloned; |
| 558 | 558 | ||
| 559 | cloned = vfs_clone_file_range(src, src_pos, dst, dst_pos, count, 0); | 559 | cloned = vfs_clone_file_range(src, src_pos, dst, dst_pos, count, 0); |
| 560 | if (cloned < 0) | ||
| 561 | return nfserrno(cloned); | ||
| 560 | if (count && cloned != count) | 562 | if (count && cloned != count) |
| 561 | cloned = -EINVAL; | 563 | return nfserrno(-EINVAL); |
| 562 | return nfserrno(cloned < 0 ? cloned : 0); | 564 | return 0; |
| 563 | } | 565 | } |
| 564 | 566 | ||
| 565 | ssize_t nfsd_copy_file_range(struct file *src, u64 src_pos, struct file *dst, | 567 | ssize_t nfsd_copy_file_range(struct file *src, u64 src_pos, struct file *dst, |
