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

Commit 8430e7e0 authored by NeilBrown's avatar NeilBrown Committed by Shaohua Li
Browse files

md: disconnect device from personality before trying to remove it.



When the HOT_REMOVE_DISK ioctl is used to remove a device, we
call remove_and_add_spares() which will remove it from the personality
if possible.  This improves the chances that the removal will succeed.

When writing "remove" to dev-XX/state, we don't.  So that can fail more easily.

So add the remove_and_add_spares() into "remove" handling.

Signed-off-by: default avatarNeilBrown <neilb@suse.com>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
parent 7ac50447
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2595,6 +2595,8 @@ state_store(struct md_rdev *rdev, const char *buf, size_t len)
		else
			err = -EBUSY;
	} else if (cmd_match(buf, "remove")) {
		clear_bit(Blocked, &rdev->flags);
		remove_and_add_spares(rdev->mddev, rdev);
		if (rdev->raid_disk >= 0)
			err = -EBUSY;
		else {