diff options
author | NeilBrown <neilb@suse.de> | 2011-01-30 19:57:42 -0500 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-01-30 19:57:42 -0500 |
commit | de171cb9a52598cc023adceafc6c166112401386 (patch) | |
tree | 56fc899c45b538dedba0fc139e3213a0f47f9a59 /drivers/md/md.c | |
parent | 1f0324caefd39985e9fe052fac97da31694db31e (diff) |
md: revert change to raid_disks on failure.
If we try to update_raid_disks and it fails, we should put
'delta_disks' back to zero. This is important because some code,
such as slot_store, assumes that delta_disks has been validated.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index b76cfc89e1b5..e636e404e9a5 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -5578,6 +5578,8 @@ static int update_raid_disks(mddev_t *mddev, int raid_disks) | |||
5578 | mddev->delta_disks = raid_disks - mddev->raid_disks; | 5578 | mddev->delta_disks = raid_disks - mddev->raid_disks; |
5579 | 5579 | ||
5580 | rv = mddev->pers->check_reshape(mddev); | 5580 | rv = mddev->pers->check_reshape(mddev); |
5581 | if (rv < 0) | ||
5582 | mddev->delta_disks = 0; | ||
5581 | return rv; | 5583 | return rv; |
5582 | } | 5584 | } |
5583 | 5585 | ||