The latest changes to iSNS module in stgt made stgt to fail registering the second target to Microsoft iSNS Server (registering with open-isns works fine). Specifically, the change to use name of the target being registered instead of the first target's name. ISNS_FUNC_DEV_ATTR_REG fails with ISNS_STATUS_SOURCE_UNAUTHORIZED ISNS_FUNC_DEV_ATTR_QRY and ISNS_FUNC_SCN_REG fails with ISNS_STATUS_SOURCE_UNKNOWN. This patch reverts the change to use the first target's name for all target registrations. Signed-Off-By: Chandra Seetharaman <sekharan@xxxxxxxxxx> --- usr/iscsi/isns.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) Index: tgt-469b574/usr/iscsi/isns.c =================================================================== --- tgt-469b574.orig/usr/iscsi/isns.c +++ tgt-469b574/usr/iscsi/isns.c @@ -343,6 +343,7 @@ int isns_target_register(char *name) uint16_t flags = 0, length = 0; struct isns_hdr *hdr = (struct isns_hdr *) buf; struct isns_tlv *tlv; + struct iscsi_target *target; uint32_t port = htonl(iscsi_listen_port); uint32_t node = htonl(ISNS_NODE_TARGET); uint32_t type = htonl(2); @@ -358,7 +359,10 @@ int isns_target_register(char *name) memset(buf, 0, sizeof(buf)); tlv = (struct isns_tlv *) hdr->pdu; - length += isns_tlv_set_string(&tlv, ISNS_ATTR_ISCSI_NAME, name); + target = list_first_entry(&iscsi_targets_list, + struct iscsi_target, tlist); + length += isns_tlv_set_string(&tlv, ISNS_ATTR_ISCSI_NAME, + tgt_targetname(target->tid)); length += isns_tlv_set_string(&tlv, ISNS_ATTR_ENTITY_IDENTIFIER, eid); length += isns_tlv_set(&tlv, 0, 0, 0); -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html