# HG changeset patch # User Matthias Förste # Date 1336138630 -7200 # Node ID b917ead1b6efcf7729dd4adac7c214a56e2f541a # Parent bd12aa54868e8ed05ce5402bb02546e2c0fbafde cleanup at exit; back to bash because dash is broken: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390433 diff -r bd12aa54868e -r b917ead1b6ef snapfsck.sh --- a/snapfsck.sh Fri May 04 13:10:26 2012 +0200 +++ b/snapfsck.sh Fri May 04 15:37:10 2012 +0200 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -e @@ -32,6 +32,17 @@ } +cleanup() { + + # if you have problems removing volumes then you may have the 'udisks' + # package installed; see: + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549691#74 + # https://bugzilla.redhat.com/show_bug.cgi?id=577798#c5 + # https://www.redhat.com/archives/linux-lvm/2010-August/msg00029.html + lvs "$vg/$lvs" >/dev/null 2>&1 && lvremove -f "$vg/$lvs" + +} + while getopts "s:" opt; do case $opt in s) @@ -50,21 +61,14 @@ lv=${p##*/} lvs="snap.${lv}" +trap cleanup EXIT + [ -n "${vg}" -a -n "${lv}" -a "${vg}" != "${p}" -a "${lv}" != "${p}" ] || usage d=$(date +%Y%m%d%H%M%S) lvcreate -n"$lvs" -L"$SNAPSIZE" -s "$vg/$lv" if e2fsck -fp "/dev/$vg/$lvs"; then tune2fs -C 1 -T "$d" "/dev/$vg/$lv" - waittime=1 # second - tries=60 - i=1 - # if you have problems removing volumes then you may have the 'udisks' - # package installed; see: - # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549691#74 - # https://bugzilla.redhat.com/show_bug.cgi?id=577798#c5 - # https://www.redhat.com/archives/linux-lvm/2010-August/msg00029.html - lvremove -f "$vg/$lvs" else - die fsck returned nonzero: this may indicate filesystem corruption on the origin volume. The snapshot has not been removed. + die fsck returned nonzero: this may indicate filesystem corruption on the origin volume. fi