Thread (2 messages) 2 messages, 2 authors, 2009-05-20

Re: Subject: [PATCH 002/009]: have raid0 report its formation

From: raz ben yehuda <hidden>
Date: 2009-05-20 13:50:49

On Wed, 2009-05-20 at 11:27 +1000, Neil Brown wrote:
On Tuesday May 19, raziebe@gmail.com wrote:
quoted
Report to the user what are the raid zones
You didn't reply to my question of:
 - why did you want this?
 - can it be combined with other information printed by
   make_strip_zones?
 - if not, can it be combined with the MD_DEBUG part of
   raid0_status??

I've applied it for now, but I need answers before I can promise to
keep it.
I will use raid0_status. Please drop it and I will post a new patch in
the reshape patch set ( in a different patch obviously ). I think
create_strip_zones printouts are NOT clear to the naive user while
raid0_status output is;
Also, I would like to note that i have tested these patches several
times.The MD_DEBUG failure was due to bad git commit id i accidentally
used.sorry about that.
NeilBrown

quoted
 raid0.c |   33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

Signed-off-by: raziebe@gmail.com
---
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index 8049a92..0a6d0fa 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -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 *********",
+		mdname(mddev));
+	h = 0;
+	for (j = 0; j < conf->nr_strip_zones; j++) {
+		printk("\nzone%d", j);
+		printk("=[");
+		for (k = 0; k < conf->strip_zone[j].nb_dev; k++)
+			printk("%s/",
+			bdevname(conf->devlist[j*mddev->raid_disks
+						+ k]->bdev, b));
+
+		zone_size  = conf->strip_zone[j].zone_end - zone_start;
+		printk("]\n\t 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;
@@ -291,6 +323,7 @@ static int raid0_run(mddev_t *mddev)
 	}
 
 	blk_queue_merge_bvec(mddev->queue, raid0_mergeable_bvec);
+	dump_zones(mddev);
 	return 0;
 }
 


--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help