NFS: replace cross device check in copy_file_range
authorOlga Kornievskaia <kolga@netapp.com>
Tue, 2 Jul 2019 19:11:48 +0000 (15:11 -0400)
committerOlga Kornievskaia <olga.kornievskaia@gmail.com>
Wed, 9 Oct 2019 16:06:26 +0000 (12:06 -0400)
Add a check to disallow cross file systems copy offload, both
files are expected to be of NFS4.2+ type.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
fs/nfs/nfs4file.c

index 8978325649231ffbdf0bca7031562d5bf7300afd..e97813b15e23e98e40135cdbe7f5842343fcd765 100644 (file)
@@ -141,7 +141,7 @@ static ssize_t __nfs4_copy_file_range(struct file *file_in, loff_t pos_in,
        bool sync = false;
 
        /* Only offload copy if superblock is the same */
-       if (file_inode(file_in)->i_sb != file_inode(file_out)->i_sb)
+       if (file_in->f_op != &nfs4_file_operations)
                return -EXDEV;
        if (!nfs_server_capable(file_inode(file_out), NFS_CAP_COPY))
                return -EOPNOTSUPP;