Re: [PATCH v5 07/10] xfs: Commit CoW-based atomic writes atomically

From: John Garry
Date: Wed Mar 12 2025 - 05:04:34 EST


On 12/03/2025 07:39, Christoph Hellwig wrote:
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.

Then we would need to limit the awu max to whatever can be guaranteed
(to fit).



+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?


Yes, I suppose that it could always be used. I would suggest that as a later improvement, if you agree.

Thanks,
John