linux/fs/ceph
Amir Goldstein 5dae222a5f vfs: allow copy_file_range to copy across devices
We want to enable cross-filesystem copy_file_range functionality
where possible, so push the "same superblock only" checks down to
the individual filesystem callouts so they can make their own
decisions about cross-superblock copy offload and fallack to
generic_copy_file_range() for cross-superblock copy.

[Amir] We do not call ->remap_file_range() in case the files are not
on the same sb and do not call ->copy_file_range() in case the files
do not belong to the same filesystem driver.

This changes behavior of the copy_file_range(2) syscall, which will
now allow cross filesystem in-kernel copy.  CIFS already supports
cross-superblock copy, between two shares to the same server. This
functionality will now be available via the copy_file_range(2) syscall.

Cc: Steve French <stfrench@microsoft.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2019-06-09 10:06:20 -07:00
..
acl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 173 2019-05-30 11:26:40 -07:00
addr.c ceph: use vmf_error() in ceph_filemap_fault() 2019-01-07 22:48:48 +01:00
cache.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 188 2019-05-30 11:29:21 -07:00
cache.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 188 2019-05-30 11:29:21 -07:00
caps.c ceph: fix error handling in ceph_get_caps() 2019-06-05 20:34:39 +02:00
ceph_frag.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs.c libceph: make ceph_pr_addr take an struct ceph_entity_addr pointer 2019-05-07 19:43:05 +02:00
dir.c ceph: ensure d_name stability in ceph_dentry_hash() 2019-04-23 21:37:54 +02:00
export.c ceph: snapshot nfs re-export 2019-05-07 19:22:36 +02:00
file.c vfs: allow copy_file_range to copy across devices 2019-06-09 10:06:20 -07:00
inode.c ceph: avoid iput_final() while holding mutex or in dispatch thread 2019-06-05 20:34:39 +02:00
ioctl.c libceph, ceph: move ceph_calc_file_object_mapping() to striper.c 2018-04-02 10:12:43 +02:00
ioctl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
locks.c ceph: remove duplicated filelock ref increase 2019-05-07 19:22:36 +02:00
Makefile ceph: quota: add initial infrastructure to support cephfs quotas 2018-04-02 11:17:51 +02:00
mds_client.c ceph: avoid iput_final() while holding mutex or in dispatch thread 2019-06-05 20:34:39 +02:00
mds_client.h ceph: have ceph_mdsc_do_request call ceph_mdsc_submit_request 2019-05-07 19:22:37 +02:00
mdsmap.c libceph: make ceph_pr_addr take an struct ceph_entity_addr pointer 2019-05-07 19:43:05 +02:00
quota.c ceph: avoid iput_final() while holding mutex or in dispatch thread 2019-06-05 20:34:39 +02:00
snap.c ceph: avoid iput_final() while holding mutex or in dispatch thread 2019-06-05 20:34:39 +02:00
strings.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
super.c ceph: single workqueue for inode related works 2019-06-05 20:34:39 +02:00
super.h ceph: avoid iput_final() while holding mutex or in dispatch thread 2019-06-05 20:34:39 +02:00
xattr.c ceph: support getting ceph.dir.pin vxattr 2019-03-05 18:55:16 +01:00