2022-11-11 0:55 GMT+09:00, Amir Goldstein <amir73il@xxxxxxxxx>: > Commit 868f9f2f8e00 ("vfs: fix copy_file_range() regression in cross-fs > copies") removed fallback to generic_copy_file_range() for cross-fs > cases inside vfs_copy_file_range(). > > To preserve behavior of nfsd and ksmbd server-side-copy, the fallback to > generic_copy_file_range() was added in nfsd and ksmbd code, but that > call is missing sb_start_write(), fsnotify hooks and more. > > Ideally, nfsd and ksmbd would pass a flag to vfs_copy_file_range() that > will take care of the fallback, but that code would be subtle and we got > vfs_copy_file_range() logic wrong too many times already. > > Instead, add a flag to explicitly request vfs_copy_file_range() to > perform only generic_copy_file_range() and let nfsd and ksmbd use this > flag only in the fallback path. > > This choise keeps the logic changes to minimum in the non-nfsd/ksmbd code > paths to reduce the risk of further regressions. > > Fixes: 868f9f2f8e00 ("vfs: fix copy_file_range() regression in cross-fs > copies") > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > --- > > Hi Al, > > Another fix for the long tradition of copy_file_range() regressions. > This one only affected cross-fs server-side-copy from nfsd/ksmbd. > > I ran the copy_range fstests group on ext4/xfs/overlay to verify no > regressions in local fs and nfsv3/nfsv4 to test server-side-copy. > > I also patched copy_file_range() to test the nfsd fallback code on > local fs. > > Namje, could you please test ksmbd. Works fine. You can add tested-by tag for ksmbd. Tested-by: Namjae Jeon <linkinjeon@xxxxxxxxxx> > > Thanks, > Amir.