Mercurial > illumos > illumos-gate
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(); }