mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
md: merge mddev serialize_policy into mddev_flags
There is not need to use a separate field in struct mddev, there are no functional changes. Link: https://lore.kernel.org/linux-raid/20260114171241.3043364-5-yukuai@fnnas.com Signed-off-by: Yu Kuai <yukuai@fnnas.com> Reviewed-by: Li Nan <linan122@huawei.com>
This commit is contained in:
@@ -279,7 +279,8 @@ void mddev_destroy_serial_pool(struct mddev *mddev, struct md_rdev *rdev)
|
||||
|
||||
rdev_for_each(temp, mddev) {
|
||||
if (!rdev) {
|
||||
if (!mddev->serialize_policy ||
|
||||
if (!test_bit(MD_SERIALIZE_POLICY,
|
||||
&mddev->flags) ||
|
||||
!rdev_need_serial(temp))
|
||||
rdev_uninit_serial(temp);
|
||||
else
|
||||
@@ -5897,11 +5898,12 @@ static ssize_t serialize_policy_show(struct mddev *mddev, char *page)
|
||||
if (mddev->pers == NULL || (mddev->pers->head.id != ID_RAID1))
|
||||
return sprintf(page, "n/a\n");
|
||||
else
|
||||
return sprintf(page, "%d\n", mddev->serialize_policy);
|
||||
return sprintf(page, "%d\n",
|
||||
test_bit(MD_SERIALIZE_POLICY, &mddev->flags));
|
||||
}
|
||||
|
||||
/*
|
||||
* Setting serialize_policy to true to enforce write IO is not reordered
|
||||
* Setting MD_SERIALIZE_POLICY enforce write IO is not reordered
|
||||
* for raid1.
|
||||
*/
|
||||
static ssize_t
|
||||
@@ -5914,7 +5916,7 @@ serialize_policy_store(struct mddev *mddev, const char *buf, size_t len)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (value == mddev->serialize_policy)
|
||||
if (value == test_bit(MD_SERIALIZE_POLICY, &mddev->flags))
|
||||
return len;
|
||||
|
||||
err = mddev_suspend_and_lock(mddev);
|
||||
@@ -5926,11 +5928,13 @@ serialize_policy_store(struct mddev *mddev, const char *buf, size_t len)
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
if (value)
|
||||
if (value) {
|
||||
mddev_create_serial_pool(mddev, NULL);
|
||||
else
|
||||
set_bit(MD_SERIALIZE_POLICY, &mddev->flags);
|
||||
} else {
|
||||
mddev_destroy_serial_pool(mddev, NULL);
|
||||
mddev->serialize_policy = value;
|
||||
clear_bit(MD_SERIALIZE_POLICY, &mddev->flags);
|
||||
}
|
||||
unlock:
|
||||
mddev_unlock_and_resume(mddev);
|
||||
return err ?: len;
|
||||
@@ -6867,7 +6871,7 @@ static void __md_stop_writes(struct mddev *mddev)
|
||||
md_update_sb(mddev, 1);
|
||||
}
|
||||
/* disable policy to guarantee rdevs free resources for serialization */
|
||||
mddev->serialize_policy = 0;
|
||||
clear_bit(MD_SERIALIZE_POLICY, &mddev->flags);
|
||||
mddev_destroy_serial_pool(mddev, NULL);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user