[RFC PATCH 0/3] xfs: forced extent alignment

Dave Chinner
2024-03-06T05:30:56Z

Hi Garry,

I figured that it was simpler just to write the forced extent
alignment allocator patches that to make you struggle through them
and require lots of round trips to understand all the weird corner
cases.

The following 3 patches:

- rework the setup and extent allocation logic a bit to make force
aligned allocation much easier to implement and understand
- move all the alignment adjustments into the setup logic
- rework the alignment slop calculations and greatly simplify the
the exact EOF block allocation case
- add a XFS_ALLOC_FORCEALIGN flag so that the inode config only
needs to be checked once at setup. This also allows other
allocation types (e.g. inode clusters) use forced alignment
allocation semantics in future.
- clearly document when we are turning off allocation alignment and
abort FORCEALIGN allocation at that point rather than doing
unaligned allocation.

I've run this through fstests once so it doesn't let the smoke out,
but I haven't actually tested it against a stripe aligned filesystem
config yet, nor tested the forcealign functionality so it may not be
exactly right yet.

Is this sufficiently complete for you to take from here into the
forcealign series?

Cheers,

Dave.