Skip to content

Fixes for major copy_file_range() issues

Amir Goldstein linux-cifs linux-fsdevel linux-nfs linux-xfs 3 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest9 patches 0 repliesNew
  2. v313 patches 23 repliesSuperseded
  3. v28 patches 19 repliesSuperseded

Changes in v4 from the cover letter

- Drop per filesystem patch for file_modified()/file_accessed()
- Fix wrong likely()
- Add Reviewed-by tags

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9vfs: introduce generic_copy_file_range()fs/read_write.c include/linux/fs.h+35 -30 replies
2/9vfs: no fallback for ->copy_file_rangefs/ceph/file.c fs/cifs/cifsfs.c fs/fuse/file.c +2 more+73 -180 replies
3/9vfs: introduce generic_file_rw_checks()fs/read_write.c include/linux/fs.h mm/filemap.c+36 -270 replies
4/9vfs: remove redundant checks from generic_remap_checks()mm/filemap.c+12 -210 replies
5/9vfs: add missing checks to copy_file_rangefs/read_write.c include/linux/fs.h mm/filemap.c+58 -10 replies
6/9vfs: introduce file_modified() helperfs/inode.c fs/read_write.c include/linux/fs.h+25 -180 replies
7/9xfs: use file_modified() helperfs/xfs/xfs_file.c+1 -140 replies
8/9vfs: allow copy_file_range to copy across devicesfs/ceph/file.c fs/cifs/cifsfs.c fs/fuse/file.c +2 more+26 -100 replies
9/9fuse: copy_file_range needs to strip setuid bits and update timestampsfs/fuse/file.c+5 -00 replies

Reviews trailers per patch

8 of 9 patches have a Reviewed-by or Acked-by.

PatchDarrick J. WongMiklos Szeredi
1/9R-b
2/9R-b
3/9R-b
4/9R-b
5/9R-b
6/9
7/9R-b
8/9R-b
9/9A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

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

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(-)
Signature · 1 line
2.17.1