Skip to content

Commit abaf478

Browse files
masalkhiYu Kuai
authored andcommitted
md: skip redundant raid_disks update when value is unchanged
Calling update_raid_disks() with the same value as the current one can trigger unnecessary work. For example, RAID1 will reallocate resources such as the mempool for r1bio. Signed-off-by: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com> Link: https://patch.msgid.link/20260428130524.448063-1-abd.masalkhi@gmail.com Signed-off-by: Yu Kuai <yukuai@fygo.io>
1 parent 1d24d4c commit abaf478

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

drivers/md/md.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4414,9 +4414,10 @@ raid_disks_store(struct mddev *mddev, const char *buf, size_t len)
44144414
err = mddev_suspend_and_lock(mddev);
44154415
if (err)
44164416
return err;
4417-
if (mddev->pers)
4418-
err = update_raid_disks(mddev, n);
4419-
else if (mddev->reshape_position != MaxSector) {
4417+
if (mddev->pers) {
4418+
if (n != mddev->raid_disks)
4419+
err = update_raid_disks(mddev, n);
4420+
} else if (mddev->reshape_position != MaxSector) {
44204421
struct md_rdev *rdev;
44214422
int olddisks = mddev->raid_disks - mddev->delta_disks;
44224423

0 commit comments

Comments
 (0)