Print this page
re #13613 rb4516 Tunables needs volatile keyword


   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   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) 1983, 2010, Oracle and/or its affiliates. All rights reserved.

  23  */
  24 
  25 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T     */
  26 /*        All Rights Reserved   */
  27 
  28 /*
  29  * University Copyright- Copyright (c) 1982, 1986, 1988
  30  * The Regents of the University of California
  31  * All Rights Reserved
  32  *
  33  * University Acknowledgment- Portions of this document are derived from
  34  * software developed by the University of California, Berkeley, and its
  35  * contributors.
  36  */
  37 
  38 #ifndef _SYS_FS_UFS_INODE_H
  39 #define _SYS_FS_UFS_INODE_H
  40 
  41 #include <sys/isa_defs.h>
  42 #include <sys/fbuf.h>


 467         kstat_named_t in_maxreached;    /* Largest size reached by cache */
 468         kstat_named_t in_frfront;       /* # put at front of freelist */
 469         kstat_named_t in_frback;        /* # put at back of freelist */
 470         kstat_named_t in_qfree;         /* q's to delete thread */
 471         kstat_named_t in_scan;          /* # inodes scanned */
 472         kstat_named_t in_tidles;        /* # inodes idled by idle thread */
 473         kstat_named_t in_lidles;        /* # inodes idled by ufs_lookup */
 474         kstat_named_t in_vidles;        /* # inodes idled by ufs_vget */
 475         kstat_named_t in_kcalloc;       /* # inodes kmem_cache_alloced */
 476         kstat_named_t in_kcfree;        /* # inodes kmem_cache_freed */
 477         kstat_named_t in_poc;           /* # push-on-close's */
 478 };
 479 
 480 #ifdef _KERNEL
 481 
 482 /*
 483  * Extended attributes
 484  */
 485 
 486 #define XATTR_DIR_NAME  "/@/"
 487 extern int      ufs_ninode;             /* high-water mark for inode cache */
 488 
 489 extern struct vnodeops *ufs_vnodeops;   /* vnode operations for ufs */
 490 extern const struct fs_operation_def ufs_vnodeops_template[];
 491 
 492 /*
 493  * Convert between inode pointers and vnode pointers
 494  */
 495 #define VTOI(VP)        ((struct inode *)(VP)->v_data)
 496 #define ITOV(IP)        ((struct vnode *)(IP)->i_vnode)
 497 
 498 /*
 499  * convert to fs
 500  */
 501 #define ITOF(IP)        ((struct fs *)(IP)->i_fs)
 502 
 503 /*
 504  * Convert between vnode types and inode formats
 505  */
 506 extern enum vtype       iftovt_tab[];
 507 




   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   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) 1983, 2010, Oracle and/or its affiliates. All rights reserved.
  23  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  24  */
  25 
  26 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T     */
  27 /*        All Rights Reserved   */
  28 
  29 /*
  30  * University Copyright- Copyright (c) 1982, 1986, 1988
  31  * The Regents of the University of California
  32  * All Rights Reserved
  33  *
  34  * University Acknowledgment- Portions of this document are derived from
  35  * software developed by the University of California, Berkeley, and its
  36  * contributors.
  37  */
  38 
  39 #ifndef _SYS_FS_UFS_INODE_H
  40 #define _SYS_FS_UFS_INODE_H
  41 
  42 #include <sys/isa_defs.h>
  43 #include <sys/fbuf.h>


 468         kstat_named_t in_maxreached;    /* Largest size reached by cache */
 469         kstat_named_t in_frfront;       /* # put at front of freelist */
 470         kstat_named_t in_frback;        /* # put at back of freelist */
 471         kstat_named_t in_qfree;         /* q's to delete thread */
 472         kstat_named_t in_scan;          /* # inodes scanned */
 473         kstat_named_t in_tidles;        /* # inodes idled by idle thread */
 474         kstat_named_t in_lidles;        /* # inodes idled by ufs_lookup */
 475         kstat_named_t in_vidles;        /* # inodes idled by ufs_vget */
 476         kstat_named_t in_kcalloc;       /* # inodes kmem_cache_alloced */
 477         kstat_named_t in_kcfree;        /* # inodes kmem_cache_freed */
 478         kstat_named_t in_poc;           /* # push-on-close's */
 479 };
 480 
 481 #ifdef _KERNEL
 482 
 483 /*
 484  * Extended attributes
 485  */
 486 
 487 #define XATTR_DIR_NAME  "/@/"
 488 extern volatile int     ufs_ninode;     /* high-water mark for inode cache */
 489 
 490 extern struct vnodeops *ufs_vnodeops;   /* vnode operations for ufs */
 491 extern const struct fs_operation_def ufs_vnodeops_template[];
 492 
 493 /*
 494  * Convert between inode pointers and vnode pointers
 495  */
 496 #define VTOI(VP)        ((struct inode *)(VP)->v_data)
 497 #define ITOV(IP)        ((struct vnode *)(IP)->i_vnode)
 498 
 499 /*
 500  * convert to fs
 501  */
 502 #define ITOF(IP)        ((struct fs *)(IP)->i_fs)
 503 
 504 /*
 505  * Convert between vnode types and inode formats
 506  */
 507 extern enum vtype       iftovt_tab[];
 508