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>
4487 snoop can only work with 2GB files
Reviewed by: Jason King <jason.brian.king@gmail.com>
Reviewed by: Marcel Telka <marcel.telka@nexenta.com>
Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>
Approved by: Garrett D'Amore <garrett@damore.org>
3105 Kernel inet_pton() implementation returns result in host byte order
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Robert Mustacchi <rm@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi.h
          +++ new/usr/src/uts/common/io/scsi/adapters/iscsi/iscsi.h
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright 2000 by Cisco Systems, Inc.  All rights reserved.
  24   24   * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  25      - * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
       25 + * Copyright 2014-2015 Nexenta Systems, Inc.  All rights reserved.
  26   26   */
  27   27  
  28   28  #ifndef _ISCSI_H
  29   29  #define _ISCSI_H
  30   30  
  31   31  /*
  32   32   * Block comment which describes the contents of this file.
  33   33   */
  34   34  
  35   35  #ifdef __cplusplus
↓ open down ↓ 506 lines elided ↑ open up ↑
 542  542          int                     lun_guid_size;  /* GUID allocation size */
 543  543          char                    *lun_addr;      /* sess,lun */
 544  544          time_t                  lun_time_online;
 545  545  
 546  546          uchar_t                 lun_cap;        /* bitmap of scsi caps */
 547  547  
 548  548          uchar_t                 lun_vid[ISCSI_INQ_VID_BUF_LEN]; /* Vendor ID */
 549  549          uchar_t                 lun_pid[ISCSI_INQ_PID_BUF_LEN]; /* Product ID */
 550  550  
 551  551          uchar_t                 lun_type;
      552 +        kmutex_t                lun_mutex;
      553 +        int                     lun_refcnt;
 552  554  } iscsi_lun_t;
 553  555  
 554  556  #define ISCSI_LUN_STATE_CLEAR       0           /* used to clear all states */
 555  557  #define ISCSI_LUN_STATE_OFFLINE     1
 556  558  #define ISCSI_LUN_STATE_ONLINE      2
 557  559  #define ISCSI_LUN_STATE_INVALID     4           /* offline failed */
 558  560  #define ISCSI_LUN_STATE_BUSY        8           /* logic unit is in reset */
 559  561  
 560  562  #define ISCSI_LUN_CAP_RESET         0x01
 561  563  
↓ open down ↓ 758 lines elided ↑ open up ↑
1320 1322  void iscsi_conn_set_login_min_max(iscsi_conn_t *icp, int min, int max);
1321 1323  iscsi_status_t iscsi_conn_sync_params(iscsi_conn_t *icp);
1322 1324  void iscsi_conn_retry(iscsi_sess_t *isp, iscsi_conn_t *icp);
1323 1325  void iscsi_conn_update_state(iscsi_conn_t *icp, iscsi_conn_state_t next_state);
1324 1326  void iscsi_conn_update_state_locked(iscsi_conn_t *icp,
1325 1327                          iscsi_conn_state_t next_state);
1326 1328  
1327 1329  /* iscsi_lun.c */
1328 1330  iscsi_status_t iscsi_lun_create(iscsi_sess_t *isp, uint16_t lun_num,
1329 1331      uint8_t lun_addr_type, struct scsi_inquiry *inq, char *guid);
1330      -iscsi_status_t iscsi_lun_destroy(iscsi_hba_t *ihp,
1331      -    iscsi_lun_t *ilp);
     1332 +void iscsi_lun_hold(iscsi_lun_t *ilp);
     1333 +void iscsi_lun_rele(iscsi_lun_t *ilp);
     1334 +iscsi_status_t iscsi_lun_destroy(iscsi_hba_t *ihp, iscsi_lun_t *ilp);
1332 1335  void iscsi_lun_online(iscsi_hba_t *ihp,
1333 1336      iscsi_lun_t *ilp);
1334 1337  iscsi_status_t iscsi_lun_offline(iscsi_hba_t *ihp,
1335 1338      iscsi_lun_t *ilp, boolean_t lun_free);
1336 1339  
1337 1340  /* iscsi_cmd.c */
1338 1341  void iscsi_cmd_state_machine(iscsi_cmd_t *icmdp,
1339 1342      iscsi_cmd_event_t event, void *arg);
1340 1343  iscsi_cmd_t     *iscsi_cmd_alloc(iscsi_conn_t *icp, int km_flags);
1341 1344  void            iscsi_cmd_free(iscsi_cmd_t *icmdp);
↓ open down ↓ 73 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX