From d14fb9781c3f2eda7248c899d138802dcc25210c Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 17 Sep 2013 11:20:11 +0100 Subject: [PATCH] ts-xen-build-prep: honour build_lvextend_max runvar --- ts-xen-build-prep | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ts-xen-build-prep b/ts-xen-build-prep index 4811205c..daba0923 100755 --- a/ts-xen-build-prep +++ b/ts-xen-build-prep @@ -31,12 +31,25 @@ exit 0 if $ho->{SharedReady}; our ($vg); our $pe_size; +our $extended_pes = 0; sub gb2pe ($) { my ($gb) = @_; return $gb *1024.0*1024.0 / $pe_size; } +sub overall_limit_pe ($) { + my ($pevar) = @_; + my $overall_limit = $r{build_lvextend_max}; + return unless defined $overall_limit && $overall_limit =~ m/^\d/; + my $allow = floor(gb2pe($overall_limit)) - $extended_pes; + if ($$pevar > $allow) { + logm("applying overall lvextend limit ${overall_limit}G"); + $$pevar = $allow; + } + $extended_pes += $$pevar; +} + sub lvextend_stage1 () { $vg= $ho->{Suite} =~ m/lenny/ @@ -120,6 +133,7 @@ sub lvextend1 ($$$) { my $stripes_free = $stripe_count * $stripe_minfree; $do_limit_pe->(\$stripes_free, 'striped'); + overall_limit_pe(\$stripes_free); if ($stripe_minfree && $stripe_count>1) { $more_pe += $stripes_free; target_cmd_root($ho, "lvextend -i$stripe_count -l +$stripes_free $lv"); -- 2.39.5