md: have raid0 report its formation
authorraz ben yehuda <raziebe@gmail.com>
Tue, 16 Jun 2009 07:00:54 +0000 (17:00 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 16 Jun 2009 07:00:54 +0000 (17:00 +1000)
Report to the user what are the raid zones

Signed-off-by: raziebe@gmail.com
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid0.c

index d8692fc..62fde23 100644 (file)
@@ -52,6 +52,38 @@ static int raid0_congested(void *data, int bits)
        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)
 {
        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);
+       dump_zones(mddev);
        return 0;
 }