changeset 13280:06213a128175

573 stmfadm doesn't display target and initiator aliases for iscsit Reviewed by: garrett@nexenta.com Reviewed by: deano@rattie.demon.co.uk Approved by: garrett@nexenta.com
author Yuri Pankov <yuri.pankov@nexenta.com>
date Wed, 02 Feb 2011 14:26:35 -0800
parents bf4390c83614
children 6bd011e48176
files usr/src/uts/common/io/comstar/port/iscsit/iscsit_login.c usr/src/uts/common/io/comstar/port/iscsit/iscsit_sess.c usr/src/uts/common/io/comstar/port/iscsit/iscsit_tgt.c
diffstat 3 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/comstar/port/iscsit/iscsit_login.c	Tue Feb 01 14:04:47 2011 -0500
+++ b/usr/src/uts/common/io/comstar/port/iscsit/iscsit_login.c	Wed Feb 02 14:26:35 2011 -0800
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  */
 
 #include <sys/cpuvar.h>
@@ -2565,6 +2566,9 @@
 		ict->ict_sess->ist_initiator_alias =
 		    kmem_alloc(strlen(string_val) + 1, KM_SLEEP);
 		(void) strcpy(ict->ict_sess->ist_initiator_alias, string_val);
+		if (ict->ict_sess->ist_stmf_sess)
+			ict->ict_sess->ist_stmf_sess->ss_rport_alias =
+			    strdup(string_val);
 	}
 
 	if ((nvrc = nvlist_lookup_string(lsm->icl_negotiated_values,
--- a/usr/src/uts/common/io/comstar/port/iscsit/iscsit_sess.c	Tue Feb 01 14:04:47 2011 -0500
+++ b/usr/src/uts/common/io/comstar/port/iscsit/iscsit_sess.c	Wed Feb 02 14:26:35 2011 -0800
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  */
 
 #include <sys/cpuvar.h>
@@ -228,6 +229,8 @@
 		kmem_free(iss->ss_rport_id, sizeof (scsi_devid_desc_t) +
 		    strlen(ist->ist_initiator_name) + 1);
 		stmf_remote_port_free(iss->ss_rport);
+		if (iss->ss_rport_alias)
+			strfree(iss->ss_rport_alias);
 		stmf_free(iss);
 	}
 	mutex_exit(&ist->ist_mutex);
--- a/usr/src/uts/common/io/comstar/port/iscsit/iscsit_tgt.c	Tue Feb 01 14:04:47 2011 -0500
+++ b/usr/src/uts/common/io/comstar/port/iscsit/iscsit_tgt.c	Wed Feb 02 14:26:35 2011 -0800
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  */
 
 #include <sys/cpuvar.h>
@@ -852,6 +853,7 @@
 {
 	iscsit_tgt_t		*result;
 	stmf_local_port_t	*lport;
+	char			*alias;
 
 	/*
 	 * Each target is an STMF local port.
@@ -889,6 +891,10 @@
 	idm_refcnt_init(&result->target_refcnt, result);
 	idm_refcnt_init(&result->target_sess_refcnt, result);
 
+	/* Set target alias */
+	if (nvlist_lookup_string(cfg_tgt->tgt_properties, "alias", &alias) == 0)
+		lport->lport_alias = strdup(alias);
+
 	/* Finish initializing local port */
 	/*
 	 * Would like infinite timeout, but this is about as long as can
@@ -939,6 +945,7 @@
 {
 	idm_status_t	idmrc = IDM_STATUS_SUCCESS;
 	list_t		tpgt_del_list;
+	char		*alias;
 
 	/* Merge TPGT */
 	list_create(&tpgt_del_list, sizeof (iscsit_tpgt_t),
@@ -952,6 +959,14 @@
 	(void) nvlist_dup(cfg_tgt->tgt_properties, &tgt->target_props,
 	    KM_SLEEP);
 
+	/* Update alias */
+	if (tgt->target_stmf_lport->lport_alias) {
+		strfree(tgt->target_stmf_lport->lport_alias);
+		tgt->target_stmf_lport->lport_alias = NULL;
+	}
+	if (nvlist_lookup_string(tgt->target_props, "alias", &alias) == 0)
+		tgt->target_stmf_lport->lport_alias = strdup(alias);
+
 	if ((idmrc = iscsit_tgt_merge_tpgt(tgt, cfg_tgt, &tpgt_del_list)) !=
 	    IDM_STATUS_SUCCESS) {
 		/* This should never happen */
@@ -1046,6 +1061,8 @@
 	avl_destroy(&tgt->target_tpgt_list);
 	avl_destroy(&tgt->target_sess_list);
 	mutex_destroy(&tgt->target_mutex);
+	if (tgt->target_stmf_lport->lport_alias)
+		strfree(tgt->target_stmf_lport->lport_alias);
 	stmf_free(tgt->target_stmf_lport); /* Also frees "tgt' */
 	iscsit_global_rele();
 }