summary refs log tree commit diff
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-02-07 15:44:45 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2019-02-07 15:44:45 -0700
commitee6c0737a0253d6e79063f0a74c1101fdaad0812 (patch)
tree63ee5a7ecd69b2c80594e2dc02c8f91bb859d980 /fs
parent8b5cdbe595a05b8c767d9fe779bd47e997f934c9 (diff)
parente248aa7be86e8179f20ac0931774ecd746f3f5bf (diff)
downloadlinux-ee6c0737a0253d6e79063f0a74c1101fdaad0812.tar.gz
Merge tag 'nfsd-5.0-1' of git://linux-nfs.org/~bfields/linux
Pull nfsd fixes from Bruce Fields:
 "Two small nfsd bugfixes for 5.0, for an RDMA bug and a file clone bug"

* tag 'nfsd-5.0-1' of git://linux-nfs.org/~bfields/linux:
  svcrdma: Remove max_sge check at connect time
  nfsd: Fix error return values for nfsd4_clone_file_range()
Diffstat (limited to 'fs')
-rw-r--r--fs/nfsd/vfs.c6
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,
 	loff_t cloned;
 
 	cloned = vfs_clone_file_range(src, src_pos, dst, dst_pos, count, 0);
+	if (cloned < 0)
+		return nfserrno(cloned);
 	if (count && cloned != count)
-		cloned = -EINVAL;
-	return nfserrno(cloned < 0 ? cloned : 0);
+		return nfserrno(-EINVAL);
+	return 0;
 }
 
 ssize_t nfsd_copy_file_range(struct file *src, u64 src_pos, struct file *dst,