[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Cluster-devel] [PATCH 4/5] rgmanager: Treat exit status 16 from umount as success



When the filesystem /etc lives on is completely full, umount will exit
with exit status 16 if the umount syscall succeeded but it was unable to write
a new mtab file because the disk is full. umount won't exit with status 16
under any other circumstances.

This patch changes the fs.sh, clusterfs.sh, and netfs.sh resource agents
to check treat both exit status 0 and exit status 16 as success.

Resolves: rhbz#819595

Signed-off-by: Ryan McCabe <rmccabe redhat com>
---
 rgmanager/src/resources/clusterfs.sh |    3 ++-
 rgmanager/src/resources/fs.sh        |    3 ++-
 rgmanager/src/resources/netfs.sh     |    3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/rgmanager/src/resources/clusterfs.sh b/rgmanager/src/resources/clusterfs.sh
index 49eb724..eae1ee0 100755
--- a/rgmanager/src/resources/clusterfs.sh
+++ b/rgmanager/src/resources/clusterfs.sh
@@ -793,7 +793,8 @@ stop: Could not match $OCF_RESKEY_device with a real device"
 			ocf_log info "unmounting $dev ($mp)"
 
 			umount $mp
-			if  [ $? -eq 0 ]; then
+			retval=$?
+			if  [ $retval -eq 0 -o $retval -eq 16 ]; then
 				umount_failed=
 				done=$YES
 				continue
diff --git a/rgmanager/src/resources/fs.sh b/rgmanager/src/resources/fs.sh
index a98cddc..5d6bc1b 100755
--- a/rgmanager/src/resources/fs.sh
+++ b/rgmanager/src/resources/fs.sh
@@ -1103,7 +1103,8 @@ stop: Could not match $OCF_RESKEY_device with a real device"
 
  			ocf_log info "unmounting $mp"
 			umount $mp
-			if  [ $? -eq 0 ]; then
+			retval=$?
+			if  [ $retval -eq 0 -o $retval -eq 16 ]; then
 				umount_failed=
 				done=$YES
 				continue
diff --git a/rgmanager/src/resources/netfs.sh b/rgmanager/src/resources/netfs.sh
index 837a4c4..9f0daa4 100755
--- a/rgmanager/src/resources/netfs.sh
+++ b/rgmanager/src/resources/netfs.sh
@@ -560,7 +560,8 @@ stopNFSFilesystem() {
 			ocf_log info "unmounting $mp"
 
                         umount $umount_flag $mp
-			if  [ $? -eq 0 ]; then
+			retval=$?
+			if  [ $retval -eq 0 -o $retval -eq 16 ]; then
                                 umount_failed=
                                 done=$YES
                                 continue
-- 
1.7.10.2


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]