+ case "${SNAP_DEV}" in
+ "")
+ # create a temp
+ mount -t tmpfs -o rw tmpfs "${MOUNTP}"
+ ;;
+ *)
+ if [ -b "${SNAP_DEV}" ]
+ then
+ try_mount "${SNAP_DEV}" "${MOUNTP}" rw
+ fi
+ ;;
+ esac
+}
+
+Do_snapshot ()
+{
+ case "${SNAP_TYPE}" in
+ squashfs)
+ echo "./tmp/exclude_list" > /tmp/exclude_list
+ ( cd "${SNAP_COW}" && find . -name '*.wh.*' >> /tmp/exclude_list )
+ mksquashfs "${SNAP_COW}" "${DEST}" -ef /tmp/exclude_list
+ rm /tmp/exclude_list
+ ;;
+
+ cpio)
+ ( cd "${SNAP_COW}" && find . -path '*.wh.*' -prune -o -print0 | cpio --quiet -o0 -H newc | gzip -9c > "${DEST}" ) || exit 1
+ ;;
+
+ ext2|ext3)
+ DU_DIM="$(du -ks ${SNAP_COW} | cut -f1)"
+ REAL_DIM="$(expr ${DU_DIM} + ${DU_DIM} / 20)" # Just 5% more to be sure, need something more sophistcated here...
+ genext2fs --size-in-blocks=${REAL_DIM} --reserved-blocks=0 --root="${SNAP_COW}" "${DEST}"
+ ;;
+
+ jffs2)
+ mkfs.jffs2 --root="${SNAP_COW}" --output="${DEST}"
+ ;;
+ esac