All of lore.kernel.org
 help / color / mirror / Atom feed
* [dm-devel] [PATCH] block: revert to using min_not_zero() when stacking chunk_sectors
@ 2020-11-30 17:18 ` Mike Snitzer
  0 siblings, 0 replies; 66+ messages in thread
From: Mike Snitzer @ 2020-11-30 17:18 UTC (permalink / raw)
  To: linux-block; +Cc: dm-devel, bjohnsto, jdorminy

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.

Fixes: 22ada802ede8 ("block: use lcm_not_zero() when stacking chunk_sectors")
Cc: stable@vger.kernel.org
Reported-by: John Dorminy <jdorminy@redhat.com>
Reported-by: Bruce Johnston <bjohnsto@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
---
 block/blk-settings.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/block/blk-settings.c b/block/blk-settings.c
index 9741d1d83e98..1d9decd4646e 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -547,7 +547,10 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
 
 	t->io_min = max(t->io_min, b->io_min);
 	t->io_opt = lcm_not_zero(t->io_opt, b->io_opt);
-	t->chunk_sectors = lcm_not_zero(t->chunk_sectors, b->chunk_sectors);
+
+	if (b->chunk_sectors)
+		t->chunk_sectors = min_not_zero(t->chunk_sectors,
+						b->chunk_sectors);
 
 	/* Physical block size a multiple of the logical block size? */
 	if (t->physical_block_size & (t->logical_block_size - 1)) {
-- 
2.15.0

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel


^ permalink raw reply related	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2020-12-04 17:51 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-30 17:18 [dm-devel] [PATCH] block: revert to using min_not_zero() when stacking chunk_sectors Mike Snitzer
2020-11-30 17:18 ` Mike Snitzer
2020-11-30 20:51 ` [dm-devel] " John Dorminy
2020-11-30 20:51   ` John Dorminy
2020-11-30 23:24   ` [dm-devel] " Mike Snitzer
2020-11-30 23:24     ` Mike Snitzer
2020-12-01  0:21     ` [dm-devel] " John Dorminy
2020-12-01  0:21       ` John Dorminy
2020-12-01  2:12       ` [dm-devel] " Mike Snitzer
2020-12-01  2:12         ` Mike Snitzer
2020-12-01 16:07 ` [dm-devel] [PATCH v2] block: use gcd() to fix chunk_sectors limit stacking Mike Snitzer
2020-12-01 16:07   ` Mike Snitzer
2020-12-01 17:43   ` [dm-devel] " John Dorminy
2020-12-01 17:43     ` John Dorminy
2020-12-01 17:53   ` [dm-devel] " Jens Axboe
2020-12-01 17:53     ` Jens Axboe
2020-12-01 18:02   ` [dm-devel] " Martin K. Petersen
2020-12-01 18:02     ` Martin K. Petersen
2020-12-02  3:38   ` [dm-devel] [PATCH] dm: " Jeffle Xu
2020-12-02  3:38     ` Jeffle Xu
2020-12-02  3:38     ` [dm-devel] " Jeffle Xu
2020-12-02  3:38       ` Jeffle Xu
2020-12-02  3:57       ` [dm-devel] " JeffleXu
2020-12-02  3:57         ` JeffleXu
2020-12-02  5:03         ` [dm-devel] " Mike Snitzer
2020-12-02  5:03           ` Mike Snitzer
2020-12-02  5:14           ` [dm-devel] " Mike Snitzer
2020-12-02  5:14             ` Mike Snitzer
2020-12-02  6:31             ` [dm-devel] " JeffleXu
2020-12-02  6:31               ` JeffleXu
2020-12-02  6:35               ` [dm-devel] " JeffleXu
2020-12-02  6:35                 ` JeffleXu
2020-12-02  6:28           ` [dm-devel] " JeffleXu
2020-12-02  6:28             ` JeffleXu
2020-12-02  7:10           ` [dm-devel] " JeffleXu
2020-12-02  7:10             ` JeffleXu
2020-12-02 15:11             ` [dm-devel] " Mike Snitzer
2020-12-02 15:11               ` Mike Snitzer
2020-12-03  1:48               ` [dm-devel] " JeffleXu
2020-12-03  1:48                 ` JeffleXu
2020-12-03  3:26   ` [dm-devel] [PATCH v2] block: " Ming Lei
2020-12-03  3:26     ` Ming Lei
2020-12-03 14:33     ` [dm-devel] " Mike Snitzer
2020-12-03 14:33       ` Mike Snitzer
2020-12-03 16:27       ` [dm-devel] " Keith Busch
2020-12-03 16:27         ` Keith Busch
2020-12-03 17:56         ` [dm-devel] " Mike Snitzer
2020-12-03 17:56           ` Mike Snitzer
2020-12-04  1:45         ` [dm-devel] " Ming Lei
2020-12-04  1:45           ` Ming Lei
2020-12-04  2:11           ` [dm-devel] " Mike Snitzer
2020-12-04  2:11             ` Mike Snitzer
2020-12-04  6:22             ` [dm-devel] " Damien Le Moal
2020-12-04  6:22               ` Damien Le Moal
2020-12-04  1:12       ` Ming Lei
2020-12-04  1:12         ` Ming Lei
2020-12-04  2:03         ` [dm-devel] " Mike Snitzer
2020-12-04  2:03           ` Mike Snitzer
2020-12-04  3:59           ` [dm-devel] " Ming Lei
2020-12-04  3:59             ` Ming Lei
2020-12-04 16:47             ` [dm-devel] " Mike Snitzer
2020-12-04 16:47               ` Mike Snitzer
2020-12-04 17:32               ` [dm-devel] [RFC PATCH] dm: fix IO splitting [was: Re: [PATCH v2] block: use gcd() to fix chunk_sectors limit stacking] Mike Snitzer
2020-12-04 17:32                 ` Mike Snitzer
2020-12-04 17:49                 ` [dm-devel] " Mike Snitzer
2020-12-04 17:49                   ` Mike Snitzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.