[PATCH v4 0/9] Fixes for major copy_file_range() issues

Amir Goldstein
2019-05-31T16:47:11Z

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