[ewg] [PATCH OFED-1.4.1] openibd: handle NFS-RDMA deps

Jon Mason jon at opengridcomputing.com
Wed Apr 22 15:06:39 PDT 2009


There are new dependencies on the ib_core module from the NFS-RDMA
modules.  Since the NFS-RDMA modules are not unloaded in the current
version, the ib_core module cannot be removed and the openibd stop will
fail.

By stopping all of the NFS services and unloading any dependent modules,
the ib_core module can be unloaded and openibd can be successfully
stopped.

Signed-Off-By: Jon Mason <jon at opengridcomputing.com>
---

diff --git a/ofed_scripts/openibd b/ofed_scripts/openibd
index 4a79e2c..777a891 100755
--- a/ofed_scripts/openibd
+++ b/ofed_scripts/openibd
@@ -293,10 +293,10 @@ GEN1_UNLOAD_MODULES="ib_srp_target scsi_target ib_srp kdapltest_module ib_kdapl
 UNLOAD_MODULES="ib_mthca mlx4_ib ib_ipath ipath_core ib_ehca iw_nes iw_cxgb3 cxgb3"
 UNLOAD_MODULES="$UNLOAD_MODULES ib_ipoib ib_madeye ib_rds"
 UNLOAD_MODULES="$UNLOAD_MODULES rds ib_ucm kdapl ib_srp_target scsi_target ib_srpt ib_srp ib_iser ib_sdp"
-UNLOAD_MODULES="$UNLOAD_MODULES rdma_ucm rdma_cm ib_addr ib_cm ib_local_sa findex"
+UNLOAD_MODULES="$UNLOAD_MODULES rdma_ucm svcrdma xprtrdma rdma_cm ib_addr ib_cm ib_local_sa findex"
 UNLOAD_MODULES="$UNLOAD_MODULES ib_sa ib_uverbs ib_umad ib_mad ib_core"
 
-STATUS_MODULES="rdma_ucm ib_rds rds ib_srpt ib_srp qlgc_vnic ib_sdp rdma_cm ib_addr ib_local_sa findex ib_ipoib ib_ehca ib_ipath ipath_core mlx4_core mlx4_ib mlx4_en ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes"
+STATUS_MODULES="rdma_ucm ib_rds rds ib_srpt ib_srp qlgc_vnic ib_sdp svcrdma xprtrdma rdma_cm ib_addr ib_local_sa findex ib_ipoib ib_ehca ib_ipath ipath_core mlx4_core mlx4_ib mlx4_en ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes"
 
 ipoib_ha_pidfile=/var/run/ipoib_ha.pid
 srp_daemon_pidfile=/var/run/srp_daemon.pid
@@ -1297,11 +1297,28 @@ stop()
                 fi
         fi
 
-		if [ -d /sys/class/infiniband_qlgc_vnic/ ]; then
-                    if [ -x /etc/init.d/qlgc_vnic ]; then
+	if [ -d /sys/class/infiniband_qlgc_vnic/ ]; then
+		if [ -x /etc/init.d/qlgc_vnic ]; then
 			/etc/init.d/qlgc_vnic stop 2>&1 1>/dev/null
-                    fi
 		fi
+	fi
+
+	if [ -d  /sys/module/nfs ]; then
+		rmmod nfs > /dev/null 2>&1
+	fi
+
+	if [ -d  /sys/module/nfsd ]; then
+		if [ -x /etc/init.d/nfsserver ]; then
+			#For SLES 
+			/etc/init.d/nfsserver stop
+		else
+			#For RHEL
+			/etc/init.d/rpcidmapd stop
+			umount /proc/fs/nfsd
+		fi
+		/etc/init.d/nfs stop
+		rmmod nfsd  > /dev/null 2>&1
+	fi
 
         # Unload modules
         if [ "$UNLOAD_MODULES" != "" ]; then



More information about the ewg mailing list