overall_limit_pe can set its argument to 0 if the VG is already as
large as it is allowed to be.
In which case we would end up passing "-l +0" to lvextend, which it
complains about and then fails.
Move the clamping of $vg_more_free_pe to outside the check for it
being 0.
Based on a patch by Robert Ho.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Robert Ho <robert.hu@intel.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
$do_limit_pe->(\$vg_more_free_pe, 'unstriped');
+ overall_limit_pe(\$vg_more_free_pe);
if ($vg_more_free_pe) {
logm("$what: unstriped $vg_more_free_pe PEs");
- overall_limit_pe(\$vg_more_free_pe);
$more_pe += $vg_more_free_pe;
target_cmd_root($ho, "lvextend -i1 -l +$vg_more_free_pe $lv");
}