md: Correctly handle device removal via sysfs
authorMaciej Trela <Maciej.Trela@intel.com>
Wed, 14 Apr 2010 06:58:16 +0000 (16:58 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 18 May 2010 05:27:48 +0000 (15:27 +1000)
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>
drivers/md/md.c

index 7dcc740895507470efe70c9c7250be171eb066c4..766be8701281eb0787c19fe51fdca8f260832b66 100644 (file)
@@ -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) {