Skip to content

Commit a572593

Browse files
bvanasscheliu-song-6
authored andcommitted
md: Fix linear_set_limits()
queue_limits_cancel_update() must only be called if queue_limits_start_update() is called first. Remove the queue_limits_cancel_update() call from linear_set_limits() because there is no corresponding queue_limits_start_update() call. This bug was discovered by annotating all mutex operations with clang thread-safety attributes and by building the kernel with clang and -Wthread-safety. Cc: Yu Kuai <yukuai3@huawei.com> Cc: Coly Li <colyli@kernel.org> Cc: Mike Snitzer <snitzer@kernel.org> Cc: Christoph Hellwig <hch@lst.de> Fixes: 127186c ("md: reintroduce md-linear") Signed-off-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20250129225636.2667932-1-bvanassche@acm.org Signed-off-by: Song Liu <song@kernel.org>
1 parent 1e1a9ce commit a572593

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

drivers/md/md-linear.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,8 @@ static int linear_set_limits(struct mddev *mddev)
7676
lim.max_write_zeroes_sectors = mddev->chunk_sectors;
7777
lim.io_min = mddev->chunk_sectors << 9;
7878
err = mddev_stack_rdev_limits(mddev, &lim, MDDEV_STACK_INTEGRITY);
79-
if (err) {
80-
queue_limits_cancel_update(mddev->gendisk->queue);
79+
if (err)
8180
return err;
82-
}
8381

8482
return queue_limits_set(mddev->gendisk->queue, &lim);
8583
}

0 commit comments

Comments
 (0)