On Sun, Oct 13, 2024 at 10:06:04PM +0100, John Garry wrote: > 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? Sounds fine to /me/, but that's just my opinion. :) --D