mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
md: don't allow "-sync" to be set for device in an active array.
If an array is active, devices can be marked 'faulty', but simply removing the 'sync' flag is wrong. That only makes sense for an array which is not active (and is probably only useful for testing anyway). Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
f72ffdd686
commit
e1960f8c5c
@ -2642,10 +2642,12 @@ state_store(struct md_rdev *rdev, const char *buf, size_t len)
|
||||
set_bit(In_sync, &rdev->flags);
|
||||
err = 0;
|
||||
} else if (cmd_match(buf, "-insync") && rdev->raid_disk >= 0) {
|
||||
clear_bit(In_sync, &rdev->flags);
|
||||
rdev->saved_raid_disk = rdev->raid_disk;
|
||||
rdev->raid_disk = -1;
|
||||
err = 0;
|
||||
if (rdev->mddev->pers == NULL) {
|
||||
clear_bit(In_sync, &rdev->flags);
|
||||
rdev->saved_raid_disk = rdev->raid_disk;
|
||||
rdev->raid_disk = -1;
|
||||
err = 0;
|
||||
}
|
||||
} else if (cmd_match(buf, "write_error")) {
|
||||
set_bit(WriteErrorSeen, &rdev->flags);
|
||||
err = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user