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?