[lvm-devel] master - lvcreate: better error message creating RAID LV on < 4 KiB VG extent size

Heinz Mauelshagen mauelsha at fedoraproject.org
Tue Aug 16 11:40:08 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=73df2aedf9788dcf2dbf09f20f8783c6d2108e75
Commit:        73df2aedf9788dcf2dbf09f20f8783c6d2108e75
Parent:        114db6f745a229e1c3bf2dc95cc45c020cbcfca8
Author:        Heinz Mauelshagen <heinzm at redhat.com>
AuthorDate:    Tue Aug 16 13:39:40 2016 +0200
Committer:     Heinz Mauelshagen <heinzm at redhat.com>
CommitterDate: Tue Aug 16 13:39:40 2016 +0200

lvcreate: better error message creating RAID LV on < 4 KiB VG extent size

Creating a RaidLV in VGs with very small extent sizes caused
late failure in the kernel giving a not very informative error
message. Catch the attempt early and display failure message
'Unable to create RAID LV: requires minimum VG extent size 4.00 KiB'.

- resoves rhbz1179970
---
 tools/lvcreate.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/tools/lvcreate.c b/tools/lvcreate.c
index ccd07f0..a389d79 100644
--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -1255,10 +1255,17 @@ static int _check_raid_parameters(struct volume_group *vg,
 				  struct lvcreate_cmdline_params *lcp)
 {
 	unsigned devs = lcp->pv_count ? : dm_list_size(&vg->pvs);
+	uint64_t page_sectors = lvm_getpagesize() >> SECTOR_SHIFT;
 	struct cmd_context *cmd = vg->cmd;
 	int old_stripes = !arg_is_set(cmd, stripes_ARG) &&
 			  find_config_tree_bool(cmd, allocation_raid_stripe_all_devices_CFG, NULL);
 
+	if (vg->extent_size < page_sectors) {
+		log_error("Unable to create RAID LV: requires minimum VG extent size %s",
+			  display_size(vg->cmd, page_sectors));
+		return 0;
+	}
+
 	/*
 	 * If we requested the previous behaviour by setting
 	 * "allocation/raid_stripe_all_devices = 1" and the




More information about the lvm-devel mailing list