Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
block: use gcd() to fix chunk_sectors limit stacking
commit 22ada80 ("block: use lcm_not_zero() when stacking chunk_sectors") broke chunk_sectors limit stacking. chunk_sectors must reflect the most limited of all devices in the IO stack. Otherwise malformed IO may result. E.g.: prior to this fix, ->chunk_sectors = lcm_not_zero(8, 128) would result in blk_max_size_offset() splitting IO at 128 sectors rather than the required more restrictive 8 sectors. And since commit 07d098e ("block: allow 'chunk_sectors' to be non-power-of-2") care must be taken to properly stack chunk_sectors to be compatible with the possibility that a non-power-of-2 chunk_sectors may be stacked. This is why gcd() is used instead of reverting back to using min_not_zero(). Fixes: 22ada80 ("block: use lcm_not_zero() when stacking chunk_sectors") Fixes: 07d098e ("block: allow 'chunk_sectors' to be non-power-of-2") Reported-by: John Dorminy <[email protected]> Reported-by: Bruce Johnston <[email protected]> Signed-off-by: Mike Snitzer <[email protected]> Reviewed-by: John Dorminy <[email protected]> Cc: [email protected] Reviewed-by: Martin K. Petersen <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
- Loading branch information