[ Sasha's backport helper bot ]
Hi,
The upstream commit SHA1 provided is correct: 14a537983b228cb050ceca3a5b743d01315dc4aa
WARNING: Author mismatch between patch and upstream commit: Backport author: Leah Rumancikleah.rumancik@gmail.com Commit author: Catherine Hoangcatherine.hoang@oracle.com
Status in newer kernel trees: 6.13.y | Present (exact SHA1) 6.12.y | Present (exact SHA1) 6.6.y | Present (different SHA1: d7d84772c3f0) 6.1.y | Present (different SHA1: 9e20b44a856b)
Note: The patch differs from the upstream commit: --- 1: 14a537983b228 ! 1: a0286e9750934 xfs: allow read IO and FICLONE to run concurrently @@ Metadata ## Commit message ## xfs: allow read IO and FICLONE to run concurrently
+ [ Upstream commit 14a537983b228cb050ceca3a5b743d01315dc4aa ] + One of our VM cluster management products needs to snapshot KVM image files so that they can be restored in case of failure. Snapshotting is done by redirecting VM disk writes to a sidecar file and using reflink @@ Commit message Reviewed-by: Dave Chinner dchinner@redhat.com Reviewed-by: Christoph Hellwig hch@lst.de Signed-off-by: Chandan Babu R chandanbabu@kernel.org + Signed-off-by: Leah Rumancik leah.rumancik@gmail.com
## fs/xfs/xfs_file.c ## @@ fs/xfs/xfs_file.c: xfs_ilock_iocb( @@ fs/xfs/xfs_file.c: xfs_file_remap_range( + xfs_iunlock2_remapping(src, dest); if (ret) trace_xfs_reflink_remap_range_error(dest, ret, _RET_IP_); - return remapped > 0 ? remapped : ret; + /* @@ fs/xfs/xfs_file.c: __xfs_filemap_fault( struct inode *inode = file_inode(vmf->vma->vm_file); struct xfs_inode *ip = XFS_I(inode); vm_fault_t ret; + unsigned int lock_mode = 0;
- trace_xfs_filemap_fault(ip, order, write_fault); + trace_xfs_filemap_fault(ip, pe_size, write_fault);
@@ fs/xfs/xfs_file.c: __xfs_filemap_fault( file_update_time(vmf->vma->vm_file); @@ fs/xfs/xfs_file.c: __xfs_filemap_fault( pfn_t pfn;
- xfs_ilock(XFS_I(inode), XFS_MMAPLOCK_SHARED); - ret = xfs_dax_fault(vmf, order, write_fault, &pfn); + ret = xfs_dax_fault(vmf, pe_size, write_fault, &pfn); if (ret & VM_FAULT_NEEDDSYNC) - ret = dax_finish_sync_fault(vmf, order, pfn); + ret = dax_finish_sync_fault(vmf, pe_size, pfn); - xfs_iunlock(XFS_I(inode), XFS_MMAPLOCK_SHARED); + } else if (write_fault) { + ret = iomap_page_mkwrite(vmf, &xfs_page_mkwrite_iomap_ops); ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-6.1.y | Success | Success |