File 0113-lio_node-Unload-iscsi_target_mod-correctly.patch of Package lio-utils.216

From 95042b812a10997cdc3e56ffe8c402168c3f19d5 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Tue, 9 Oct 2012 13:52:19 -0700
Subject: lio_node: Unload iscsi_target_mod correctly

config/iscsi doesn't need to exist, yet the module can be loaded.

(nab: Fix shutdown_lio_mod() to add missing 'if -ne' investor to
      work properly, and add some code to scripts/rc.target)

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Nicholas Bellinger <nab@risingtidesystems.com>
---
 lio-py/lio_node.py     | 17 +++++++++--------
 scripts/rc.target      |  2 +-
 scripts/rc.target.suse |  5 +++--
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/lio-py/lio_node.py b/lio-py/lio_node.py
index d1e562e..c7082e8 100755
--- a/lio-py/lio_node.py
+++ b/lio-py/lio_node.py
@@ -1198,10 +1198,9 @@ def lio_target_set_tpg_param(option, opt_str, value, parser):
 
 def lio_target_unload(option, opt_str, value, parser):
 
-	if not os.path.isdir(lio_root):
-		lio_err("Unable to access lio_root: " + lio_root)
-
-	iqn_root = os.listdir(lio_root)
+	iqn_root = ""
+	if os.path.isdir(lio_root):
+		iqn_root = os.listdir(lio_root)
 
 	# Loop through LIO-Target IQN list
 	for iqn in iqn_root:
@@ -1224,10 +1223,12 @@ def lio_target_unload(option, opt_str, value, parser):
 
 		__lio_target_del_iqn(None, None, iqn, None, 0)
 
-	rmdir_op = "rmdir " + lio_root
-	ret = os.system(rmdir_op)
-	if ret:
-		print "Unable to release lio_root: " + lio_root
+
+	if iqn_root:
+		rmdir_op = "rmdir " + lio_root
+		ret = os.system(rmdir_op)
+		if ret:
+			print "Unable to remove lio_root: " + lio_root
 
 	rmmod_op = "rmmod iscsi_target_mod"
 	ret = os.system(rmmod_op)
diff --git a/scripts/rc.target b/scripts/rc.target
index 7ad75a3..d5243e2 100644
--- a/scripts/rc.target
+++ b/scripts/rc.target
@@ -282,7 +282,7 @@ function shutdown_fabrics() {
 }
 
 function shutdown_lio_mod () {
-	if [ ! -d /sys/kernel/config/target/iscsi/ ]; then
+	if -ne lsmod | grep -q iscsi_target_mod ; then
 		return 0
 	fi
 
diff --git a/scripts/rc.target.suse b/scripts/rc.target.suse
index 5e49f8f..a3806fa 100644
--- a/scripts/rc.target.suse
+++ b/scripts/rc.target.suse
@@ -214,7 +214,7 @@ function shutdown_fabrics() {
 }
 
 function shutdown_lio_mod () {
-	if [ -d /sys/kernel/config/target/iscsi/ ]; then
+	if -ne lsmod | grep -q iscsi_target_mod ; then
 	    echo -n $"Unloading LIO-Target/ConfigFS fabric: "
 	    ${LIO_NODE} --unload
 	    rc_status -v
@@ -229,10 +229,11 @@ function unload_tcm_mod() {
 
 	echo -n $"Unloading target_core_mod/ConfigFS core: "
 	$TCM_NODE --unload
-	sleep 1
 	RETVAL=$?
 	if [ $RETVAL != 0 ] ; then
 	    rc_failed 1
+	else
+	    sleep 1
 	fi
 	rc_status -v
     fi
-- 
1.8.1.4

openSUSE Build Service is sponsored by