Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5bc9c3c authored by Guoqing Jiang's avatar Guoqing Jiang Committed by Shaohua Li
Browse files

md: clear WantReplacement once disk is removed



We can clear 'WantReplacement' flag directly no
matter it's replacement existed or not since the
semantic is same as before.

Also since the disk is removed from array, then
it is straightforward to remove 'WantReplacement'
flag and the comments in raid10/5 can be removed
as well.

Signed-off-by: default avatarGuoqing Jiang <gqjiang@suse.com>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
parent 29661758
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1831,8 +1831,8 @@ static int raid1_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
			p->rdev = repl;
			conf->mirrors[conf->raid_disks + number].rdev = NULL;
			unfreeze_array(conf);
			clear_bit(WantReplacement, &rdev->flags);
		} else
		}

		clear_bit(WantReplacement, &rdev->flags);
		err = md_integrity_register(mddev);
	}
+2 −6
Original line number Diff line number Diff line
@@ -1874,13 +1874,9 @@ static int raid10_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
			   * but will never see neither -- if they are careful.
			   */
		p->replacement = NULL;
		clear_bit(WantReplacement, &rdev->flags);
	} else
		/* We might have just remove the Replacement as faulty
		 * Clear the flag just in case
		 */
		clear_bit(WantReplacement, &rdev->flags);
	}

	clear_bit(WantReplacement, &rdev->flags);
	err = md_integrity_register(mddev);

abort:
+3 −6
Original line number Diff line number Diff line
@@ -7603,14 +7603,11 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
			   * but will never see neither - if they are careful
			   */
		p->replacement = NULL;
		clear_bit(WantReplacement, &rdev->flags);

		if (!err)
			err = log_modify(conf, p->rdev, true);
	} else
		/* We might have just removed the Replacement as faulty-
		 * clear the bit just in case
		 */
	}

	clear_bit(WantReplacement, &rdev->flags);
abort: