ceph: allow copy_file_range when src and dst inode are same
authorJeff Layton <jlayton@kernel.org>
Wed, 24 Jul 2019 11:59:51 +0000 (07:59 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 16 Sep 2019 10:06:23 +0000 (12:06 +0200)
There is no reason to prevent this. The OSD should be able to handle
this as long as the objects are different, and the existing code falls
back when the offset into the object is different.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Acked-by: Luis Henriques <lhenriques@suse.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/file.c

index 685a03c..f657fab 100644 (file)
@@ -1913,8 +1913,6 @@ static ssize_t __ceph_copy_file_range(struct file *src_file, loff_t src_off,
        int src_got = 0, dst_got = 0, err, dirty;
        bool do_final_copy = false;
 
-       if (src_inode == dst_inode)
-               return -EINVAL;
        if (src_inode->i_sb != dst_inode->i_sb)
                return -EXDEV;
        if (ceph_snap(dst_inode) != CEPH_NOSNAP)