[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20250725033605.3147379-2-yukuai1@huaweicloud.com>
Date: Fri, 25 Jul 2025 11:36:03 +0800
From: Yu Kuai <yukuai1@...weicloud.com>
To: song@...nel.org,
yukuai3@...wei.com
Cc: linux-raid@...r.kernel.org,
linux-kernel@...r.kernel.org,
yukuai1@...weicloud.com,
yi.zhang@...wei.com,
yangerkun@...wei.com,
johnny.chenyi@...wei.com
Subject: [PATCH 1/3] md: cleanup no_add tag in remove_and_add_spares()
From: Yu Kuai <yukuai3@...wei.com>
Just fold in the tag into remove_spares() to make code cleaner.
Signed-off-by: Yu Kuai <yukuai3@...wei.com>
---
drivers/md/md.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 046fe85c76fe..a0c05b37d087 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -9459,10 +9459,10 @@ static bool md_spares_need_change(struct mddev *mddev)
return false;
}
-static int remove_spares(struct mddev *mddev, struct md_rdev *this)
+static bool remove_spares(struct mddev *mddev, struct md_rdev *this)
{
struct md_rdev *rdev;
- int removed = 0;
+ bool removed = false;
rdev_for_each(rdev, mddev) {
if ((this == NULL || rdev == this) && rdev_removeable(rdev) &&
@@ -9470,14 +9470,18 @@ static int remove_spares(struct mddev *mddev, struct md_rdev *this)
sysfs_unlink_rdev(mddev, rdev);
rdev->saved_raid_disk = rdev->raid_disk;
rdev->raid_disk = -1;
- removed++;
+ removed = true;
}
}
- if (removed && mddev->kobj.sd)
- sysfs_notify_dirent_safe(mddev->sysfs_degraded);
+ if (removed) {
+ if (mddev->kobj.sd)
+ sysfs_notify_dirent_safe(mddev->sysfs_degraded);
+
+ set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
+ }
- return removed;
+ return this && removed;
}
static int remove_and_add_spares(struct mddev *mddev,
@@ -9485,15 +9489,13 @@ static int remove_and_add_spares(struct mddev *mddev,
{
struct md_rdev *rdev;
int spares = 0;
- int removed = 0;
if (this && test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
/* Mustn't remove devices when resync thread is running */
return 0;
- removed = remove_spares(mddev, this);
- if (this && removed)
- goto no_add;
+ if (remove_spares(mddev, this))
+ return 0;
rdev_for_each(rdev, mddev) {
if (this && this != rdev)
@@ -9513,9 +9515,7 @@ static int remove_and_add_spares(struct mddev *mddev,
set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
}
}
-no_add:
- if (removed)
- set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
+
return spares;
}
--
2.39.2
Powered by blists - more mailing lists