Module Name: src Committed By: ahoka Date: Sun May 30 13:50:16 UTC 2010
Modified Files: src/share/man/man9: vnode.9 Log Message: Sync struct vnode with reality. To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/share/man/man9/vnode.9 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man9/vnode.9 diff -u src/share/man/man9/vnode.9:1.47 src/share/man/man9/vnode.9:1.48 --- src/share/man/man9/vnode.9:1.47 Sun Feb 21 13:33:03 2010 +++ src/share/man/man9/vnode.9 Sun May 30 13:50:16 2010 @@ -1,4 +1,4 @@ -.\" $NetBSD: vnode.9,v 1.47 2010/02/21 13:33:03 wiz Exp $ +.\" $NetBSD: vnode.9,v 1.48 2010/05/30 13:50:16 ahoka Exp $ .\" .\" Copyright (c) 2001, 2005, 2006 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd February 11, 2010 +.Dd May 30, 2010 .Dt VNODE 9 .Os .Sh NAME @@ -130,40 +130,40 @@ The vnode has the following structure: .Bd -literal struct vnode { - struct uvm_object v_uobj; /* uvm object */ -#define v_usecount v_uobj.uo_refs -#define v_interlock v_uobj.vmobjlock - voff_t v_size; /* size of file */ - int v_flag; /* flags */ - int v_numoutput; /* num pending writes */ - long v_writecount; /* ref count of writers */ - long v_holdcnt; /* page \*[Am] buffer refs */ - struct mount *v_mount; /* ptr to vfs we are in */ - int (**v_op)(void *); /* vnode ops vector */ - TAILQ_ENTRY(vnode) v_freelist; /* vnode freelist */ - LIST_ENTRY(vnode) v_mntvnodes; /* vnodes for mount pt */ - struct buflists v_cleanblkhd; /* clean blocklist head */ - struct buflists v_dirtyblkhd; /* dirty blocklist head */ - LIST_ENTRY(vnode) v_synclist; /* dirty vnodes */ - LIST_HEAD(, namecache) v_dnclist; /* namecaches for children */ - LIST_HEAD(, namecache) v_nclist; /* namecaches for our parent */ - union { - struct mount *vu_mountedhere;/* ptr to mounted vfs */ - struct socket *vu_socket; /* unix ipc (VSOCK) */ - struct specinfo *vu_specinfo; /* device (VCHR, VBLK) */ - struct fifoinfo *vu_fifoinfo; /* fifo (VFIFO) */ - } v_un; -#define v_mountedhere v_un.vu_mountedhere -#define v_socket v_un.vu_socket -#define v_specinfo v_un.vu_specinfo -#define v_fifoinfo v_un.vu_fifoinfo - struct nqlease *v_lease; /* Soft ref to lease */ - enum vtype v_type; /* vnode type */ - enum vtagtype v_tag; /* underlying data type */ - struct lock v_lock; /* lock for this vnode */ - struct lock *v_vnlock; /* ptr to vnode lock */ - void *v_data; /* private data for fs */ - struct klist v_klist; /* knotes attached to vnode */ + struct uvm_object v_uobj; /* the VM object */ + kcondvar_t v_cv; /* synchronization */ + voff_t v_size; /* size of file */ + voff_t v_writesize; /* new size after write */ + int v_iflag; /* VI_* flags */ + int v_vflag; /* VV_* flags */ + int v_uflag; /* VU_* flags */ + int v_numoutput; /* # of pending writes */ + int v_writecount; /* ref count of writers */ + int v_holdcnt; /* page & buffer refs */ + int v_synclist_slot; /* synclist slot index */ + struct mount *v_mount; /* ptr to vfs we are in */ + int (**v_op)(void *); /* vnode operations vector */ + TAILQ_ENTRY(vnode) v_freelist; /* vnode freelist */ + struct vnodelst *v_freelisthd; /* which freelist? */ + TAILQ_ENTRY(vnode) v_mntvnodes; /* vnodes for mount point */ + struct buflists v_cleanblkhd; /* clean blocklist head */ + struct buflists v_dirtyblkhd; /* dirty blocklist head */ + TAILQ_ENTRY(vnode) v_synclist; /* vnodes with dirty bufs */ + LIST_HEAD(, namecache) v_dnclist; /* namecaches (children) */ + LIST_HEAD(, namecache) v_nclist; /* namecaches (parent) */ + union { + struct mount *vu_mountedhere;/* ptr to vfs (VDIR) */ + struct socket *vu_socket; /* unix ipc (VSOCK) */ + struct specnode *vu_specnode; /* device (VCHR, VBLK) */ + struct fifoinfo *vu_fifoinfo; /* fifo (VFIFO) */ + struct uvm_ractx *vu_ractx; /* read-ahead ctx (VREG) */ + } v_un; + enum vtype v_type; /* vnode type */ + enum vtagtype v_tag; /* type of underlying data */ + struct vnlock v_lock; /* lock for this vnode */ + struct vnlock *v_vnlock; /* pointer to lock */ + void *v_data; /* private data for fs */ + struct klist v_klist; /* notes attached to vnode */ }; .Ed .Pp