diff options
Diffstat (limited to 'drivers/md/multipath.c')
| -rw-r--r-- | drivers/md/multipath.c | 7 | 
1 files changed, 3 insertions, 4 deletions
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"  |