Hi Darrick, Following is a re-work of Dave Chinner's copy_file_range() patches. This v4 patch set includes review tags and excludes the individual filesystem fixes that are not related to cross-device copy. Those patches will be sent to maintainers seperately once the dependency patch is made available on a public branch. I did include the FUSE patch in this posting since we got an ACK from Miklos. You may take it or leave it. Thanks, Amir. Changes since v3: - Drop per filesystem patch for file_modified()/file_accessed() - Fix wrong likely() - Add Reviewed-by tags Changes since v2: - Re-order generic_remap_checks() fix patch before forking generic_copy_file_checks() - Document @req_count helper argument (Darrick) - Fold generic_access_check_limits() (Darrick) - Added file_modified() helper (Darrick) - Added xfs patch to use file_modified() helper - Drop generic_copy_file_range_prep() helper - Per filesystem patch for file_modified()/file_accessed() - Post copy file_remove_privs() for ceph/generic (Darrick) Changes since v1: - Short read instead of EINVAL (Christoph) - generic_file_rw_checks() helper (Darrick) - generic_copy_file_range_prep() helper (Christoph) - Not calling ->remap_file_range() with different sb - Not calling ->copy_file_range() with different fs type - Remove changes to overlayfs - Extra fix to clone/dedupe checks Amir Goldstein (7): vfs: introduce generic_file_rw_checks() vfs: remove redundant checks from generic_remap_checks() vfs: add missing checks to copy_file_range vfs: introduce file_modified() helper xfs: use file_modified() helper vfs: allow copy_file_range to copy across devices fuse: copy_file_range needs to strip setuid bits and update timestamps Dave Chinner (2): vfs: introduce generic_copy_file_range() vfs: no fallback for ->copy_file_range fs/ceph/file.c | 23 +++++++-- fs/cifs/cifsfs.c | 4 ++ fs/fuse/file.c | 29 +++++++++-- fs/inode.c | 20 +++++++ fs/nfs/nfs4file.c | 23 +++++++-- fs/read_write.c | 126 +++++++++++++++++++++++++-------------------- fs/xfs/xfs_file.c | 15 +----- include/linux/fs.h | 9 ++++ mm/filemap.c | 110 +++++++++++++++++++++++++++++++-------- 9 files changed, 259 insertions(+), 100 deletions(-) -- 2.17.1