X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fmd%2Fmultipath.c;h=a222f516660ef4764d36d3a1c930412f315594cc;hb=d0b9706c20ebb4ba181dc26e52ac9a6861abf425;hp=5899246fa37eccbff362cdc94f205b183c3b35c9;hpb=251f39fe42dae863bd24e30864e6b66076ba076d;p=~andy%2Flinux diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c index 5899246fa37..a222f516660 100644 --- a/drivers/md/multipath.c +++ b/drivers/md/multipath.c @@ -292,17 +292,16 @@ static int multipath_add_disk(struct mddev *mddev, struct md_rdev *rdev) return err; } -static int multipath_remove_disk(struct mddev *mddev, int number) +static int multipath_remove_disk(struct mddev *mddev, struct md_rdev *rdev) { struct mpconf *conf = mddev->private; int err = 0; - struct md_rdev *rdev; + int number = rdev->raid_disk; struct multipath_info *p = conf->multipaths + number; print_multipath_conf(conf); - rdev = p->rdev; - if (rdev) { + if (rdev == p->rdev) { if (test_bit(In_sync, &rdev->flags) || atomic_read(&rdev->nr_pending)) { printk(KERN_ERR "hot-remove-disk, slot %d is identified"