On Tue, Oct 02, 2018 at 10:15:44AM +0200, David Sterba wrote: > On Mon, Oct 01, 2018 at 01:51:09PM -0600, Andreas Dilger wrote: > > > Yes, I would expect there to be problems with his modified kernel > > > for a filesystem that supports clone_file_range, because > > > vfs_copy_file_range() will clone if possible, and this should fail across > > > filesystems. > > > > > > In general, though, I don't know for sure why we don't fall back to > > > do_splice_direct() across filesystems, although the filesystems that > > > implement their own ->copy_file_range ops may have their own, > > > further restrictions within their implementations. > > > > > > This call /is/ documented in the manpage as only being valid for > > > files on the same filesystem, though: > > > http://man7.org/linux/man-pages/man2/copy_file_range.2.html > > > > There was a patch to allow cross-mount copy for NFS, but it hasn't landed > > yet. > > I found https://marc.info/?l=linux-nfs&m=144138779721907&w=2 that lifts > the VFS check (part of a series that can't be easily linked to). > > The lack of cross-mount reflink (based on the copy_file_ragne) is often > confusing users, there are common setups that mount subvolumes > separately and reflinking between them would require mount of the > toplevel subvolume. > > If there are 2 in-kernel users of the relaxed cross-mount copy, I think > this would help to push the series forward. I don't have any objection to cross-mountpoint same-filesystem clones, though obviously we need to all agree that from now on the vfs /does/ support certain IO operations across mountpoints. (I haven't any opinion on cross-filesystem copies, as XFS is incapable of such things.) --D