|
@@ -52,6 +52,38 @@ static int raid0_congested(void *data, int bits)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * inform the user of the raid configuration
|
|
|
|
+*/
|
|
|
|
+static void dump_zones(mddev_t *mddev)
|
|
|
|
+{
|
|
|
|
+ int j, k, h;
|
|
|
|
+ sector_t zone_size = 0;
|
|
|
|
+ sector_t zone_start = 0;
|
|
|
|
+ char b[BDEVNAME_SIZE];
|
|
|
|
+ raid0_conf_t *conf = mddev->private;
|
|
|
|
+ printk(KERN_INFO "******* %s configuration *********\n",
|
|
|
|
+ mdname(mddev));
|
|
|
|
+ h = 0;
|
|
|
|
+ for (j = 0; j < conf->nr_strip_zones; j++) {
|
|
|
|
+ printk(KERN_INFO "zone%d=[", j);
|
|
|
|
+ for (k = 0; k < conf->strip_zone[j].nb_dev; k++)
|
|
|
|
+ printk("%s/",
|
|
|
|
+ bdevname(conf->devlist[j*mddev->raid_disks
|
|
|
|
+ + k]->bdev, b));
|
|
|
|
+ printk("]\n");
|
|
|
|
+
|
|
|
|
+ zone_size = conf->strip_zone[j].zone_end - zone_start;
|
|
|
|
+ printk(KERN_INFO " zone offset=%llukb "
|
|
|
|
+ "device offset=%llukb size=%llukb\n",
|
|
|
|
+ (unsigned long long)zone_start>>1,
|
|
|
|
+ (unsigned long long)conf->strip_zone[j].dev_start>>1,
|
|
|
|
+ (unsigned long long)zone_size>>1);
|
|
|
|
+ zone_start = conf->strip_zone[j].zone_end;
|
|
|
|
+ }
|
|
|
|
+ printk(KERN_INFO "**********************************\n\n");
|
|
|
|
+}
|
|
|
|
+
|
|
static int create_strip_zones(mddev_t *mddev)
|
|
static int create_strip_zones(mddev_t *mddev)
|
|
{
|
|
{
|
|
int i, c, j, err;
|
|
int i, c, j, err;
|
|
@@ -289,6 +321,7 @@ static int raid0_run(mddev_t *mddev)
|
|
}
|
|
}
|
|
|
|
|
|
blk_queue_merge_bvec(mddev->queue, raid0_mergeable_bvec);
|
|
blk_queue_merge_bvec(mddev->queue, raid0_mergeable_bvec);
|
|
|
|
+ dump_zones(mddev);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|