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@xxxxxxx> Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Acked-by: David Sterba <dsterba@xxxxxxxx> --- fs/read_write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/read_write.c b/fs/read_write.c index be0e8723a049..c734bc2880a5 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -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; -- 2.15.1