mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
md: remove MD_RECOVERY_ERROR handling and simplify resync_offset update
Following previous patch "md: update curr_resync_completed even when MD_RECOVERY_INTR is set", 'curr_resync_completed' always equals 'curr_resync' for resync, so MD_RECOVERY_ERROR can be removed. Also, simplify resync_offset update logic. Link: https://lore.kernel.org/linux-raid/20260105110300.1442509-8-linan666@huaweicloud.com Signed-off-by: Li Nan <linan122@huawei.com> Reviewed-by: Yu Kuai <yukuai@fnnas.com> Signed-off-by: Yu Kuai <yukuai@fnnas.com>
This commit is contained in:
parent
cc0dab317a
commit
af9c40ff5a
|
|
@ -9086,7 +9086,6 @@ void md_sync_error(struct mddev *mddev)
|
|||
{
|
||||
// stop recovery, signal do_sync ....
|
||||
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
|
||||
set_bit(MD_RECOVERY_ERROR, &mddev->recovery);
|
||||
md_wakeup_thread(mddev->thread);
|
||||
}
|
||||
EXPORT_SYMBOL(md_sync_error);
|
||||
|
|
@ -9749,24 +9748,12 @@ void md_do_sync(struct md_thread *thread)
|
|||
|
||||
if (!test_bit(MD_RECOVERY_CHECK, &mddev->recovery) &&
|
||||
mddev->curr_resync > MD_RESYNC_ACTIVE) {
|
||||
if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery))
|
||||
mddev->curr_resync = MaxSector;
|
||||
|
||||
if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) {
|
||||
if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) {
|
||||
if (mddev->curr_resync >= mddev->resync_offset) {
|
||||
pr_debug("md: checkpointing %s of %s.\n",
|
||||
desc, mdname(mddev));
|
||||
if (test_bit(MD_RECOVERY_ERROR,
|
||||
&mddev->recovery))
|
||||
mddev->resync_offset =
|
||||
mddev->curr_resync_completed;
|
||||
else
|
||||
mddev->resync_offset =
|
||||
mddev->curr_resync;
|
||||
}
|
||||
} else
|
||||
mddev->resync_offset = MaxSector;
|
||||
mddev->resync_offset = mddev->curr_resync;
|
||||
} else {
|
||||
if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery))
|
||||
mddev->curr_resync = MaxSector;
|
||||
if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) &&
|
||||
test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) {
|
||||
rcu_read_lock();
|
||||
|
|
|
|||
|
|
@ -652,8 +652,6 @@ enum recovery_flags {
|
|||
MD_RECOVERY_FROZEN,
|
||||
/* waiting for pers->start() to finish */
|
||||
MD_RECOVERY_WAIT,
|
||||
/* interrupted because io-error */
|
||||
MD_RECOVERY_ERROR,
|
||||
|
||||
/* flags determines sync action, see details in enum sync_action */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user