Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46994191 authored by raz ben yehuda's avatar raz ben yehuda Committed by NeilBrown
Browse files

md: have raid0 report its formation



Report to the user what are the raid zones

Signed-off-by: default avatar <raziebe@gmail.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 1b961429
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -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;
}