From 42952835dced08e427bf55572b7cd653c1479055 Mon Sep 17 00:00:00 2001 From: Bruno Faccini Date: Fri, 31 Oct 2014 01:59:51 +0100 Subject: [PATCH] LU-5830 scripts: use lustre_rmmod in lnet start/stop script In lnet's start/stop script stop phase, use lustre_rmmod instead to try to unload a static list/sequence of modules. Signed-off-by: Bruno Faccini Change-Id: Ie8584b32e4d7cd21de0ed18954aa38124485964d Reviewed-on: http://review.whamcloud.com/12513 Tested-by: Jenkins Reviewed-by: Andreas Dilger Reviewed-by: Brian J. Murrell Tested-by: Maloo --- lustre/scripts/lnet | 66 ++--------------------------------------------------- 1 file changed, 2 insertions(+), 64 deletions(-) diff --git a/lustre/scripts/lnet b/lustre/scripts/lnet index b02c74a..a98df4b 100644 --- a/lustre/scripts/lnet +++ b/lustre/scripts/lnet @@ -18,32 +18,6 @@ # Check for and source configuration file otherwise set defaults [ -f /etc/sysconfig/lnet ] && . /etc/sysconfig/lnet -declare -r TOP_MODULES=( \ - obdecho \ - llite \ - lustre \ - osc \ - lov \ - mds \ - mdc \ - mgs \ - mgc \ - ost \ - obdfilter \ - lquota \ - ptlrpc \ -) -declare -r BOTTOM_MODULES=( \ - ksocklnd \ - kqswlnd \ - ko2iblnd \ - obdclass \ - lnet \ - lvfs \ - libcfs \ - ldiskfs \ -) - declare -r awkprog='BEGIN { rc = -1 } { if ( $1 == module_name ) { rc = $3; exit; } } END { print rc }' @@ -78,44 +52,9 @@ run_postexec_check () fi } -remove_modules () -{ - local modules="${@}" - local ref_cnt - - for mod in $modules; do - ref_cnt=`/sbin/lsmod | awk "$awkprog" "module_name=$mod"` - if [ $ref_cnt -lt 0 ]; then - # module not loaded, skip it - continue - fi - if [ $ref_cnt -gt 0 ]; then - # module in use. maybe it just needs a few seconds - # after removal of previous modules. - sleep 5 - ref_cnt=`/sbin/lsmod | awk "$awkprog" module_name=$mod` - fi - if [ $ref_cnt -eq 0 ]; then - # unload the module - echo "Removing module $mod" - /sbin/rmmod $mod - if [ $? -ne 0 ]; then - echo "ERROR: Failed to remove module $mod." - return 1 - fi - else - # boo! module still in use. - echo "ERROR: Module $mod has non-zero reference count." - return 1 - fi - done - - return 0 -} - stop_lnet () { - local errmsg=`/usr/sbin/lctl network unconfigure 2>&1` + local errmsg=$(/usr/sbin/lctl network down 2>&1) if [ $? -gt 0 ]; then # The following error message means that lnet is already # unconfigured, and the modules are not loaded. @@ -201,9 +140,8 @@ case "$1" in ;; stop) run_preexec_check "stop" - remove_modules ${TOP_MODULES[*]} || exit 1 stop_lnet || exit 1 - remove_modules ${BOTTOM_MODULES[*]} || exit 1 + lustre_rmmod || exit 1 rm -f /var/lock/subsys/lnet run_postexec_check "stop" ;; -- 1.8.3.1