From 8175df1912a5722c2e308dc27623063ac542f496 Mon Sep 17 00:00:00 2001 From: Bogdan Katynski Date: Wed, 28 Jun 2017 12:34:52 +0100 Subject: [PATCH] Remove VGs when cleaning LVM up in devstack This patch adds removing of the volume group before removing the loopback device and the backing file when performing LVM cleanup in unstack.sh Without this commit: unstack.sh removes logical volumes, removes the loopback devices and deletes the backing file but leaves a dangling volume group $ ./stack.sh && ./unstack.sh $ sudo vgs VG #PV #LV #SN Attr VSize VFree stack-volumes-default 1 0 0 wz--n- 10.01g 10.01g $ sudo losetup -a $ sudo vgremove stack-volumes-default /dev/loop0: lseek 4096 failed: Invalid argument vg_remove_mdas stack-volumes-default failed With this commit: unstack.sh removes volume groups after removing all logical volumes but before removing the loopback device and deleting the backing file Partial-Bug: 1441236 Change-Id: Id9c06fa50f6cad28764f5a3396f559cac9999649 --- lib/lvm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/lvm b/lib/lvm index 0cebd92f77..f0471816bf 100644 --- a/lib/lvm +++ b/lib/lvm @@ -35,7 +35,7 @@ BACKING_FILE_SUFFIX=-backing-file # _clean_lvm_volume_group removes all default LVM volumes # -# Usage: clean_lvm_volume_group $vg +# Usage: _clean_lvm_volume_group $vg function _clean_lvm_volume_group { local vg=$1 @@ -43,6 +43,16 @@ function _clean_lvm_volume_group { sudo lvremove -f $vg } +# _remove_lvm_volume_group removes the volume group +# +# Usage: _remove_lvm_volume_group $vg +function _remove_lvm_volume_group { + local vg=$1 + + # Remove the volume group + sudo vgremove -f $vg +} + # _clean_lvm_backing_file() removes the backing file of the # volume group # @@ -69,6 +79,7 @@ function clean_lvm_volume_group { local vg=$1 _clean_lvm_volume_group $vg + _remove_lvm_volume_group $vg # if there is no logical volume left, it's safe to attempt a cleanup # of the backing file if [[ -z "$(sudo lvs --noheadings -o lv_name $vg 2>/dev/null)" ]]; then