md: add support for raid5 to raid4 conversion
This is unlikely to be wanted, but we may as well provide it for completeness. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
5cac7861b2
commit
a78d38a1a1
|
@ -5788,6 +5788,18 @@ static void *raid5_takeover(mddev_t *mddev)
|
|||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
static void *raid4_takeover(mddev_t *mddev)
|
||||
{
|
||||
/* raid4 can take over raid5 if layout is right.
|
||||
*/
|
||||
if (mddev->level == 5 &&
|
||||
mddev->layout == ALGORITHM_PARITY_N) {
|
||||
mddev->new_layout = 0;
|
||||
mddev->new_level = 4;
|
||||
return setup_conf(mddev);
|
||||
}
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
static struct mdk_personality raid5_personality;
|
||||
|
||||
|
@ -5903,6 +5915,7 @@ static struct mdk_personality raid4_personality =
|
|||
.start_reshape = raid5_start_reshape,
|
||||
.finish_reshape = raid5_finish_reshape,
|
||||
.quiesce = raid5_quiesce,
|
||||
.takeover = raid4_takeover,
|
||||
};
|
||||
|
||||
static int __init raid5_init(void)
|
||||
|
|
Loading…
Reference in New Issue