FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 06-28-2012, 08:59 PM
Masatake YAMATO
 
Default rgmanager: Treat exit status 16 from umount as success

Hi,

> 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

I'm afraid of forgetting the meaning of 16 when I have to read this
code as part of my job. git may help me but repository will be moved
to somewhere in such case:-P

How do you think do like:

readonly fail_to_update_mtab=16
...
if [ $retval -eq 0 -o $retval -eq ${fail_to_update_mtab} ]; then

Masatake YAMATO


> 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
>
 
Old 07-04-2012, 11:08 AM
"Fabio M. Di Nitto"
 
Default rgmanager: Treat exit status 16 from umount as success

ACK, but please add Masatake YAMATO suggestion to the final patch.

Fabio

On 6/28/2012 9:57 PM, Ryan McCabe wrote:
> 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
>
 

Thread Tools




All times are GMT. The time now is 05:29 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org