Fixed try_snap() umounting on error.
authorMarco Amadori <amadorim@vdavda.com>
Tue, 16 Sep 2008 09:35:01 +0000 (11:35 +0200)
committerDaniel Baumann <daniel@debian.org>
Wed, 9 Mar 2011 16:48:02 +0000 (17:48 +0100)
scripts/live

index 9f16749..572b367 100755 (executable)
@@ -889,30 +889,35 @@ try_snap ()
 
        if [ ! -z "${snapdata}" ]
        then
+               log_success_msg "found snapshot: ${snapdata}"
                snapdev="$(echo ${snapdata} | cut -f1 -d ' ')"
                snapback="$(echo ${snapdata} | cut -f2 -d ' ')"
                snapfile="$(echo ${snapdata} | cut -f3 -d ' ')"
 
+               RES=""
+
                if echo "${snapfile}" | grep -qs '\(squashfs\|ext2\|ext3\|jffs2\)'
                then
                        # squashfs, jffs2 or ext2/ext3 snapshot
                        dev=$(get_backing_device "${snapback}/${snapfile}")
 
-                       if ! do_snap_copy "${dev}" "${snap_mount}" "${snap_type}"
-                       then
-                               log_warning_msg "Impossible to include the ${snapfile} Snapshot"
-                               return 1
-                       fi
+                       do_snap_copy "${dev}" "${snap_mount}" "${snap_type}"
+                       RES=$?
                else
                        # cpio.gz snapshot
-                       if ! (cd "${snap_mount}" && zcat "${snapback}/${snapfile}" | cpio --extract --preserve-modification-time --no-absolute-filenames --sparse --unconditional --make-directories > /dev/null 2>&1)
-                       then
-                               log_warning_msg "Impossible to include the ${snapfile} Snapshot"
-                               return 1
-                       fi
+                       cd "${snap_mount}"
+                       zcat "${snapback}/${snapfile}" | cpio --extract --preserve-modification-time --no-absolute-filenames --sparse --unconditional --make-directories > /dev/null 2>&1
+                       RES=$?
+                       cd "${OLDPWD}"
                fi
 
                umount "${snapback}"
+
+               if [ "${RES}" != "0" ]
+               then
+                       log_warning_msg "Impossible to include the ${snapfile} Snapshot file"
+               fi
+
        else
                dev=$(find_cow_device "${snap_label}")