diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2020-09-11 13:31:55 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2020-09-11 21:42:37 +0200 |
commit | 9f78acfee9e1f50ea58b532880c5e3e2f6161105 (patch) | |
tree | c01059d23a079434d5fffa1ff9a245612fb56978 | |
parent | b798554a20147535566576fce8d2c839a090cf84 (diff) | |
download | lvm2-9f78acfee9e1f50ea58b532880c5e3e2f6161105.tar.gz |
thin: compensate metadata size by extra percent
When using --use-policy for automatic extension of thin-pool,
the extension of thin-pool's metadata itself can actually take
some extra space.
Since I'm not aware of exact compensation formula, add just
1% extra to calculated amount and hope it fits.
Wanted target is to always have usable thin-pool that fits
bellow pool_metadata_min_threshold().
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | lib/metadata/lv_manip.c | 4 |
2 files changed, 4 insertions, 1 deletions
@@ -1,5 +1,6 @@ Version 2.03.11 - ================================== + Use extra 1% when resizing thin-pool metadata LV with --use-policy. Enhance --use-policy percentage rounding. Configure --with-vdo and --with-writecache as internal segments. Improving VDO man page examples. diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 3c781dcf9..70ac8a799 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -5010,7 +5010,9 @@ static int _lvresize_adjust_policy(const struct logical_volume *lv, min_threshold = pool_metadata_min_threshold(first_seg(lv)) / DM_PERCENT_1; *meta_amount = _adjust_amount(percent, (min_threshold < policy_threshold) ? min_threshold : policy_threshold, policy_amount); - + if (*meta_amount) + /* Compensate possible extra space consumption by kernel on resize */ + (*meta_amount)++; if (!lv_thin_pool_percent(lv, 0, &percent)) goto_bad; } else if (lv_is_vdo_pool(lv)) { |