Print this page
NEX-6018 Return of the walking dead idm_refcnt_wait_ref comstar threads
Reviewed by:  Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by:  Evan Layton <evan.layton@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/comstar/stmf/stmf_state.h
          +++ new/usr/src/uts/common/io/comstar/stmf/stmf_state.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   * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  23   23   */
  24   24  /*
  25      - * Copyright 2011, Nexenta Systems, Inc. All rights reserved.
       25 + * Copyright 2016, Nexenta Systems, Inc. All rights reserved.
  26   26   * Copyright (c) 2013 by Delphix. All rights reserved.
  27   27   */
  28   28  #ifndef _STMF_STATE_H
  29   29  #define _STMF_STATE_H
  30   30  
  31   31  #ifdef  __cplusplus
  32   32  extern "C" {
  33   33  #endif
  34   34  
  35   35  typedef struct stmf_state {
↓ open down ↓ 19 lines elided ↑ open up ↑
  55   55                                  rsvd:3;
  56   56          uint8_t                 stmf_config_state; /* See stmf_ioctl.h */
  57   57          uint8_t                 stmf_alua_state;
  58   58          uint16_t                stmf_alua_node;
  59   59          uint8_t                 stmf_default_lu_state;
  60   60          uint8_t                 stmf_default_lport_state;
  61   61          ddi_taskq_t             *stmf_svc_taskq;
  62   62          uint32_t                stmf_svc_flags;
  63   63          stmf_i_lu_t             *stmf_svc_ilu_draining;
  64   64          stmf_i_lu_t             *stmf_svc_ilu_timing;
  65      -        struct stmf_svc_req     *stmf_svc_active;
  66      -        struct stmf_svc_req     **stmf_svc_tailp;
       65 +        list_t                  stmf_svc_list;
  67   66  
  68   67          stmf_id_list_t          stmf_hg_list;
  69   68          stmf_id_list_t          stmf_tg_list;
  70   69          stmf_id_list_t          stmf_luid_list;
  71   70  
  72   71          stmf_ver_tg_t           *stmf_ver_tg_head;
  73   72  
  74   73          stmf_pp_data_t          *stmf_ppdlist;
  75   74  } stmf_state_t;
  76   75  
↓ open down ↓ 2 lines elided ↑ open up ↑
  79   78   */
  80   79  #define STMF_SVC_STARTED                1
  81   80  #define STMF_SVC_ACTIVE                 2
  82   81  #define STMF_SVC_TERMINATE              4
  83   82  
  84   83  /*
  85   84   * svc request. We probably have to modify it once more services (and probably
  86   85   * different types of services) are added to the stmf_svc_thread.
  87   86   */
  88   87  typedef struct stmf_svc_req {
  89      -        struct stmf_svc_req             *svc_next;
       88 +        list_node_t                     svc_list_entry;
  90   89          int                             svc_req_alloc_size;
  91   90          int                             svc_cmd;
  92   91          void                            *svc_obj;
  93   92          struct stmf_state_change_info   svc_info;
  94   93  } stmf_svc_req_t;
  95   94  
  96   95  extern stmf_state_t stmf_state;
  97   96  
  98   97  #ifdef  __cplusplus
  99   98  }
 100   99  #endif
 101  100  
 102  101  #endif /* _STMF_STATE_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX