On Thu, Apr 02, 2020 at 08:14:31AM -0700, Darrick J. Wong wrote: > This isn't enough because this is only the last transaction in the > reflink sequence if we have to set the destination inode's size. If > (say) we're reflinking a range inside EOF of two files that were already > sharing blocks, we still won't force the log out. > > The other thing I thought of was simply invoking fsync after dropping > the iolock, but that seemed like more work than was strictly necessary > to land the reflink transactions on disk. Well, we have a lightweight version of fsync doing just that. In fact we have the same lightweight version twice: xfs_dir_fsync and xfs_fs_nfs_commit_metadata.