track and remove snapshots for clone
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 26 Jun 2014 06:53:26 +0000 (08:53 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 26 Jun 2014 06:53:26 +0000 (08:53 +0200)
sbin/lvcreate
sbin/lvremove

index 9e48c73..8633242 100755 (executable)
@@ -30,6 +30,7 @@ if echo $* | grep -q $EXTP_VG ; then
                zfs clone $EXTP_ZFS/$VOL_ORIGIN@snap $EXTP_ZFS/$VOL_NAME || true
                zfs set lv:s='s' $EXTP_ZFS/$VOL_NAME
                zfs set ganeti:originstname=$(VOL_NAME=$VOL_ORIGIN zfs_get ganeti:originstname) $EXTP_ZFS/$VOL_NAME
+               zfs set lv:origin=$VOL_ORIGIN $EXTP_ZFS/$VOL_NAME
                export VOL_NAME
                echo $VOL_NAME
                $dir/attach
index 1c19c25..5f7bdfa 100755 (executable)
@@ -12,9 +12,15 @@ if echo $* | grep -q $EXTP_VG ; then
                shift;
        done
 
+       origin=$(zfs_get lv:origin)
+
        # destroy snapshot and clone
        export VOL_NAME
-       $dir/remove 
+       $dir/remove
+       if [ ! -z "$origin" ] ; then
+               VOL_NAME=$origin@snap $dir/remove
+               zfs set lv:s='-' $EXTP_ZFS/$origin
+       fi
 else
        /sbin/lvm lvrename $*
 fi