]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
md/raid*: Fix the set_queue_limits implementations
authorBart Van Assche <bvanassche@acm.org>
Wed, 12 Feb 2025 17:11:07 +0000 (09:11 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2025 12:34:16 +0000 (04:34 -0800)
[ Upstream commit fbe8f2fa971c537571994a0df532c511c4fb5537 ]

queue_limits_cancel_update() must only be called if
queue_limits_start_update() is called first. Remove the
queue_limits_cancel_update() calls from the raid*_set_limits() functions
because there is no corresponding queue_limits_start_update() call.

Cc: Christoph Hellwig <hch@lst.de>
Fixes: c6e56cf6b2e7 ("block: move integrity information into queue_limits")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/linux-raid/20250212171108.3483150-1-bvanassche@acm.org/
Signed-off-by: Yu Kuai <yukuai@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/md/raid0.c
drivers/md/raid1.c
drivers/md/raid10.c

index 7049ec7fb8eb4449b9e62db6410bf5e97fc6ec57..e8802309ed600bc76b54204f6126175f4b5a4d02 100644 (file)
@@ -386,10 +386,8 @@ static int raid0_set_limits(struct mddev *mddev)
        lim.io_opt = lim.io_min * mddev->raid_disks;
        lim.features |= BLK_FEAT_ATOMIC_WRITES_STACKED;
        err = mddev_stack_rdev_limits(mddev, &lim, MDDEV_STACK_INTEGRITY);
-       if (err) {
-               queue_limits_cancel_update(mddev->gendisk->queue);
+       if (err)
                return err;
-       }
        return queue_limits_set(mddev->gendisk->queue, &lim);
 }
 
index a5cd6522fc2d4db959be26b83984fd75ec10f835..3c75a69376f4701b97b2a20d2827c5d7dea3c334 100644 (file)
@@ -3219,10 +3219,8 @@ static int raid1_set_limits(struct mddev *mddev)
        lim.max_write_zeroes_sectors = 0;
        lim.features |= BLK_FEAT_ATOMIC_WRITES_STACKED;
        err = mddev_stack_rdev_limits(mddev, &lim, MDDEV_STACK_INTEGRITY);
-       if (err) {
-               queue_limits_cancel_update(mddev->gendisk->queue);
+       if (err)
                return err;
-       }
        return queue_limits_set(mddev->gendisk->queue, &lim);
 }
 
index e1e6cd7fb125e17fca98820379d9d8bd70f3fe9c..8b736f30ef9262edfb48551df3305edf091f0c5e 100644 (file)
@@ -4020,10 +4020,8 @@ static int raid10_set_queue_limits(struct mddev *mddev)
        lim.io_opt = lim.io_min * raid10_nr_stripes(conf);
        lim.features |= BLK_FEAT_ATOMIC_WRITES_STACKED;
        err = mddev_stack_rdev_limits(mddev, &lim, MDDEV_STACK_INTEGRITY);
-       if (err) {
-               queue_limits_cancel_update(mddev->gendisk->queue);
+       if (err)
                return err;
-       }
        return queue_limits_set(mddev->gendisk->queue, &lim);
 }