]> sourceware.org Git - lvm2.git/commitdiff
lvextend: fix resizing volumes of different segtype
authorZdenek Kabelac <zkabelac@redhat.com>
Mon, 11 Nov 2019 16:36:58 +0000 (17:36 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Mon, 11 Nov 2019 21:44:25 +0000 (22:44 +0100)
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.

lib/metadata/lv_manip.c

index ae103d31ab99316f197dac451c7269c5ba399881..b4daa5633bbecce92c16e8969dc072f35d9dc0c3 100644 (file)
@@ -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;
This page took 0.040451 seconds and 5 git commands to generate.