These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / Documentation / target / tcm_mod_builder.py
index 2ba71ce..7d370c9 100755 (executable)
@@ -50,15 +50,6 @@ def tcm_mod_build_FC_include(fabric_mod_dir_var, fabric_mod_name):
        buf = "#define " + fabric_mod_name.upper() + "_VERSION  \"v0.1\"\n"
        buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
        buf += "\n"
-       buf += "struct " + fabric_mod_name + "_nacl {\n"
-       buf += "        /* Binary World Wide unique Port Name for FC Initiator Nport */\n"
-       buf += "        u64 nport_wwpn;\n"
-       buf += "        /* ASCII formatted WWPN for FC Initiator Nport */\n"
-       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 += "};\n"
-       buf += "\n"
        buf += "struct " + fabric_mod_name + "_tpg {\n"
        buf += "        /* FC lport target portal group tag for TCM */\n"
        buf += "        u16 lport_tpgt;\n"
@@ -69,8 +60,6 @@ def tcm_mod_build_FC_include(fabric_mod_dir_var, fabric_mod_name):
        buf += "};\n"
        buf += "\n"
        buf += "struct " + fabric_mod_name + "_lport {\n"
-       buf += "        /* SCSI protocol the lport is providing */\n"
-       buf += "        u8 lport_proto_id;\n"
        buf += "        /* Binary World Wide unique Port Name for FC Target Lport */\n"
        buf += "        u64 lport_wwpn;\n"
        buf += "        /* ASCII formatted WWPN for FC Target Lport */\n"
@@ -105,14 +94,6 @@ def tcm_mod_build_SAS_include(fabric_mod_dir_var, fabric_mod_name):
        buf = "#define " + fabric_mod_name.upper() + "_VERSION  \"v0.1\"\n"
        buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
        buf += "\n"
-       buf += "struct " + fabric_mod_name + "_nacl {\n"
-       buf += "        /* Binary World Wide unique Port Name for SAS Initiator port */\n"
-       buf += "        u64 iport_wwpn;\n"
-       buf += "        /* ASCII formatted WWPN for Sas Initiator port */\n"
-       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 += "};\n\n"
        buf += "struct " + fabric_mod_name + "_tpg {\n"
        buf += "        /* SAS port target portal group tag for TCM */\n"
        buf += "        u16 tport_tpgt;\n"
@@ -122,8 +103,6 @@ def tcm_mod_build_SAS_include(fabric_mod_dir_var, fabric_mod_name):
        buf += "        struct se_portal_group se_tpg;\n"
        buf += "};\n\n"
        buf += "struct " + fabric_mod_name + "_tport {\n"
-       buf += "        /* SCSI protocol the tport is providing */\n"
-       buf += "        u8 tport_proto_id;\n"
        buf += "        /* Binary World Wide unique Port Name for SAS Target port */\n"
        buf += "        u64 tport_wwpn;\n"
        buf += "        /* ASCII formatted WWPN for SAS Target port */\n"
@@ -158,12 +137,6 @@ def tcm_mod_build_iSCSI_include(fabric_mod_dir_var, fabric_mod_name):
        buf = "#define " + fabric_mod_name.upper() + "_VERSION  \"v0.1\"\n"
        buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
        buf += "\n"
-       buf += "struct " + fabric_mod_name + "_nacl {\n"
-       buf += "        /* ASCII formatted InitiatorName */\n"
-       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 += "};\n\n"
        buf += "struct " + fabric_mod_name + "_tpg {\n"
        buf += "        /* iSCSI target portal group tag for TCM */\n"
        buf += "        u16 tport_tpgt;\n"
@@ -173,8 +146,6 @@ def tcm_mod_build_iSCSI_include(fabric_mod_dir_var, fabric_mod_name):
        buf += "        struct se_portal_group se_tpg;\n"
        buf += "};\n\n"
        buf += "struct " + fabric_mod_name + "_tport {\n"
-       buf += "        /* SCSI protocol the tport is providing */\n"
-       buf += "        u8 tport_proto_id;\n"
        buf += "        /* ASCII formatted TargetName for IQN */\n"
        buf += "        char tport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
        buf += "        /* Returned by " + fabric_mod_name + "_make_tport() */\n"
@@ -228,65 +199,15 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
        buf += "#include <linux/string.h>\n"
        buf += "#include <linux/configfs.h>\n"
        buf += "#include <linux/ctype.h>\n"
-       buf += "#include <asm/unaligned.h>\n\n"
+       buf += "#include <asm/unaligned.h>\n"
+       buf += "#include <scsi/scsi_proto.h>\n\n"
        buf += "#include <target/target_core_base.h>\n"
        buf += "#include <target/target_core_fabric.h>\n"
-       buf += "#include <target/target_core_fabric_configfs.h>\n"
-       buf += "#include <target/target_core_configfs.h>\n"
-       buf += "#include <target/configfs_macros.h>\n\n"
        buf += "#include \"" + fabric_mod_name + "_base.h\"\n"
        buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"
 
        buf += "static const struct target_core_fabric_ops " + fabric_mod_name + "_ops;\n\n"
 
-       buf += "static struct se_node_acl *" + fabric_mod_name + "_make_nodeacl(\n"
-       buf += "        struct se_portal_group *se_tpg,\n"
-       buf += "        struct config_group *group,\n"
-       buf += "        const char *name)\n"
-       buf += "{\n"
-       buf += "        struct se_node_acl *se_nacl, *se_nacl_new;\n"
-       buf += "        struct " + fabric_mod_name + "_nacl *nacl;\n"
-
-       if proto_ident == "FC" or proto_ident == "SAS":
-               buf += "        u64 wwpn = 0;\n"
-
-       buf += "        u32 nexus_depth;\n\n"
-       buf += "        /* " + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"
-       buf += "                return ERR_PTR(-EINVAL); */\n"
-       buf += "        se_nacl_new = " + fabric_mod_name + "_alloc_fabric_acl(se_tpg);\n"
-       buf += "        if (!se_nacl_new)\n"
-       buf += "                return ERR_PTR(-ENOMEM);\n"
-       buf += "//#warning FIXME: Hardcoded nexus depth in " + fabric_mod_name + "_make_nodeacl()\n"
-       buf += "        nexus_depth = 1;\n"
-       buf += "        /*\n"
-       buf += "         * se_nacl_new may be released by core_tpg_add_initiator_node_acl()\n"
-       buf += "         * when converting a NodeACL from demo mode -> explict\n"
-       buf += "         */\n"
-       buf += "        se_nacl = core_tpg_add_initiator_node_acl(se_tpg, se_nacl_new,\n"
-       buf += "                                name, nexus_depth);\n"
-       buf += "        if (IS_ERR(se_nacl)) {\n"
-       buf += "                " + fabric_mod_name + "_release_fabric_acl(se_tpg, se_nacl_new);\n"
-       buf += "                return se_nacl;\n"
-       buf += "        }\n"
-       buf += "        /*\n"
-       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"
-
-       if proto_ident == "FC" or proto_ident == "SAS":
-               buf += "        nacl->" + fabric_mod_init_port + "_wwpn = wwpn;\n"
-
-       buf += "        /* " + fabric_mod_name + "_format_wwn(&nacl->" + fabric_mod_init_port + "_name[0], " + fabric_mod_name.upper() + "_NAMELEN, wwpn); */\n\n"
-       buf += "        return se_nacl;\n"
-       buf += "}\n\n"
-       buf += "static void " + fabric_mod_name + "_drop_nodeacl(struct se_node_acl *se_acl)\n"
-       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(se_acl->se_tpg, se_acl, 1);\n"
-       buf += "        kfree(nacl);\n"
-       buf += "}\n\n"
-
        buf += "static struct se_portal_group *" + fabric_mod_name + "_make_tpg(\n"
        buf += "        struct se_wwn *wwn,\n"
        buf += "        struct config_group *group,\n"
@@ -308,9 +229,14 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
        buf += "        }\n"
        buf += "        tpg->" + fabric_mod_port + " = " + fabric_mod_port + ";\n"
        buf += "        tpg->" + fabric_mod_port + "_tpgt = tpgt;\n\n"
-       buf += "        ret = core_tpg_register(&" + fabric_mod_name + "_ops, wwn,\n"
-       buf += "                                &tpg->se_tpg, tpg,\n"
-       buf += "                                TRANSPORT_TPG_TYPE_NORMAL);\n"
+
+       if proto_ident == "FC":
+               buf += "        ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_FCP);\n"
+       elif proto_ident == "SAS":
+               buf += "        ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_SAS);\n"
+       elif proto_ident == "iSCSI":
+               buf += "        ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_ISCSI);\n"
+
        buf += "        if (ret < 0) {\n"
        buf += "                kfree(tpg);\n"
        buf += "                return NULL;\n"
@@ -355,38 +281,17 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
        buf += "                                struct " + fabric_mod_name + "_" + fabric_mod_port + ", " + fabric_mod_port + "_wwn);\n"
        buf += "        kfree(" + fabric_mod_port + ");\n"
        buf += "}\n\n"
-       buf += "static ssize_t " + fabric_mod_name + "_wwn_show_attr_version(\n"
-       buf += "        struct target_fabric_configfs *tf,\n"
-       buf += "        char *page)\n"
-       buf += "{\n"
-       buf += "        return sprintf(page, \"" + fabric_mod_name.upper() + " fabric module %s on %s/%s\"\n"
-       buf += "                \"on \"UTS_RELEASE\"\\n\", " + fabric_mod_name.upper() + "_VERSION, utsname()->sysname,\n"
-       buf += "                utsname()->machine);\n"
-       buf += "}\n\n"
-       buf += "TF_WWN_ATTR_RO(" + fabric_mod_name + ", version);\n\n"
-       buf += "static struct configfs_attribute *" + fabric_mod_name + "_wwn_attrs[] = {\n"
-       buf += "        &" + fabric_mod_name + "_wwn_version.attr,\n"
-       buf += "        NULL,\n"
-       buf += "};\n\n"
 
        buf += "static const struct target_core_fabric_ops " + fabric_mod_name + "_ops = {\n"
        buf += "        .module                         = THIS_MODULE,\n"
-       buf += "        .name                           = " + fabric_mod_name + ",\n"
-       buf += "        .get_fabric_proto_ident         = " + fabric_mod_name + "_get_fabric_proto_ident,\n"
+       buf += "        .name                           = \"" + fabric_mod_name + "\",\n"
        buf += "        .get_fabric_name                = " + fabric_mod_name + "_get_fabric_name,\n"
-       buf += "        .get_fabric_proto_ident         = " + fabric_mod_name + "_get_fabric_proto_ident,\n"
        buf += "        .tpg_get_wwn                    = " + fabric_mod_name + "_get_fabric_wwn,\n"
        buf += "        .tpg_get_tag                    = " + fabric_mod_name + "_get_tag,\n"
-       buf += "        .tpg_get_default_depth          = " + fabric_mod_name + "_get_default_depth,\n"
-       buf += "        .tpg_get_pr_transport_id        = " + fabric_mod_name + "_get_pr_transport_id,\n"
-       buf += "        .tpg_get_pr_transport_id_len    = " + fabric_mod_name + "_get_pr_transport_id_len,\n"
-       buf += "        .tpg_parse_pr_out_transport_id  = " + fabric_mod_name + "_parse_pr_out_transport_id,\n"
        buf += "        .tpg_check_demo_mode            = " + fabric_mod_name + "_check_false,\n"
        buf += "        .tpg_check_demo_mode_cache      = " + fabric_mod_name + "_check_true,\n"
        buf += "        .tpg_check_demo_mode_write_protect = " + fabric_mod_name + "_check_true,\n"
        buf += "        .tpg_check_prod_mode_write_protect = " + fabric_mod_name + "_check_false,\n"
-       buf += "        .tpg_alloc_fabric_acl           = " + fabric_mod_name + "_alloc_fabric_acl,\n"
-       buf += "        .tpg_release_fabric_acl         = " + fabric_mod_name + "_release_fabric_acl,\n"
        buf += "        .tpg_get_inst_index             = " + fabric_mod_name + "_tpg_get_inst_index,\n"
        buf += "        .release_cmd                    = " + fabric_mod_name + "_release_cmd,\n"
        buf += "        .shutdown_session               = " + fabric_mod_name + "_shutdown_session,\n"
@@ -396,7 +301,6 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
        buf += "        .write_pending                  = " + fabric_mod_name + "_write_pending,\n"
        buf += "        .write_pending_status           = " + fabric_mod_name + "_write_pending_status,\n"
        buf += "        .set_default_node_attributes    = " + fabric_mod_name + "_set_default_node_attrs,\n"
-       buf += "        .get_task_tag                   = " + fabric_mod_name + "_get_task_tag,\n"
        buf += "        .get_cmd_state                  = " + fabric_mod_name + "_get_cmd_state,\n"
        buf += "        .queue_data_in                  = " + fabric_mod_name + "_queue_data_in,\n"
        buf += "        .queue_status                   = " + fabric_mod_name + "_queue_status,\n"
@@ -409,24 +313,16 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
        buf += "        .fabric_drop_wwn                = " + fabric_mod_name + "_drop_" + fabric_mod_port + ",\n"
        buf += "        .fabric_make_tpg                = " + fabric_mod_name + "_make_tpg,\n"
        buf += "        .fabric_drop_tpg                = " + fabric_mod_name + "_drop_tpg,\n"
-       buf += "        .fabric_post_link               = NULL,\n"
-       buf += "        .fabric_pre_unlink              = NULL,\n"
-       buf += "        .fabric_make_np                 = NULL,\n"
-       buf += "        .fabric_drop_np                 = NULL,\n"
-       buf += "        .fabric_make_nodeacl            = " + fabric_mod_name + "_make_nodeacl,\n"
-       buf += "        .fabric_drop_nodeacl            = " + fabric_mod_name + "_drop_nodeacl,\n"
-       buf += "\n"
-       buf += "        .tfc_wwn_attrs                  = " + fabric_mod_name + "_wwn_attrs;\n"
        buf += "};\n\n"
 
        buf += "static int __init " + fabric_mod_name + "_init(void)\n"
        buf += "{\n"
-       buf += "        return target_register_template(" + fabric_mod_name + "_ops);\n"
+       buf += "        return target_register_template(&" + fabric_mod_name + "_ops);\n"
        buf += "};\n\n"
 
        buf += "static void __exit " + fabric_mod_name + "_exit(void)\n"
        buf += "{\n"
-       buf += "        target_unregister_template(" + fabric_mod_name + "_ops);\n"
+       buf += "        target_unregister_template(&" + fabric_mod_name + "_ops);\n"
        buf += "};\n\n"
 
        buf += "MODULE_DESCRIPTION(\"" + fabric_mod_name.upper() + " series fabric driver\");\n"
@@ -503,14 +399,10 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
        buf += "#include <linux/string.h>\n"
        buf += "#include <linux/ctype.h>\n"
        buf += "#include <asm/unaligned.h>\n"
-       buf += "#include <scsi/scsi.h>\n"
-       buf += "#include <scsi/scsi_host.h>\n"
-       buf += "#include <scsi/scsi_device.h>\n"
-       buf += "#include <scsi/scsi_cmnd.h>\n"
-       buf += "#include <scsi/libfc.h>\n\n"
+       buf += "#include <scsi/scsi_common.h>\n"
+       buf += "#include <scsi/scsi_proto.h>\n"
        buf += "#include <target/target_core_base.h>\n"
        buf += "#include <target/target_core_fabric.h>\n"
-       buf += "#include <target/target_core_configfs.h>\n\n"
        buf += "#include \"" + fabric_mod_name + "_base.h\"\n"
        buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"
 
@@ -542,35 +434,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
                        bufi += "char *" + fabric_mod_name + "_get_fabric_name(void);\n"
                        continue
 
-               if re.search('get_fabric_proto_ident', fo):
-                       buf += "u8 " + fabric_mod_name + "_get_fabric_proto_ident(struct se_portal_group *se_tpg)\n"
-                       buf += "{\n"
-                       buf += "        struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
-                       buf += "                                struct " + fabric_mod_name + "_tpg, se_tpg);\n"
-                       buf += "        struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
-                       buf += "        u8 proto_id;\n\n"
-                       buf += "        switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
-                       if proto_ident == "FC":
-                               buf += "        case SCSI_PROTOCOL_FCP:\n"
-                               buf += "        default:\n"
-                               buf += "                proto_id = fc_get_fabric_proto_ident(se_tpg);\n"
-                               buf += "                break;\n"
-                       elif proto_ident == "SAS":
-                               buf += "        case SCSI_PROTOCOL_SAS:\n"
-                               buf += "        default:\n"
-                               buf += "                proto_id = sas_get_fabric_proto_ident(se_tpg);\n"
-                               buf += "                break;\n"
-                       elif proto_ident == "iSCSI":
-                               buf += "        case SCSI_PROTOCOL_ISCSI:\n"
-                               buf += "        default:\n"
-                               buf += "                proto_id = iscsi_get_fabric_proto_ident(se_tpg);\n"
-                               buf += "                break;\n"
-
-                       buf += "        }\n\n"
-                       buf += "        return proto_id;\n"
-                       buf += "}\n\n"
-                       bufi += "u8 " + fabric_mod_name + "_get_fabric_proto_ident(struct se_portal_group *);\n"
-
                if re.search('get_wwn', fo):
                        buf += "char *" + fabric_mod_name + "_get_fabric_wwn(struct se_portal_group *se_tpg)\n"
                        buf += "{\n"
@@ -590,150 +453,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
                        buf += "}\n\n"
                        bufi += "u16 " + fabric_mod_name + "_get_tag(struct se_portal_group *);\n"
 
-               if re.search('get_default_depth', fo):
-                       buf += "u32 " + fabric_mod_name + "_get_default_depth(struct se_portal_group *se_tpg)\n"
-                       buf += "{\n"
-                       buf += "        return 1;\n"
-                       buf += "}\n\n"
-                       bufi += "u32 " + fabric_mod_name + "_get_default_depth(struct se_portal_group *);\n"
-
-               if re.search('get_pr_transport_id\)\(', fo):
-                       buf += "u32 " + fabric_mod_name + "_get_pr_transport_id(\n"
-                       buf += "        struct se_portal_group *se_tpg,\n"
-                       buf += "        struct se_node_acl *se_nacl,\n"
-                       buf += "        struct t10_pr_registration *pr_reg,\n"
-                       buf += "        int *format_code,\n"
-                       buf += "        unsigned char *buf)\n"
-                       buf += "{\n"
-                       buf += "        struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
-                       buf += "                                struct " + fabric_mod_name + "_tpg, se_tpg);\n"
-                       buf += "        struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
-                       buf += "        int ret = 0;\n\n"
-                       buf += "        switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
-                       if proto_ident == "FC":
-                               buf += "        case SCSI_PROTOCOL_FCP:\n"
-                               buf += "        default:\n"
-                               buf += "                ret = fc_get_pr_transport_id(se_tpg, se_nacl, pr_reg,\n"
-                               buf += "                                        format_code, buf);\n"
-                               buf += "                break;\n"
-                       elif proto_ident == "SAS":
-                               buf += "        case SCSI_PROTOCOL_SAS:\n"
-                               buf += "        default:\n"
-                               buf += "                ret = sas_get_pr_transport_id(se_tpg, se_nacl, pr_reg,\n"
-                               buf += "                                        format_code, buf);\n"
-                               buf += "                break;\n"
-                       elif proto_ident == "iSCSI":
-                               buf += "        case SCSI_PROTOCOL_ISCSI:\n"
-                               buf += "        default:\n"
-                               buf += "                ret = iscsi_get_pr_transport_id(se_tpg, se_nacl, pr_reg,\n"
-                               buf += "                                        format_code, buf);\n"
-                               buf += "                break;\n"
-
-                       buf += "        }\n\n"
-                       buf += "        return ret;\n"
-                       buf += "}\n\n"
-                       bufi += "u32 " + fabric_mod_name + "_get_pr_transport_id(struct se_portal_group *,\n"
-                       bufi += "                       struct se_node_acl *, struct t10_pr_registration *,\n"
-                       bufi += "                       int *, unsigned char *);\n"
-
-               if re.search('get_pr_transport_id_len\)\(', fo):
-                       buf += "u32 " + fabric_mod_name + "_get_pr_transport_id_len(\n"
-                       buf += "        struct se_portal_group *se_tpg,\n"
-                       buf += "        struct se_node_acl *se_nacl,\n"
-                       buf += "        struct t10_pr_registration *pr_reg,\n"
-                       buf += "        int *format_code)\n"
-                       buf += "{\n"
-                       buf += "        struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
-                       buf += "                                struct " + fabric_mod_name + "_tpg, se_tpg);\n"
-                       buf += "        struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
-                       buf += "        int ret = 0;\n\n"
-                       buf += "        switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
-                       if proto_ident == "FC":
-                               buf += "        case SCSI_PROTOCOL_FCP:\n"
-                               buf += "        default:\n"
-                               buf += "                ret = fc_get_pr_transport_id_len(se_tpg, se_nacl, pr_reg,\n"
-                               buf += "                                        format_code);\n"
-                               buf += "                break;\n"
-                       elif proto_ident == "SAS":
-                               buf += "        case SCSI_PROTOCOL_SAS:\n"
-                               buf += "        default:\n"
-                               buf += "                ret = sas_get_pr_transport_id_len(se_tpg, se_nacl, pr_reg,\n"
-                               buf += "                                        format_code);\n"
-                               buf += "                break;\n"
-                       elif proto_ident == "iSCSI":
-                               buf += "        case SCSI_PROTOCOL_ISCSI:\n"
-                               buf += "        default:\n"
-                               buf += "                ret = iscsi_get_pr_transport_id_len(se_tpg, se_nacl, pr_reg,\n"
-                               buf += "                                        format_code);\n"
-                               buf += "                break;\n"
-
-
-                       buf += "        }\n\n"
-                       buf += "        return ret;\n"
-                       buf += "}\n\n"
-                       bufi += "u32 " + fabric_mod_name + "_get_pr_transport_id_len(struct se_portal_group *,\n"
-                       bufi += "                       struct se_node_acl *, struct t10_pr_registration *,\n"
-                       bufi += "                       int *);\n"
-
-               if re.search('parse_pr_out_transport_id\)\(', fo):
-                       buf += "char *" + fabric_mod_name + "_parse_pr_out_transport_id(\n"
-                       buf += "        struct se_portal_group *se_tpg,\n"
-                       buf += "        const char *buf,\n"
-                       buf += "        u32 *out_tid_len,\n"
-                       buf += "        char **port_nexus_ptr)\n"
-                       buf += "{\n"
-                       buf += "        struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
-                       buf += "                                struct " + fabric_mod_name + "_tpg, se_tpg);\n"
-                       buf += "        struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
-                       buf += "        char *tid = NULL;\n\n"
-                       buf += "        switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
-                       if proto_ident == "FC":
-                               buf += "        case SCSI_PROTOCOL_FCP:\n"
-                               buf += "        default:\n"
-                               buf += "                tid = fc_parse_pr_out_transport_id(se_tpg, buf, out_tid_len,\n"
-                               buf += "                                        port_nexus_ptr);\n"
-                       elif proto_ident == "SAS":
-                               buf += "        case SCSI_PROTOCOL_SAS:\n"
-                               buf += "        default:\n"
-                               buf += "                tid = sas_parse_pr_out_transport_id(se_tpg, buf, out_tid_len,\n"
-                               buf += "                                        port_nexus_ptr);\n"
-                       elif proto_ident == "iSCSI":
-                               buf += "        case SCSI_PROTOCOL_ISCSI:\n"
-                               buf += "        default:\n"
-                               buf += "                tid = iscsi_parse_pr_out_transport_id(se_tpg, buf, out_tid_len,\n"
-                               buf += "                                        port_nexus_ptr);\n"
-
-                       buf += "        }\n\n"
-                       buf += "        return tid;\n"
-                       buf += "}\n\n"
-                       bufi += "char *" + fabric_mod_name + "_parse_pr_out_transport_id(struct se_portal_group *,\n"
-                       bufi += "                       const char *, u32 *, char **);\n"
-
-               if re.search('alloc_fabric_acl\)\(', fo):
-                       buf += "struct se_node_acl *" + fabric_mod_name + "_alloc_fabric_acl(struct se_portal_group *se_tpg)\n"
-                       buf += "{\n"
-                       buf += "        struct " + fabric_mod_name + "_nacl *nacl;\n\n"
-                       buf += "        nacl = kzalloc(sizeof(struct " + fabric_mod_name + "_nacl), GFP_KERNEL);\n"
-                       buf += "        if (!nacl) {\n"
-                       buf += "                printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_nacl\\n\");\n"
-                       buf += "                return NULL;\n"
-                       buf += "        }\n\n"
-                       buf += "        return &nacl->se_node_acl;\n"
-                       buf += "}\n\n"
-                       bufi += "struct se_node_acl *" + fabric_mod_name + "_alloc_fabric_acl(struct se_portal_group *);\n"
-
-               if re.search('release_fabric_acl\)\(', fo):
-                       buf += "void " + fabric_mod_name + "_release_fabric_acl(\n"
-                       buf += "        struct se_portal_group *se_tpg,\n"
-                       buf += "        struct se_node_acl *se_nacl)\n"
-                       buf += "{\n"
-                       buf += "        struct " + fabric_mod_name + "_nacl *nacl = container_of(se_nacl,\n"
-                       buf += "                        struct " + fabric_mod_name + "_nacl, se_node_acl);\n"
-                       buf += "        kfree(nacl);\n"
-                       buf += "}\n\n"
-                       bufi += "void " + fabric_mod_name + "_release_fabric_acl(struct se_portal_group *,\n"
-                       bufi += "                       struct se_node_acl *);\n"
-
                if re.search('tpg_get_inst_index\)\(', fo):
                        buf += "u32 " + fabric_mod_name + "_tpg_get_inst_index(struct se_portal_group *se_tpg)\n"
                        buf += "{\n"
@@ -790,13 +509,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
                        buf += "}\n\n"
                        bufi += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *);\n"
 
-               if re.search('get_task_tag\)\(', fo):
-                       buf += "u32 " + fabric_mod_name + "_get_task_tag(struct se_cmd *se_cmd)\n"
-                       buf += "{\n"
-                       buf += "        return 0;\n"
-                       buf += "}\n\n"
-                       bufi += "u32 " + fabric_mod_name + "_get_task_tag(struct se_cmd *);\n"
-
                if re.search('get_cmd_state\)\(', fo):
                        buf += "int " + fabric_mod_name + "_get_cmd_state(struct se_cmd *se_cmd)\n"
                        buf += "{\n"