- Add HPFS and NWFS vnode tags.

- Update ``struct vnode'' changes from revisions 1.91, 1.94, 1.98, 1.101,
  1.102.

Reviewed by:	alfred
This commit is contained in:
chris 2000-04-02 23:53:57 +00:00
parent 478987c547
commit db4807a37c

View File

@ -52,7 +52,8 @@ enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VFIFO, VBAD };
enum vtagtype { enum vtagtype {
VT_NON, VT_UFS, VT_NFS, VT_MFS, VT_PC, VT_LFS, VT_LOFS, VT_FDESC, VT_NON, VT_UFS, VT_NFS, VT_MFS, VT_PC, VT_LFS, VT_LOFS, VT_FDESC,
VT_PORTAL, VT_NULL, VT_UMAP, VT_KERNFS, VT_PROCFS, VT_AFS, VT_ISOFS, VT_PORTAL, VT_NULL, VT_UMAP, VT_KERNFS, VT_PROCFS, VT_AFS, VT_ISOFS,
VT_UNION, VT_MSDOSFS, VT_DEVFS, VT_TFS, VT_VFS, VT_CODA, VT_NTFS VT_UNION, VT_MSDOSFS, VT_DEVFS, VT_TFS, VT_VFS, VT_CODA, VT_NTFS,
VT_HPFS, VT_NWFS
}; };
/* /*
@ -77,7 +78,6 @@ struct vnode {
int v_usecount; /* reference count of users */ int v_usecount; /* reference count of users */
int v_writecount; /* reference count of writers */ int v_writecount; /* reference count of writers */
int v_holdcnt; /* page & buffer references */ int v_holdcnt; /* page & buffer references */
daddr_t v_lastr; /* last read (read-ahead) */
u_long v_id; /* capability identifier */ u_long v_id; /* capability identifier */
struct mount *v_mount; /* ptr to vfs we are in */ struct mount *v_mount; /* ptr to vfs we are in */
vop_t **v_op; /* vnode operations vector */ vop_t **v_op; /* vnode operations vector */
@ -91,15 +91,17 @@ struct vnode {
union { union {
struct mount *vu_mountedhere;/* ptr to mounted vfs (VDIR) */ struct mount *vu_mountedhere;/* ptr to mounted vfs (VDIR) */
struct socket *vu_socket; /* unix ipc (VSOCK) */ struct socket *vu_socket; /* unix ipc (VSOCK) */
struct specinfo *vu_specinfo; /* device (VCHR, VBLK) */ struct {
struct fifoinfo *vu_fifoinfo; /* fifo (VFIFO) */ struct specinfo *vu_specinfo; /* device (VCHR, VBLK) */
SLIST_ENTRY(vnode) vu_specnext;
} vu_spec;
struct fifoinfo *vu_fifoinfo; /* fifo (VFIFO) */
} v_un; } v_un;
struct nqlease *v_lease; /* Soft reference to lease */ struct nqlease *v_lease; /* Soft reference to lease */
daddr_t v_lastw; /* last write (write cluster) */ daddr_t v_lastw; /* last write (write cluster) */
daddr_t v_cstart; /* start block of cluster */ daddr_t v_cstart; /* start block of cluster */
daddr_t v_lasta; /* last allocation */ daddr_t v_lasta; /* last allocation */
int v_clen; /* length of current cluster */ int v_clen; /* length of current cluster */
int v_maxio; /* maximum I/O cluster size */
struct vm_object *v_object; /* Place to store VM object */ struct vm_object *v_object; /* Place to store VM object */
struct simplelock v_interlock; /* lock on usecount and flag */ struct simplelock v_interlock; /* lock on usecount and flag */
struct lock *v_vnlock; /* used for non-locking fs's */ struct lock *v_vnlock; /* used for non-locking fs's */
@ -116,10 +118,11 @@ struct vnode {
short vpi_revents; /* what has happened */ short vpi_revents; /* what has happened */
} v_pollinfo; } v_pollinfo;
}; };
#define v_mountedhere v_un.vu_mountedhere #define v_mountedhere v_un.vu_mountedhere
#define v_socket v_un.vu_socket #define v_socket v_un.vu_socket
#define v_specinfo v_un.vu_specinfo #define v_rdev v_un.vu_spec.vu_specinfo
#define v_fifoinfo v_un.vu_fifoinfo #define v_specnext v_un.vu_spec.vu_specnext
#define v_fifoinfo v_un.vu_fifoinfo
/* /*
* Vnode flags. * Vnode flags.
@ -131,10 +134,7 @@ struct vnode {
#define VXLOCK 0x00100 /* vnode is locked to change underlying type */ #define VXLOCK 0x00100 /* vnode is locked to change underlying type */
#define VXWANT 0x00200 /* process is waiting for vnode */ #define VXWANT 0x00200 /* process is waiting for vnode */
#define VBWAIT 0x00400 /* waiting for output to complete */ #define VBWAIT 0x00400 /* waiting for output to complete */
#define VALIASED 0x00800 /* vnode has an alias */
#define VDIROP 0x01000 /* LFS: vnode is involved in a directory op */
#define VOBJBUF 0x02000 /* Allocate buffers in VM object */ #define VOBJBUF 0x02000 /* Allocate buffers in VM object */
#define VNINACT 0x04000 /* LFS: skip ufs_inactive() in lfs_vunref */
#define VAGE 0x08000 /* Insert vnode at head of free list */ #define VAGE 0x08000 /* Insert vnode at head of free list */
#define VOLOCK 0x10000 /* vnode is locked waiting for an object */ #define VOLOCK 0x10000 /* vnode is locked waiting for an object */
#define VOWANT 0x20000 /* a process is waiting for VOLOCK */ #define VOWANT 0x20000 /* a process is waiting for VOLOCK */