summaryrefslogtreecommitdiff
path: root/scripts/fsadm.sh
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2010-11-01 14:08:51 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2010-11-01 14:08:51 +0000
commit4886fa2105a3cc55c75ca5c401c5267758702d2c (patch)
tree3a1abbfc8531156fa8d51ffdb9aea14e96701d53 /scripts/fsadm.sh
parent2bea18e5040d0628000889d06f5c9763a04773d1 (diff)
downloadlvm2-4886fa2105a3cc55c75ca5c401c5267758702d2c.tar.gz
Return different status code for fsadm check of mounted filesystem
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.
Diffstat (limited to 'scripts/fsadm.sh')
-rw-r--r--scripts/fsadm.sh14
1 files changed, 12 insertions, 2 deletions
diff --git a/scripts/fsadm.sh b/scripts/fsadm.sh
index c1e8fb182..b05f33e8d 100644
--- a/scripts/fsadm.sh
+++ b/scripts/fsadm.sh
@@ -23,6 +23,11 @@
# 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