Print this page
3862 stmf + kstat = kernel panic
3863 stmf_itl_task_start() must check for ilu->ilu_kstat_io is non-null
3864 memory leak in the iSCSI code
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Jeremy Jones <jeremy@delphix.com>
Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Richard Elling <richard.elling@gmail.com>
Approved by: Gordon Ross <gwr@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/stmf.h
          +++ new/usr/src/uts/common/sys/stmf.h
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  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   * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
       23 + * Copyright (c) 2013 by Delphix. All rights reserved.
  23   24   */
  24   25  #ifndef _STMF_H
  25   26  #define _STMF_H
  26   27  
  27   28  #include <sys/stmf_defines.h>
  28   29  
  29   30  #ifdef  __cplusplus
  30   31  extern "C" {
  31   32  #endif
  32   33  
↓ open down ↓ 344 lines elided ↑ open up ↑
 377  378  void stmf_send_status_done(scsi_task_t *task, stmf_status_t s, uint32_t iof);
 378  379  void stmf_task_lu_done(scsi_task_t *task);
 379  380  void stmf_abort(int abort_cmd, scsi_task_t *task, stmf_status_t s, void *arg);
 380  381  void stmf_task_lu_aborted(scsi_task_t *task, stmf_status_t s, uint32_t iof);
 381  382  void stmf_task_lport_aborted(scsi_task_t *task, stmf_status_t s, uint32_t iof);
 382  383  stmf_status_t stmf_task_poll_lu(scsi_task_t *task, uint32_t timeout);
 383  384  stmf_status_t stmf_task_poll_lport(scsi_task_t *task, uint32_t timeout);
 384  385  stmf_status_t stmf_ctl(int cmd, void *obj, void *arg);
 385  386  stmf_status_t stmf_register_itl_handle(struct stmf_lu *lu, uint8_t *lun,
 386  387      struct stmf_scsi_session *ss, uint64_t session_id, void *itl_handle);
 387      -stmf_status_t stmf_deregister_itl_handle(struct stmf_lu *lu, uint8_t *lun,
 388      -    struct stmf_scsi_session *ss, uint64_t session_id, void *itl_handle);
 389  388  stmf_status_t stmf_deregister_all_lu_itl_handles(struct stmf_lu *lu);
 390  389  stmf_status_t stmf_get_itl_handle(struct stmf_lu *lu, uint8_t *lun,
 391  390      struct stmf_scsi_session *ss, uint64_t session_id, void **itl_handle_retp);
 392  391  stmf_data_buf_t *stmf_handle_to_buf(scsi_task_t *task, uint8_t h);
 393  392  stmf_status_t stmf_lu_add_event(struct stmf_lu *lu, int eventid);
 394  393  stmf_status_t stmf_lu_remove_event(struct stmf_lu *lu, int eventid);
 395  394  stmf_status_t stmf_lport_add_event(struct stmf_local_port *lport, int eventid);
 396  395  stmf_status_t stmf_lport_remove_event(struct stmf_local_port *lport,
 397  396      int eventid);
 398  397  void stmf_wwn_to_devid_desc(struct scsi_devid_desc *sdid, uint8_t *wwn,
↓ open down ↓ 26 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX