On 20/06/2025 03:40, Martin K. Petersen wrote:
Furthermore, io_min may be mutated when stacking devices, and this
makes it a poor candidate to hold the stripe size. Such an example (of
when io_min may change) would be when the io_min is less than the
physical block size.
io_min is not allowed to be smaller than the physical_block_size. How
did we end up violating that requirement?
logical_block_size <= physical_block_size <= io_min <= io_opt
I should have been a bit less ambiguous in my words.
I meant that if we try to set the stacked device io_min (from the stripe
size) less than the bottom device phys block size, then this leads to
the stacked device io_min being set to the bottom device phys block
size. That's what I mean by mutating. And that's why it's a bad idea to
assume that the stripe size is in io_min.
Having said that, we should probably reject this even being allowed – we
should not have physical blocks straddling stripes.