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>


   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  23  */
  24 /*
  25  * Copyright 2011, Nexenta Systems, Inc. All rights reserved.

  26  */
  27 #ifndef _STMF_STATE_H
  28 #define _STMF_STATE_H
  29 
  30 #ifdef  __cplusplus
  31 extern "C" {
  32 #endif
  33 
  34 typedef struct stmf_state {
  35         kmutex_t                stmf_lock;
  36         kcondvar_t              stmf_cv;
  37         dev_info_t              *stmf_dip;
  38         stmf_i_lu_provider_t    *stmf_ilplist;
  39         stmf_i_port_provider_t  *stmf_ipplist;
  40         stmf_i_lu_t             *stmf_ilulist;
  41         stmf_i_local_port_t     *stmf_ilportlist;
  42         id_space_t              *stmf_ilport_inst_space;
  43         avl_tree_t              stmf_irportlist;
  44         id_space_t              *stmf_irport_inst_space;
  45         avl_tree_t              stmf_itl_kstat_list;
  46         int                     stmf_nlps;
  47         int                     stmf_npps;
  48         int                     stmf_nlus;
  49         int                     stmf_nlports;
  50         uint8_t                 stmf_service_running:1,
  51                                 stmf_inventory_locked:1,
  52                                 stmf_exclusive_open:1,
  53                                 stmf_opened:1,
  54                                 stmf_process_initial_luns:1,
  55                                 rsvd:3;
  56         uint8_t                 stmf_config_state; /* See stmf_ioctl.h */
  57         uint8_t                 stmf_alua_state;
  58         uint16_t                stmf_alua_node;
  59         uint8_t                 stmf_default_lu_state;
  60         uint8_t                 stmf_default_lport_state;
  61         ddi_taskq_t             *stmf_svc_taskq;
  62         uint32_t                stmf_svc_flags;
  63         stmf_i_lu_t             *stmf_svc_ilu_draining;
  64         stmf_i_lu_t             *stmf_svc_ilu_timing;
  65         struct stmf_svc_req     *stmf_svc_active;




   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  23  */
  24 /*
  25  * Copyright 2011, Nexenta Systems, Inc. All rights reserved.
  26  * Copyright (c) 2013 by Delphix. All rights reserved.
  27  */
  28 #ifndef _STMF_STATE_H
  29 #define _STMF_STATE_H
  30 
  31 #ifdef  __cplusplus
  32 extern "C" {
  33 #endif
  34 
  35 typedef struct stmf_state {
  36         kmutex_t                stmf_lock;
  37         kcondvar_t              stmf_cv;
  38         dev_info_t              *stmf_dip;
  39         stmf_i_lu_provider_t    *stmf_ilplist;
  40         stmf_i_port_provider_t  *stmf_ipplist;
  41         stmf_i_lu_t             *stmf_ilulist;
  42         stmf_i_local_port_t     *stmf_ilportlist;
  43         id_space_t              *stmf_ilport_inst_space;
  44         avl_tree_t              stmf_irportlist;
  45         id_space_t              *stmf_irport_inst_space;

  46         int                     stmf_nlps;
  47         int                     stmf_npps;
  48         int                     stmf_nlus;
  49         int                     stmf_nlports;
  50         uint8_t                 stmf_service_running:1,
  51                                 stmf_inventory_locked:1,
  52                                 stmf_exclusive_open:1,
  53                                 stmf_opened:1,
  54                                 stmf_process_initial_luns:1,
  55                                 rsvd:3;
  56         uint8_t                 stmf_config_state; /* See stmf_ioctl.h */
  57         uint8_t                 stmf_alua_state;
  58         uint16_t                stmf_alua_node;
  59         uint8_t                 stmf_default_lu_state;
  60         uint8_t                 stmf_default_lport_state;
  61         ddi_taskq_t             *stmf_svc_taskq;
  62         uint32_t                stmf_svc_flags;
  63         stmf_i_lu_t             *stmf_svc_ilu_draining;
  64         stmf_i_lu_t             *stmf_svc_ilu_timing;
  65         struct stmf_svc_req     *stmf_svc_active;