fs: try to clone files first in vfs_copy_file_range
authorChristoph Hellwig <hch@lst.de>
Sat, 10 Dec 2016 00:17:19 +0000 (16:17 -0800)
committerDarrick J. Wong <darrick.wong@oracle.com>
Sat, 10 Dec 2016 00:17:19 +0000 (16:17 -0800)
commita76b5b04375f974579c83433b06466758c0c552c
treee90308681a4571301e7bbf9e1e95b1eb579c911b
parent3e5de27e940d00d8d504dfb96625fb654f641509
fs: try to clone files first in vfs_copy_file_range

A clone is a perfectly fine implementation of a file copy, so most
file systems just implement the copy that way.  Instead of duplicating
this logic move it to the VFS.  Currently btrfs and XFS implement copies
the same way as clones and there is no behavior change for them, cifs
only implements clones and grow support for copy_file_range with this
patch.  NFS implements both, so this will allow copy_file_range to work
on servers that only implement CLONE and be lot more efficient on servers
that implements CLONE and COPY.

Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/btrfs/ctree.h
fs/btrfs/file.c
fs/btrfs/ioctl.c
fs/read_write.c
fs/xfs/xfs_file.c