From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio M. Di Nitto Date: Wed, 04 Jul 2012 13:08:48 +0200 Subject: [Cluster-devel] [PATCH 4/5] rgmanager: Treat exit status 16 from umount as success In-Reply-To: <20120628195755.GA80020@redhat.com> References: <20120628195755.GA80020@redhat.com> Message-ID: <4FF42440.4080709@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 > --- > 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 >