1 # sourced by snap/lvm and snap/remountrocp
3 #---------- common arg parsing
12 lvm_lvtools_opts='-A n'
16 test ! -f /etc/chiark-backup/settings.sh || . /etc/chiark-backup/settings.sh
18 case "$nargs.$opmode" in
23 usage: .../$snapkind snap VARDIR DEV MOUNT
24 .../$snapkind drop VARDIR
30 #---------- common functions
32 lvmunmapperdevice () {
33 # turns device=/dev/mapper/... into /dev/<group>/<volume>
36 device="`printf '%s' "$device" | perl -pe '
49 vgroup="${device#/dev/}"
58 snmnt="$vardir/snap-mount"
60 umount -v "$snmnt" || true
62 test ! -d "$snmnt" || rmdir -- "$snmnt" || rm -f "$snmnt"
66 old_lv_dev="$(readlink $vardir/snap-device)"
73 lvremove -f $lvm_lvtools_opts $old_lv_dev
76 rm $vardir/snap-device
82 vgdisplay_out="$(really vgdisplay -c "$vgroup")"
83 extents="$(printf "%s" "$vgdisplay_out" | awk -F: '{print $16}')"
84 extsize="$(printf "%s" "$vgdisplay_out" | awk -F: '{print $13}')"
88 if [ $extents2 -lt $extents ]; then extents=$extents2; fi
89 lvm_lvsize_opts="-l $extents"
94 lvpath="/dev/$vgroup/$lvm_lv"
95 ln -s -- "$lvpath" "$vardir"/snap-device