]> sourceware.org Git - lvm2.git/commitdiff
Return different status code for fsadm check of mounted filesystem
authorZdenek Kabelac <zkabelac@redhat.com>
Mon, 1 Nov 2010 14:08:51 +0000 (14:08 +0000)
committerZdenek Kabelac <zkabelac@redhat.com>
Mon, 1 Nov 2010 14:08:51 +0000 (14:08 +0000)
Return status code 3 for fsadm check of mounted filesystem - used later with
lvresize update patch to better support online filesystem resize.

Also makes a more consistent user interruption and returns status code 2
in this case.

WHATS_NEW
scripts/fsadm.sh

index c882bfc14b3e61c4480018cfcdb3a53fd8a7c169..ce18a401b662319ef99957252a3f280c17d8bf72 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.76 - 
 ===================================
+  Modify fsadm to return different status code for check of mounted filesystem.
   Update VG metadata only once in vgchange when making multiple changes.
   Allow independent vgchange arguments to be used together.
   Automatically unmount invalidated snapshots in dmeventd.
index c1e8fb182d7af2943a8d907ad52c993460285280..b05f33e8d12d2b2b54b670fc38673ed2760707b9 100644 (file)
 # reiserfs: resize_reiserfs, reiserfstune
 # xfs: xfs_growfs, xfs_info
 #
+# Return values:
+#   0 success
+#   1 error
+#   2 break detected
+#   3 unsupported online filesystem check for given mounted fs
 
 TOOL=fsadm
 
@@ -126,6 +131,8 @@ cleanup() {
        IFS=$IFS_OLD
        trap 2
 
+       test "$1" -eq 2 && verbose "Break detected"
+
        if [ "$DO_LVRESIZE" -eq 2 ]; then
                # start LVRESIZE with the filesystem modification flag
                # and allow recursive call of fsadm
@@ -349,7 +356,6 @@ resize() {
        # if the size parameter is missing use device size
        #if [ -n "$NEWSIZE" -a $NEWSIZE <
        test -z "$NEWSIZE" && NEWSIZE=${DEVSIZE}b
-       trap cleanup 2
        IFS=$NL
        case "$FSTYPE" in
          "ext3"|"ext2"|"ext4") resize_ext $NEWSIZE ;;
@@ -365,7 +371,10 @@ resize() {
 ###################
 check() {
        detect_fs "$1"
-       detect_mounted && error "Cannot fsck device \"$VOLUME\", filesystem is mounted on $MOUNTED"
+       if detect_mounted ; then
+               verbose "Skipping filesystem check for device \"$VOLUME\" as the filesystem is mounted on $MOUNTED";
+               cleanup 3
+       fi
        case "$FSTYPE" in
          "xfs") dry $XFS_CHECK "$VOLUME" ;;
          *)    # check if executed from interactive shell environment
@@ -380,6 +389,7 @@ check() {
 # start point of this script
 # - parsing parameters
 #############################
+trap "cleanup 2" 2
 
 # test if we are not invoked recursively
 test -n "$FSADM_RUNNING" && exit 0
This page took 0.040754 seconds and 5 git commands to generate.