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 10-27-2010, 04:41 AM
"Fabio M. Di NItto"
 
Default rgmanager: Fix CIFS mount handling in netfs.sh

Patch looks sane to me (untested)

ACK

Fabio

On 10/26/2010 10:29 PM, Lon Hohberger wrote:
> Portions based on a patch by Eduardo Alvarenga.
>
> Resolves: rhbz#640676
>
> Signed-off-by: Lon Hohberger <lhh@redhat.com>
> ---
> rgmanager/src/resources/netfs.sh | 135 +++++++++++++++++++++-----------------
> 1 files changed, 76 insertions(+), 59 deletions(-)
>
> diff --git a/rgmanager/src/resources/netfs.sh b/rgmanager/src/resources/netfs.sh
> index 2cc6863..1a669d3 100755
> --- a/rgmanager/src/resources/netfs.sh
> +++ b/rgmanager/src/resources/netfs.sh
> @@ -196,7 +196,7 @@ verify_mountpoint()
> [ -d "$OCF_RESKEY_mountpoint" ] && return 0
>
> ocf_log err "$OCF_RESKEY_mountpoint is not a directory"
> -
> +
> return 1
> }
>
> @@ -392,7 +392,14 @@ startNFSFilesystem() {
> host=${OCF_RESKEY_host}
> exp=${OCF_RESKEY_export}
>
> - fullpath=$host:$exp
> + case $OCF_RESKEY_fstype in
> + cifs)
> + fullpath="//$host/$exp"
> + ;;
> + *)
> + fullpath=$host:$exp
> + ;;
> + esac
>
> #
> # Ensure we've got a valid directory
> @@ -445,12 +452,12 @@ startFilesystem: Creating mount point $mp for $fullpath"
> ocf_log debug "mount $fstype_option $mount_options $fullpath $mp"
>
> case $OCF_RESKEY_fstype in
> - nfs|nfs4)
> - mount -t $OCF_RESKEY_fstype $mount_options $host:$exp $mp
> - ;;
> - cifs)
> - mount -t $OCF_RESKEY_fstype $mount_options //$host/$exp $mp
> - ;;
> + cifs)
> + mount -t $OCF_RESKEY_fstype $mount_options //$host/$exp $mp
> + ;;
> + *) # nfs/nfs4
> + mount -t $OCF_RESKEY_fstype $mount_options $host:$exp $mp
> + ;;
> esac
>
> ret_val=$?
> @@ -459,7 +466,7 @@ startFilesystem: Creating mount point $mp for $fullpath"
> 'mount $fstype_option $mount_options $fullpath $mp' failed, error=$ret_val"
> return $FAIL
> fi
> -
> +
> return $SUCCESS
> }
>
> @@ -497,11 +504,19 @@ stopNFSFilesystem() {
> return $FAIL
> ;;
> esac
> -
> +
> #
> # Get the host/path
> #
> - fullpath="${OCF_RESKEY_host}:${OCF_RESKEY_export}"
> + case $OCF_RESKEY_fstype in
> + cifs)
> + fullpath="//${OCF_RESKEY_host}/${OCF_RESKEY_export}"
> + ;;
> + *) # nfs / nfs4
> + fullpath="${OCF_RESKEY_host}:${OCF_RESKEY_export}"
> + ;;
> + esac
> +
>
> #
> # Get the force unmount setting if there is a mount point.
> @@ -517,61 +532,54 @@ stopNFSFilesystem() {
> #
> # Unmount
> #
> - while [ ! "$done" ]; do
> - isMounted $fullpath $mp
> - case $? in
> - $NO)
> - ocf_log debug "$fullpath is not mounted"
> - umount_failed=
> - done=$YES
> - ;;
> - $FAIL)
> - return $FAIL
> - ;;
> - $YES)
> - case ${OCF_RESKEY_no_unmount} in
> - $YES_STR) no_umount="$YES" ;;
> - 1) no_umount="$YES" ;;
> - *) no_umount="" ;;
> - esac
> -
> - if [ "$no_umount" ]; then
> - ocf_log info "skipping unmount operation of $mp"
> - return $SUCCESS
> - fi
> + while [ ! "$done" ]; do
> + isMounted $fullpath $mp
> + case $? in
> + $NO)
> + ocf_log debug "$fullpath is not mounted"
> + umount_failed=
> + done=$YES
> + ;;
> + $FAIL)
> + return $FAIL
> + ;;
> + $YES)
> + case ${OCF_RESKEY_no_unmount} in
> + $YES_STR) no_umount="$YES" ;;
> + 1) no_umount="$YES" ;;
> + *) no_umount="" ;;
> + esac
>
> - sync; sync; sync
> - ocf_log info "unmounting $mp"
> + if [ "$no_umount" ]; then
> + ocf_log info "skipping unmount operation of $mp"
> + return $SUCCESS
> + fi
> +
> + sync; sync; sync
> + ocf_log info "unmounting $mp"
>
> umount $mp
> - if [ $? -eq 0 ]; then
> + if [ $? -eq 0 ]; then
> umount_failed=
> done=$YES
> continue
> - fi
> + fi
>
> - umount_failed=yes
> + umount_failed=yes
>
> - if [ "$force_umount" ]; then
> - if [ $try -eq 1 ]; then
> - fuser -TERM -kvm "$mp"
> - else
> - fuser -kvm "$mp"
> + if [ "$force_umount" ]; then
> + if [ $try -eq 1 ]; then
> + fuser -TERM -kvm "$mp"
> + else
> + fuser -kvm "$mp"
> + fi
> fi
> - fi
> -
>
> - if [ $try -ge $max_tries ]; then
> - done=$YES
> - else
> - sleep $sleep_time
> - let try=try+1
> - fi
> - ;;
> - *)
> - return $FAIL
> - ;;
> - esac
> + ;;
> + *)
> + return $FAIL
> + ;;
> + esac
>
> if [ $try -ge $max_tries ]; then
> done=$YES
> @@ -580,9 +588,9 @@ stopNFSFilesystem() {
> let try=try+1
> fi
> done # while
> +
> if [ -n "$umount_failed" ]; then
> ocf_log err "'umount $fullpath' failed ($mp), error=$ret_val"
> -
> return $FAIL
> fi
>
> @@ -618,9 +626,18 @@ stop)
> exit $?
> ;;
> status|monitor)
> - isMounted ${OCF_RESKEY_host}:${OCF_RESKEY_export}
> + case $OCF_RESKEY_fstype in
> + cifs)
> + isMounted //${OCF_RESKEY_host}/${OCF_RESKEY_export}
> ${OCF_RESKEY_mountpoint}
> - exit $?
> + exit $?
> + ;;
> + *) # nfs/nfs4
> + isMounted ${OCF_RESKEY_host}:${OCF_RESKEY_export}
> + ${OCF_RESKEY_mountpoint}
> + exit $?
> + ;;
> + esac
> ;;
> restart)
> stopNFSFilesystem
 

Thread Tools




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

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