forked fromtorvalds/linux
- Notifications
You must be signed in to change notification settings - Fork0
Commit7e7986f
block: use gcd() to fix chunk_sectors limit stacking
commit22ada80 ("block: use lcm_not_zero() when stackingchunk_sectors") broke chunk_sectors limit stacking. chunk_sectors mustreflect 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 inblk_max_size_offset() splitting IO at 128 sectors rather than therequired more restrictive 8 sectors.And since commit07d098e ("block: allow 'chunk_sectors' to benon-power-of-2") care must be taken to properly stack chunk_sectors tobe compatible with the possibility that a non-power-of-2 chunk_sectorsmay be stacked. This is why gcd() is used instead of reverting backto 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 <jdorminy@redhat.com>Reported-by: Bruce Johnston <bjohnsto@redhat.com>Signed-off-by: Mike Snitzer <snitzer@redhat.com>Reviewed-by: John Dorminy <jdorminy@redhat.com>Cc: stable@vger.kernel.orgReviewed-by: Martin K. Petersen <martin.petersen@oracle.com>Signed-off-by: Jens Axboe <axboe@kernel.dk>1 parent47a8465 commit7e7986f
1 file changed
+4
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
547 | 547 | | |
548 | 548 | | |
549 | 549 | | |
550 | | - | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
551 | 554 | | |
552 | 555 | | |
553 | 556 | | |
| |||
0 commit comments
Comments
(0)