target: Fix crash triggered by removing node ACL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



With tcm_mvsas creating tpg, creating acl, removing acl and removing
tpg triggers kernel crash during removing tpg.
With patch below crash disappears. Does patch make sense ?

Signed-off-by: Fubo Chen <fubo.chen@xxxxxxxxx>

---
 Documentation/target/tcm_mod_builder.py |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/Documentation/target/tcm_mod_builder.py
b/Documentation/target/tcm_mod_builder.py
index 89af6c7..3925481 100755
--- a/Documentation/target/tcm_mod_builder.py
+++ b/Documentation/target/tcm_mod_builder.py
@@ -57,6 +57,7 @@ def tcm_mod_build_FC_include(fabric_mod_dir_var,
fabric_mod_name):
 	buf += "	char nport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
 	buf += "	/* Returned by " + fabric_mod_name + "_make_nodeacl() */\n"
 	buf += "	struct se_node_acl se_node_acl;\n"
+	buf += "	struct se_portal_group *se_tpg;\n"
 	buf += "};\n"
 	buf += "\n"
 	buf += "struct " + fabric_mod_name + "_tpg {\n"
@@ -112,6 +113,7 @@ def tcm_mod_build_SAS_include(fabric_mod_dir_var,
fabric_mod_name):
 	buf += "	char iport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
 	buf += "	/* Returned by " + fabric_mod_name + "_make_nodeacl() */\n"
 	buf += "	struct se_node_acl se_node_acl;\n"
+	buf += "	struct se_portal_group *se_tpg;\n"
 	buf += "};\n\n"
 	buf += "struct " + fabric_mod_name + "_tpg {\n"
 	buf += "	/* SAS port target portal group tag for TCM */\n"
@@ -163,6 +165,7 @@ def
tcm_mod_build_iSCSI_include(fabric_mod_dir_var, fabric_mod_name):
 	buf += "	char iport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
 	buf += "	/* Returned by " + fabric_mod_name + "_make_nodeacl() */\n"
 	buf += "	struct se_node_acl se_node_acl;\n"
+	buf += "	struct se_portal_group *se_tpg;\n"
 	buf += "};\n\n"
 	buf += "struct " + fabric_mod_name + "_tpg {\n"
 	buf += "	/* iSCSI target portal group tag for TCM */\n"
@@ -278,6 +281,7 @@ def tcm_mod_build_configfs(proto_ident,
fabric_mod_dir_var, fabric_mod_name):
 	buf += "	 * Locate our struct " + fabric_mod_name + "_nacl and set
the FC Nport WWPN\n"
 	buf += "	 */\n"
 	buf += "	nacl = container_of(se_nacl, struct " + fabric_mod_name +
"_nacl, se_node_acl);\n"
+	buf += "	nacl->se_tpg = se_tpg;\n"

 	if proto_ident == "FC" or proto_ident == "SAS":
 		buf += "	nacl->" + fabric_mod_init_port + "_wwpn = wwpn;\n"
@@ -289,6 +293,7 @@ def tcm_mod_build_configfs(proto_ident,
fabric_mod_dir_var, fabric_mod_name):
 	buf += "{\n"
 	buf += "	struct " + fabric_mod_name + "_nacl *nacl = container_of(se_acl,\n"
 	buf += "				struct " + fabric_mod_name + "_nacl, se_node_acl);\n"
+	buf += "	core_tpg_del_initiator_node_acl(nacl->se_tpg, se_acl, 1);\n"
 	buf += "	kfree(nacl);\n"
 	buf += "}\n\n"

-- 
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux