- 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:
parent
478987c547
commit
db4807a37c
@ -52,7 +52,8 @@ enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VFIFO, VBAD };
|
||||
enum vtagtype {
|
||||
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_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_writecount; /* reference count of writers */
|
||||
int v_holdcnt; /* page & buffer references */
|
||||
daddr_t v_lastr; /* last read (read-ahead) */
|
||||
u_long v_id; /* capability identifier */
|
||||
struct mount *v_mount; /* ptr to vfs we are in */
|
||||
vop_t **v_op; /* vnode operations vector */
|
||||
@ -91,15 +91,17 @@ struct vnode {
|
||||
union {
|
||||
struct mount *vu_mountedhere;/* ptr to mounted vfs (VDIR) */
|
||||
struct socket *vu_socket; /* unix ipc (VSOCK) */
|
||||
struct specinfo *vu_specinfo; /* device (VCHR, VBLK) */
|
||||
struct fifoinfo *vu_fifoinfo; /* fifo (VFIFO) */
|
||||
struct {
|
||||
struct specinfo *vu_specinfo; /* device (VCHR, VBLK) */
|
||||
SLIST_ENTRY(vnode) vu_specnext;
|
||||
} vu_spec;
|
||||
struct fifoinfo *vu_fifoinfo; /* fifo (VFIFO) */
|
||||
} v_un;
|
||||
struct nqlease *v_lease; /* Soft reference to lease */
|
||||
daddr_t v_lastw; /* last write (write cluster) */
|
||||
daddr_t v_cstart; /* start block of cluster */
|
||||
daddr_t v_lasta; /* last allocation */
|
||||
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 simplelock v_interlock; /* lock on usecount and flag */
|
||||
struct lock *v_vnlock; /* used for non-locking fs's */
|
||||
@ -116,10 +118,11 @@ struct vnode {
|
||||
short vpi_revents; /* what has happened */
|
||||
} v_pollinfo;
|
||||
};
|
||||
#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
|
||||
#define v_mountedhere v_un.vu_mountedhere
|
||||
#define v_socket v_un.vu_socket
|
||||
#define v_rdev v_un.vu_spec.vu_specinfo
|
||||
#define v_specnext v_un.vu_spec.vu_specnext
|
||||
#define v_fifoinfo v_un.vu_fifoinfo
|
||||
|
||||
/*
|
||||
* Vnode flags.
|
||||
@ -131,10 +134,7 @@ struct vnode {
|
||||
#define VXLOCK 0x00100 /* vnode is locked to change underlying type */
|
||||
#define VXWANT 0x00200 /* process is waiting for vnode */
|
||||
#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 VNINACT 0x04000 /* LFS: skip ufs_inactive() in lfs_vunref */
|
||||
#define VAGE 0x08000 /* Insert vnode at head of free list */
|
||||
#define VOLOCK 0x10000 /* vnode is locked waiting for an object */
|
||||
#define VOWANT 0x20000 /* a process is waiting for VOLOCK */
|
||||
|
Loading…
Reference in New Issue
Block a user