On Mon, Mar 10, 2025 at 06:39:43PM +0000, John Garry wrote:
When completing a CoW-based write, each extent range mapping update is
covered by a separate transaction.
For a CoW-based atomic write, all mappings must be changed at once, so
change to use a single transaction.
As already mentioned in a previous reply: "all" might be to much.
The code can only support a (relatively low) number of extents
in a single transaction safely.
+int
+xfs_reflink_end_atomic_cow(
+ struct xfs_inode *ip,
+ xfs_off_t offset,
+ xfs_off_t count)
Assuming we could actually to the multi extent per transaction
commit safely, what would be the reason to not always do it?