Print this page
NEX-3414 CLONE - Port 3339 iscsi/fs:5 causes panic on initiator
NEX-3419 CLONE - Run multi initiator sessions to a single target test can panic the initiator
Reviewed by: Steve Peng <steve.peng@nexenta.com>
        
@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2000 by Cisco Systems, Inc.  All rights reserved.
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  *
  * iSCSI Software Initiator
  */
 
 /*
@@ -850,10 +851,11 @@
                 }
                 icmdp = (iscsi_cmd_t *)pkt->pkt_ha_private;
                 icmdp->cmd_sig                  = ISCSI_SIG_CMD;
                 icmdp->cmd_state                = ISCSI_CMD_STATE_FREE;
                 icmdp->cmd_lun                  = ilp;
+                iscsi_lun_hold(ilp);
                 icmdp->cmd_type                 = ISCSI_CMD_TYPE_SCSI;
                 /* add the report lun addressing type on to the lun */
                 icmdp->cmd_un.scsi.lun          = ilp->lun_addr_type << 14;
                 icmdp->cmd_un.scsi.lun          = icmdp->cmd_un.scsi.lun |
                     ilp->lun_num;
@@ -1093,10 +1095,11 @@
 
         ASSERT(icmdp != NULL);
         ASSERT(icmdp->cmd_sig == ISCSI_SIG_CMD);
         ASSERT(icmdp->cmd_state == ISCSI_CMD_STATE_FREE);
 
+        iscsi_lun_rele(icmdp->cmd_lun);
         mutex_destroy(&icmdp->cmd_mutex);
         cv_destroy(&icmdp->cmd_completion);
         scsi_hba_pkt_free(ap, pkt);
 }