diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2019-01-21 15:37:51 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2019-01-21 15:39:24 +0100 |
commit | 105a8edea1c4a77cc3681a7cc46a6a5c02656c5c (patch) | |
tree | f768ebac9a8c3dc0e8b52fbf274ca937356f62ad | |
parent | e689bfb5d5a9983205efbccf1e554fde52a0376a (diff) | |
download | lvm2-105a8edea1c4a77cc3681a7cc46a6a5c02656c5c.tar.gz |
lv_manip: better work with PERCENT_VG modifier with lvresize
Fixing recent commit 022ebb0cfebee4ac8fdbe4e0c61e85db1038a115
Resize already has size that needs to be counted with,
otherwise upsizing operation could turn into size reduction one.
-rw-r--r-- | lib/metadata/lv_manip.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 8c9a933e6..00039efc2 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -5053,8 +5053,8 @@ static int _lvresize_extents_from_percent(const struct logical_volume *lv, case PERCENT_VG: lp->extents = percent_of_extents(lp->extents, vg->extent_count, (lp->sign != SIGN_MINUS)); - if (lp->sign == SIGN_NONE && lp->extents > vg->free_count) { - lp->extents = vg->free_count; + if ((lp->sign == SIGN_NONE) && (lp->extents > (lv->le_count + vg->free_count))) { + lp->extents = lv->le_count + vg->free_count; log_print_unless_silent("Reducing %u%%VG to remaining free space %s in VG.", old_extents, display_size(vg->cmd, (uint64_t)vg->extent_size * lp->extents)); |