Skip to content

Commit

Permalink
md: enable raid4->raid0 takeover
Browse files Browse the repository at this point in the history
Only level 5 with layout=PARITY_N can be taken over to raid0 now.
Lets allow level 4 either.

Signed-off-by: Maciej Trela <maciej.trela@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
  • Loading branch information
Maciej Trela authored and NeilBrown committed Jun 24, 2010
1 parent 001048a commit 049d6c1
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions drivers/md/raid0.c
Original file line number Diff line number Diff line change
Expand Up @@ -569,7 +569,7 @@ static void raid0_status(struct seq_file *seq, mddev_t *mddev)
return;
}

static void *raid0_takeover_raid5(mddev_t *mddev)
static void *raid0_takeover_raid45(mddev_t *mddev)
{
mdk_rdev_t *rdev;
raid0_conf_t *priv_conf;
Expand Down Expand Up @@ -647,12 +647,16 @@ static void *raid0_takeover_raid10(mddev_t *mddev)
static void *raid0_takeover(mddev_t *mddev)
{
/* raid0 can take over:
* raid4 - if all data disks are active.
* raid5 - providing it is Raid4 layout and one disk is faulty
* raid10 - assuming we have all necessary active disks
*/
if (mddev->level == 4)
return raid0_takeover_raid45(mddev);

if (mddev->level == 5) {
if (mddev->layout == ALGORITHM_PARITY_N)
return raid0_takeover_raid5(mddev);
return raid0_takeover_raid45(mddev);

printk(KERN_ERR "md/raid0:%s: Raid can only takeover Raid5 with layout: %d\n",
mdname(mddev), ALGORITHM_PARITY_N);
Expand Down

0 comments on commit 049d6c1

Please sign in to comment.