|
@@ -5678,6 +5678,7 @@ static void raid5_quiesce(mddev_t *mddev, int state)
|
|
|
static void *raid45_takeover_raid0(mddev_t *mddev, int level)
|
|
|
{
|
|
|
struct raid0_private_data *raid0_priv = mddev->private;
|
|
|
+ unsigned long long sectors;
|
|
|
|
|
|
/* for raid0 takeover only one zone is supported */
|
|
|
if (raid0_priv->nr_strip_zones > 1) {
|
|
@@ -5686,6 +5687,9 @@ static void *raid45_takeover_raid0(mddev_t *mddev, int level)
|
|
|
return ERR_PTR(-EINVAL);
|
|
|
}
|
|
|
|
|
|
+ sectors = raid0_priv->strip_zone[0].zone_end;
|
|
|
+ sector_div(sectors, raid0_priv->strip_zone[0].nb_dev);
|
|
|
+ mddev->dev_sectors = sectors;
|
|
|
mddev->new_level = level;
|
|
|
mddev->new_layout = ALGORITHM_PARITY_N;
|
|
|
mddev->new_chunk_sectors = mddev->chunk_sectors;
|