[linux-lvm] Possible bug in expanding thinpool: lvextend doens't expand the top-level dm-linear device

M.H. Tsai mingnus at gmail.com
Wed Dec 23 09:50:40 UTC 2015

Hi All,

I'm running LVM2.2.02.138 on Ubuntu 14.04.  When I try to expand a
thinpool, I found that lvextend doesn't expand the top-level dm-linear
device of the thinpool. The following are the reproduce steps

# lvcreate vg1 --type thin-pool --thinpool tp1 --size 1g
--poolmetadataspare=n -Zn
# lvcreate vg1 --type thin --thinpool tp1 --virtualsize 100m --name lvol0
# lvextend vg1/tp1 --size +100m

After running lvextend, the table of vg1-tp1_tdata and vg1-tp1-tpool
are expanded, but the dm-linear table of vg1-tp1 remains unchanged.

I think that the function _lv_update_and_reload() erroneously operates
on the holder of of tp1, that is, lvol0. This might be caused by
commit fa64823, hence the subsequent actions runs on the lock_lv. The
verbose output also shows that the tree_action() is running on lvol0,
not tp1.

Creating PRELOAD tree for vg1/lvol0.
Creating SUSPEND tree for vg1/lvol0.
Creating ACTIVATE tree for vg1/lvol0.
Creating CLEAN tree for vg1/lvol0.

Is that a bug?

Ming-Hung Tsai

More information about the linux-lvm mailing list