diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2019-11-11 17:36:58 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2019-11-11 22:44:25 +0100 |
commit | 08f36dd093c708f0d4a4edd1fd1d84e9a2316313 (patch) | |
tree | beb1faed95a450f2e34c732866189299e853a708 | |
parent | 3b05fd4d072d94bfead8c2d188ecf704fe57e2a8 (diff) | |
download | lvm2-08f36dd093c708f0d4a4edd1fd1d84e9a2316313.tar.gz |
lvextend: fix resizing volumes of different segtype
When resizing 2 volumes like thin-pool and it's metadata and they
would be of a different type - command would be actually expecting
both LVs being of a same segtype - and would throw an error in
case they are different.
This patch fixes is by setting a new segtype from last segment of
2nd. extented device.
Also it fixes the possible 'percentage' extension setup that
might have been used for 'primary' volume - while the 'secondary'
LV always goes with direct size - as we do not support 'percentage'
setup for them
This affects maily usage of thin-pool where the extension of
thin-pool data size may also lead to extension of metadata size.
-rw-r--r-- | lib/metadata/lv_manip.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index ae103d31a..b4daa5633 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -5623,6 +5623,8 @@ static struct logical_volume *_lvresize_setup_aux(struct logical_volume *lv, struct lv_segment *mseg = last_seg(lv); lp->alloc = lv->alloc; + lp->percent = PERCENT_NONE; + lp->segtype = mseg->segtype; lp->mirrors = seg_is_mirrored(mseg) ? lv_mirror_count(lv) : 0; lp->resizefs = 0; lp->stripes = lp->mirrors ? mseg->area_count / lp->mirrors : 0; |