]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dm-stripe: limit chunk_sectors to the stripe size
authorJohn Garry <john.g.garry@oracle.com>
Fri, 11 Jul 2025 10:52:57 +0000 (10:52 +0000)
committerJens Axboe <axboe@kernel.dk>
Thu, 17 Jul 2025 12:01:16 +0000 (06:01 -0600)
Same as done for raid0, set chunk_sectors limit to appropriately set the
atomic write size limit.

Setting chunk_sectors limit in this way overrides the stacked limit
already calculated based on the bottom device limits. This is ok, as
when any bios are sent to the bottom devices, the block layer will still
respect the bottom device chunk_sectors.

Reviewed-by: Nilay Shroff <nilay@linux.ibm.com>
Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20250711105258.3135198-6-john.g.garry@oracle.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/dm-stripe.c

index a7dc04bd55e5cb64d60d94fedcd8d534ab22709e..5bbbdf8fc1bdefde5d70dd53e05c7539797ae462 100644 (file)
@@ -458,6 +458,7 @@ static void stripe_io_hints(struct dm_target *ti,
        struct stripe_c *sc = ti->private;
        unsigned int chunk_size = sc->chunk_size << SECTOR_SHIFT;
 
+       limits->chunk_sectors = sc->chunk_size;
        limits->io_min = chunk_size;
        limits->io_opt = chunk_size * sc->stripes;
 }