1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-10 16:58:47 +03:00

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().
This commit is contained in:
Zdenek Kabelac 2020-09-11 13:31:55 +02:00
parent b798554a20
commit 9f78acfee9
2 changed files with 4 additions and 1 deletions

View File

@ -1,5 +1,6 @@
Version 2.03.11 - Version 2.03.11 -
================================== ==================================
Use extra 1% when resizing thin-pool metadata LV with --use-policy.
Enhance --use-policy percentage rounding. Enhance --use-policy percentage rounding.
Configure --with-vdo and --with-writecache as internal segments. Configure --with-vdo and --with-writecache as internal segments.
Improving VDO man page examples. Improving VDO man page examples.

View File

@ -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; min_threshold = pool_metadata_min_threshold(first_seg(lv)) / DM_PERCENT_1;
*meta_amount = _adjust_amount(percent, (min_threshold < policy_threshold) ? *meta_amount = _adjust_amount(percent, (min_threshold < policy_threshold) ?
min_threshold : policy_threshold, policy_amount); 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)) if (!lv_thin_pool_percent(lv, 0, &percent))
goto_bad; goto_bad;
} else if (lv_is_vdo_pool(lv)) { } else if (lv_is_vdo_pool(lv)) {