diff options
author | Maciej Trela <Maciej.Trela@intel.com> | 2010-04-14 16:58:16 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2010-05-18 15:27:48 +1000 |
commit | b71031076e1169e89bdac1b245ad1488587e4730 (patch) | |
tree | b67a3ffc0263a7e380a9545ca066aea7cc46003b /drivers/md/md.c | |
parent | dab8b29248b3f14f456651a2a6ee9b8fd16d1b3c (diff) | |
download | op-kernel-dev-b71031076e1169e89bdac1b245ad1488587e4730.zip op-kernel-dev-b71031076e1169e89bdac1b245ad1488587e4730.tar.gz |
md: Correctly handle device removal via sysfs
Writing "none" to "../md/dev-xx/slot" removes that device
from being an active part of the array, but it didn't
set ->raid_disk to -1 to record this fact.
Signed-off-by: Maciej Trela <Maciej.Trela@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 7dcc740..766be87 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -2385,6 +2385,7 @@ slot_store(mdk_rdev_t *rdev, const char *buf, size_t len) return err; sprintf(nm, "rd%d", rdev->raid_disk); sysfs_remove_link(&rdev->mddev->kobj, nm); + rdev->raid_disk = -1; set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); md_wakeup_thread(rdev->mddev->thread); } else if (rdev->mddev->pers) { |