vfs: dedupe should return EPERM if permission is not granted
authorMark Fasheh <mfasheh@suse.de>
Mon, 10 Sep 2018 23:21:18 +0000 (16:21 -0700)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 18 Oct 2018 01:15:39 +0000 (21:15 -0400)
Right now we return EINVAL if a process does not have permission to dedupe a
file. This was an oversight on my part. EPERM gives a true description of
the nature of our error, and EINVAL is already used for the case that the
filesystem does not support dedupe.

Signed-off-by: Mark Fasheh <mfasheh@suse.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Acked-by: David Sterba <dsterba@suse.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/read_write.c

index be0e872..c734bc2 100644 (file)
@@ -1991,7 +1991,7 @@ int vfs_dedupe_file_range_one(struct file *src_file, loff_t src_pos,
        if (ret < 0)
                goto out_drop_write;
 
-       ret = -EINVAL;
+       ret = -EPERM;
        if (!allow_file_dedupe(dst_file))
                goto out_drop_write;