diff options
author | John Dyson <dyson@FreeBSD.org> | 1996-08-21 21:56:23 +0000 |
---|---|---|
committer | John Dyson <dyson@FreeBSD.org> | 1996-08-21 21:56:23 +0000 |
commit | 6476c0d204848007fc6da182e3935f01e267d77f (patch) | |
tree | 07a76a1b97882ad9c1e3805d05f820bc976c60bd /sys/sys/vnode.h | |
parent | fe6869c2d0e28a9e4e6af9bcaf8f65506ac68e86 (diff) | |
download | src-6476c0d204848007fc6da182e3935f01e267d77f.tar.gz src-6476c0d204848007fc6da182e3935f01e267d77f.zip |
Even though this looks like it, this is not a complex code change.
The interface into the "VMIO" system has changed to be more consistant
and robust. Essentially, it is now no longer necessary to call vn_open
to get merged VM/Buffer cache operation, and exceptional conditions
such as merged operation of VBLK devices is simpler and more correct.
This code corrects a potentially large set of problems including the
problems with ktrace output and loaded systems, file create/deletes,
etc.
Most of the changes to NFS are cosmetic and name changes, eliminating
a layer of subroutine calls. The direct calls to vput/vrele have
been re-instituted for better cross platform compatibility.
Reviewed by: davidg
Notes
Notes:
svn path=/head/; revision=17761
Diffstat (limited to 'sys/sys/vnode.h')
-rw-r--r-- | sys/sys/vnode.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index d2c55cf7cb01..c468ecfe2cc3 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)vnode.h 8.7 (Berkeley) 2/4/94 - * $Id: vnode.h,v 1.32 1996/03/29 06:39:39 davidg Exp $ + * $Id: vnode.h,v 1.33 1996/05/31 00:20:32 peter Exp $ */ #ifndef _SYS_VNODE_H_ @@ -68,6 +68,7 @@ enum vtagtype { LIST_HEAD(buflists, buf); typedef int vop_t __P((void *)); +struct vm_object; struct vnode { u_long v_flag; /* vnode flags (see below) */ @@ -98,7 +99,7 @@ struct vnode { int v_ralen; /* Read-ahead length */ int v_usage; /* Vnode usage counter */ daddr_t v_maxra; /* last readahead block */ - void *v_object; /* Place to store VM object */ + struct vm_object *v_object; /* Place to store VM object */ enum vtagtype v_tag; /* type of underlying data */ void *v_data; /* private data for fs */ }; @@ -213,7 +214,7 @@ void vhold __P((struct vnode *)); #define HOLDRELE(vp) (vp)->v_holdcnt-- /* decrease buf or page ref */ #define VATTR_NULL(vap) (*(vap) = va_null) /* initialize a vattr */ #define VHOLD(vp) (vp)->v_holdcnt++ /* increase buf or page ref */ -#define VREF(vp) (vp)->v_usecount++ /* increase reference */ +#define VREF(vp) vref(vp) /* increase reference */ #endif #define NULLVP ((struct vnode *)NULL) @@ -422,9 +423,8 @@ int vn_rdwr __P((enum uio_rw rw, struct vnode *vp, caddr_t base, int len, off_t offset, enum uio_seg segflg, int ioflg, struct ucred *cred, int *aresid, struct proc *p)); int vn_stat __P((struct vnode *vp, struct stat *sb, struct proc *p)); -void vn_vmio_close __P((struct vnode *vp)); -int vn_vmio_open __P((struct vnode *vp, struct proc *p, - struct ucred *cred)); +int vfs_object_create __P((struct vnode *vp, struct proc *p, + struct ucred *cred, int waslocked)); int vn_writechk __P((struct vnode *vp)); void vprint __P((char *label, struct vnode *vp)); void vput __P((struct vnode *vp)); |