Blame 0011-shutdown-fixed-check_shutdown-loop.patch

Harald Hoyer f3160a
From f47e0234987e7e6cfb2439e90658cb5c3b8bdef8 Mon Sep 17 00:00:00 2001
Harald Hoyer f3160a
From: Harald Hoyer <harald@redhat.com>
Harald Hoyer f3160a
Date: Wed, 20 Jul 2011 21:11:36 +0200
Harald Hoyer f3160a
Subject: [PATCH] shutdown: fixed check_shutdown loop
Harald Hoyer f3160a
Harald Hoyer f3160a
---
Harald Hoyer f3160a
 modules.d/90dm/dm-shutdown.sh     |   11 ++++++-----
Harald Hoyer f3160a
 modules.d/90mdraid/md-shutdown.sh |    9 ++++++---
Harald Hoyer f3160a
 modules.d/99shutdown/shutdown     |   24 ++++++++++++++----------
Harald Hoyer f3160a
 3 files changed, 26 insertions(+), 18 deletions(-)
Harald Hoyer f3160a
Harald Hoyer f3160a
diff --git a/modules.d/90dm/dm-shutdown.sh b/modules.d/90dm/dm-shutdown.sh
Harald Hoyer f3160a
index 3e668f8..80d80d0 100644
Harald Hoyer f3160a
--- a/modules.d/90dm/dm-shutdown.sh
Harald Hoyer f3160a
+++ b/modules.d/90dm/dm-shutdown.sh
Harald Hoyer f3160a
@@ -3,13 +3,14 @@
Harald Hoyer f3160a
 # ex: ts=8 sw=4 sts=4 et filetype=sh
Harald Hoyer f3160a
 _do_dm_shutdown() {
Harald Hoyer f3160a
     local ret
Harald Hoyer f3160a
+    local final=$1
Harald Hoyer f3160a
     info "Disassembling device-mapper devices"
Harald Hoyer f3160a
     dmsetup -v remove_all
Harald Hoyer f3160a
     ret=$?
Harald Hoyer f3160a
-#info "dmsetup ls --tree"
Harald Hoyer f3160a
-#dmsetup ls --tree 2>&1 | vinfo
Harald Hoyer f3160a
+    if [ "x$final" != "x" ]; then
Harald Hoyer f3160a
+        info "dmsetup ls --tree"
Harald Hoyer f3160a
+        dmsetup ls --tree 2>&1 | vinfo
Harald Hoyer f3160a
+    fi
Harald Hoyer f3160a
     return $ret
Harald Hoyer f3160a
 }
Harald Hoyer f3160a
-
Harald Hoyer f3160a
-_do_dm_shutdown
Harald Hoyer f3160a
-
Harald Hoyer f3160a
+_do_dm_shutdown $1
Harald Hoyer f3160a
diff --git a/modules.d/90mdraid/md-shutdown.sh b/modules.d/90mdraid/md-shutdown.sh
Harald Hoyer f3160a
index aa89bf6..bc36166 100644
Harald Hoyer f3160a
--- a/modules.d/90mdraid/md-shutdown.sh
Harald Hoyer f3160a
+++ b/modules.d/90mdraid/md-shutdown.sh
Harald Hoyer f3160a
@@ -3,12 +3,15 @@
Harald Hoyer f3160a
 # ex: ts=8 sw=4 sts=4 et filetype=sh
Harald Hoyer f3160a
 _do_md_shutdown() {
Harald Hoyer f3160a
     local ret
Harald Hoyer f3160a
+    local final=$1
Harald Hoyer f3160a
     info "Disassembling mdraid devices."
Harald Hoyer f3160a
     mdadm -v --stop --scan 
Harald Hoyer f3160a
     ret=$?
Harald Hoyer f3160a
-#info "cat /proc/mdstat"
Harald Hoyer f3160a
-#    cat /proc/mdstat | vinfo
Harald Hoyer f3160a
+    if [ "x$final" != "x" ]; then
Harald Hoyer f3160a
+        info "cat /proc/mdstat"
Harald Hoyer f3160a
+        cat /proc/mdstat | vinfo
Harald Hoyer f3160a
+    fi
Harald Hoyer f3160a
     return $ret
Harald Hoyer f3160a
 }
Harald Hoyer f3160a
 
Harald Hoyer f3160a
-_do_md_shutdown
Harald Hoyer f3160a
+_do_md_shutdown $1
Harald Hoyer f3160a
diff --git a/modules.d/99shutdown/shutdown b/modules.d/99shutdown/shutdown
Harald Hoyer f3160a
index bff29b9..a31a95d 100755
Harald Hoyer f3160a
--- a/modules.d/99shutdown/shutdown
Harald Hoyer f3160a
+++ b/modules.d/99shutdown/shutdown
Harald Hoyer f3160a
@@ -64,21 +64,25 @@ while [ $_cnt -le 40 ]; do
Harald Hoyer f3160a
 done
Harald Hoyer f3160a
 [ $_cnt -ge 40 ] && umount_a
Harald Hoyer f3160a
 
Harald Hoyer f3160a
-check_finished() {
Harald Hoyer f3160a
-    local f
Harald Hoyer f3160a
-    for f in $hookdir/shutdown/*.sh; do
Harald Hoyer f3160a
-        [ -e "$f" ] || continue
Harald Hoyer f3160a
-        ( . "$f" ) || return 1
Harald Hoyer f3160a
+_check_shutdown() {
Harald Hoyer f3160a
+    local __f
Harald Hoyer f3160a
+    local __s=1
Harald Hoyer f3160a
+    for __f in $hookdir/shutdown/*.sh; do
Harald Hoyer f3160a
+        [ -e "$__f" ] || continue
Harald Hoyer f3160a
+        ( . "$__f" $1 ) 
Harald Hoyer f3160a
+        if [ $? -eq 0 ]; then 
Harald Hoyer f3160a
+            rm -f $__f
Harald Hoyer f3160a
+            __s=0
Harald Hoyer f3160a
+        fi
Harald Hoyer f3160a
     done
Harald Hoyer f3160a
-    return 0
Harald Hoyer f3160a
+    return $__s
Harald Hoyer f3160a
 }
Harald Hoyer f3160a
 
Harald Hoyer f3160a
 _cnt=0
Harald Hoyer f3160a
-while [ $_cnt -le 40 ]; do
Harald Hoyer f3160a
-    check_finished 2>/dev/null && break
Harald Hoyer f3160a
-    _cnt=$(($_cnt+1))
Harald Hoyer f3160a
+while _check_shutdown; do
Harald Hoyer f3160a
+:
Harald Hoyer f3160a
 done
Harald Hoyer f3160a
-[ $_cnt -ge 40 ] && check_finished 
Harald Hoyer f3160a
+_check_shutdown final
Harald Hoyer f3160a
 
Harald Hoyer f3160a
 getarg 'rd.break=shutdown' && emergency_shell -n cmdline "Break before shutdown"
Harald Hoyer f3160a
 [ "$1" = "reboot" ] && reboot -f -d -n --no-wall