Please note in case missed, I am mandating extsize hint for forcealign needs
to be a power-of-2. It just makes life easier for all the sub-extent
zero'ing later on.
That's fine - that will need to be documented in the xfsctl man
page...
Also we need to enforce that the AG count to be compliant with the extsize^^^^^ size?
hint for forcealign; but since the extsize hint for forcealign needs to be
compliant with stripe unit, above, and stripe unit would be compliant wth AG
count (right?), then this would be a given.
We already align AG size to stripe unit when a stripe unit is set,
and ensure that we don't place all the AG headers on the same stripe
unit.
However, if there is no stripe unit we don't align the AG to
anything.
So, yes, AG sizing by mkfs will need to ensure that all
AGs are correctly aligned to the underlying storage (integer
multiple of the max atomic write size, right?)...
More below....
+ } else {
+ args->alignment = 1;
+ }
Just initialise the allocation args structure with a value of 1 like
we already do?
It was being done in this way to have just a single place where the value is
initialised. It can easily be kept as is.
I'd prefer it as is, because then the value is always initialised
correctly and we only override in the special cases....
are you saying that low-space allocator can set args->alignment = 1 to be
explicit?
Yes.