Print this page
NEX-2787 Multiple comstar / fibre channel / qlt threads stuck waiting on locks with a spinning interrupt thread
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Approved by: Jean McCormack <jean.mccormack@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/list.h
          +++ new/usr/src/uts/common/sys/list.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 2008 Sun Microsystems, Inc.  All rights reserved.
       23 + * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
  23   24   * Use is subject to license terms.
  24   25   */
  25   26  
  26   27  #ifndef _SYS_LIST_H
  27   28  #define _SYS_LIST_H
  28   29  
  29   30  #include <sys/list_impl.h>
  30   31  
  31   32  #ifdef  __cplusplus
  32   33  extern "C" {
↓ open down ↓ 7 lines elided ↑ open up ↑
  40   41  
  41   42  void list_insert_after(list_t *, void *, void *);
  42   43  void list_insert_before(list_t *, void *, void *);
  43   44  void list_insert_head(list_t *, void *);
  44   45  void list_insert_tail(list_t *, void *);
  45   46  void list_remove(list_t *, void *);
  46   47  void *list_remove_head(list_t *);
  47   48  void *list_remove_tail(list_t *);
  48   49  void list_move_tail(list_t *, list_t *);
  49   50  
  50      -void *list_head(list_t *);
  51      -void *list_tail(list_t *);
  52      -void *list_next(list_t *, void *);
  53      -void *list_prev(list_t *, void *);
       51 +extern void *list_head(list_t *);
       52 +extern void *list_tail(list_t *);
       53 +extern void *list_next(list_t *, void *);
       54 +extern void *list_prev(list_t *, void *);
  54   55  int list_is_empty(list_t *);
  55   56  
  56   57  void list_link_init(list_node_t *);
  57   58  void list_link_replace(list_node_t *, list_node_t *);
  58   59  
  59   60  int list_link_active(list_node_t *);
  60   61  
  61   62  #ifdef  __cplusplus
  62   63  }
  63   64  #endif
  64   65  
  65   66  #endif  /* _SYS_LIST_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX