Re: [PATCH v7 5/8] xfs: Support FS_XFLAG_ATOMICWRITES

From: John Garry
Date: Sun Oct 13 2024 - 17:06:43 EST


On 07/10/2024 06:42, Christoph Hellwig wrote:
On Fri, Oct 04, 2024 at 02:07:05PM +0100, John Garry wrote:
Sure, that is true (about being able to atomically write 1x FS block if the
bdev support it).

But if we are going to add forcealign or similar later, then it would make
sense (to me) to have FS_XFLAG_ATOMICWRITES (and its other flags) from the
beginning. I mean, for example, if FS_XFLAG_FORCEALIGN were enabled and we
want atomic writes, setting FS_XFLAG_ATOMICWRITES would be rejected if AG
count is not aligned with extsize, or extsize is not a power-of-2, or
extsize exceeds bdev limits. So FS_XFLAG_ATOMICWRITES could have some value
there.

As such, it makes sense to have a consistent user experience and require
FS_XFLAG_ATOMICWRITES from the beginning.

Well, even with forcealign we're not going to lose support for atomic
writes <= block size, are we?


forcealign would not be required for atomic writes <= FS block size.

How about this modified approach:

a. Drop FS_XFLAG_ATOMICWRITES support from this series, and so we can always atomic write 1x FS block (if the bdev supports it)

b. If we agree to support forcealign afterwards, then we can introduce 2x new flags:
- FS_XFLAG_FORCEALIGN - as before
- FS_XFLAG_BIG_ATOMICWRITES - this depends on FS_XFLAG_FORCEALIGN being enabled per inode, and allows us to atomically write > 1 FS block

c. Later support writing < 1 FS block
- this would not depend on forcealign
- would require a real user, and I don't know one yet

better?