#---------- common functions
+lvmunmapperdevice () {
+ # turns device=/dev/mapper/... into /dev/<group>/<volume>
+ case "$device" in
+ /dev/mapper/*)
+ device="`printf '%s' "$device" | perl -pe '
+ s,^/dev/mapper/,,;
+ die if m,/,;
+ s,\-\-,!,g;
+ s,\-,/,g;
+ s,\!,-,g;
+ s,^,/dev/,;
+ '`"
+ ;;
+ esac
+}
+
+lvmdevice2vgroup () {
+ vgroup="${device#/dev/}"
+ vgroup="${vgroup%/*}"
+}
+
+daft_sleep () {
+ sleep 5
+}
+
lvmdropcore () {
snmnt="$vardir/snap-mount"
+ daft_sleep
umount -v "$snmnt" || true
- test ! -d "$snmnt" || rmdir -- "$snmnt"
+ daft_sleep
+ test ! -d "$snmnt" || rmdir -- "$snmnt" || rm -f "$snmnt"
+ daft_sleep
set +e
old_lv_dev="$(readlink $vardir/snap-device)"
if [ $rc = 0 ]; then
set +e
- lvchange $lvm_lvtools_opts -a n $old_lv_dev
+ daft_sleep
lvremove -f $lvm_lvtools_opts $old_lv_dev
+ daft_sleep
set -e
rm $vardir/snap-device
fi
}
lvmextentscore1 () {
+ # vgroup must be set
vgdisplay_out="$(really vgdisplay -c "$vgroup")"
extents="$(printf "%s" "$vgdisplay_out" | awk -F: '{print $16}')"
extsize="$(printf "%s" "$vgdisplay_out" | awk -F: '{print $13}')"
}
lvmcreatecore1 () {
+ # vgroup must be set
lvpath="/dev/$vgroup/$lvm_lv"
ln -s -- "$lvpath" "$vardir"/snap-device
sync