]> git.openfabrics.org - ~emulex/tmp/compat-rdma/.git/commitdiff
Fixed openibd stop on OSes using systemd
authorVladimir Sokolovsky <vlad@mellanox.com>
Wed, 13 May 2015 10:14:18 +0000 (13:14 +0300)
committerVladimir Sokolovsky <vlad@mellanox.com>
Wed, 13 May 2015 11:51:27 +0000 (14:51 +0300)
The issue caused by truescale.cmds as it was sourced from openibd and messed up
environment variables causing systemd to skip the required operation.

issue: http://bugs.openfabrics.org/bugzilla/show_bug.cgi?id=2534

Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
compat-rdma.spec
ofed_scripts/openibd
ofed_scripts/truescale.cmds

index 27277e722630456374278e4befcda51836a2aad0..281541cec1195038bd0797435dbef9a1785e77d6 100755 (executable)
@@ -231,7 +231,7 @@ install -m 0755 $RPM_BUILD_DIR/%{_name}-%{_version}/ofed_scripts/ibscif-opt $RPM
 %endif
 
 %if %{build_qib}
-install -m 0644 $RPM_BUILD_DIR/%{_name}-%{_version}/ofed_scripts/truescale.cmds $RPM_BUILD_ROOT/%{RDMA_CONF_DIR}
+install -m 0755 $RPM_BUILD_DIR/%{_name}-%{_version}/ofed_scripts/truescale.cmds $RPM_BUILD_ROOT/%{RDMA_CONF_DIR}
 %endif
 
 %if %{build_ipoib}
index e09ef65316cde835f7bd402eedb1b37fa7513d61..a82f894044592fdc03185a16bced326f9a827d4b 100644 (file)
@@ -882,9 +882,9 @@ start()
         load_module ib_qib
         my_rc=$?
         if [ $my_rc -ne 0 ]; then
-                echo_failure $"Loading QLogic QIB driver: "
-       elif [ -s ${_truescale} ]; then
-                . ${_truescale} start
+            echo_failure $"Loading QLogic QIB driver: "
+        elif [ -x ${_truescale} ]; then
+            ${_truescale} start
         fi
         RC=$[ $RC + $my_rc ]
     fi
@@ -950,9 +950,9 @@ start()
         load_module ocrdma
         my_rc=$?
         if [ $my_rc -ne 0 ]; then
-                echo_failure $"Loading Emulex One Connect driver: "
-       elif [ -s ${_truescale} ]; then
-                . ${_truescale} start
+            echo_failure $"Loading Emulex One Connect driver: "
+        elif [ -x ${_truescale} ]; then
+            ${_truescale} start
         fi
         RC=$[ $RC + $my_rc ]
     fi
@@ -1227,8 +1227,8 @@ unload()
                     sleep 2
                     ;;
                 ib_qib)
-                    if [ -s ${_truescale} ]; then
-                        ${_truescale} stop
+                    if [ -x ${_truescale} ]; then
+                        ${_truescale} stop
                     fi
 
                     if [ -d /ipathfs ]; then
index 37d3bea126a9b7f9265f45a05a283450735c92ef..50160845be94170f59ece952ba6b9dfd7c64b340 100644 (file)
@@ -57,8 +57,10 @@ irqbalance_bin=/usr/sbin/irqbalance
 if [ -f $irqbalance_bin ]; then
     # Deal with different names for the irqbalance service on
     # different distros
-    service=$(rpm -ql $(rpm -qf $irqbalance_bin) 2>/dev/null | grep init.d)
-    service=$(basename $service)
+    service=$(rpm -ql $(rpm -qf $irqbalance_bin) 2>/dev/null | grep -E "init.d|systemd")
+    if [ -n "$service" ]; then
+        service=$(basename $service | sed -e "s/\.service//")
+    fi
 fi
 OPENIBD_CONFIG=${OPENIBD_CONFIG:-"/etc/infiniband/openib.conf"}
 CONFIG=$OPENIBD_CONFIG
@@ -470,7 +472,9 @@ set_irq_affinity()
        done | sort | uniq)
        banned=$(echo $tbanned)
        set_irqs_banned "$banned"
-       service ${service} start
+       if [ -n "${service}" ]; then
+               service ${service} start
+       fi
     fi
     return
 }
@@ -489,8 +493,8 @@ clean_irq_affinity()
     if [ ${balance} -eq 1 ]; then
        # stop irqbalance
        if [ -n "${service}" ]; then
-           service ${service} stop 2>/dev/null
-           [ ${?} -ne 0 ] && balance=0
+               service ${service} stop 2>/dev/null
+               [ ${?} -ne 0 ] && balance=0
        else
            balance=0
        fi
@@ -516,7 +520,9 @@ clean_irq_affinity()
     fi
 
     if [ ${balance} -eq 1 ]; then
-       ${service} start
+               if [ -n "${service}" ]; then
+                       ${service} start
+               fi
     fi
 }