Lines Matching defs:vnode

51 #include <sys/vnode.h>
96 * Insq/Remq for the vnode usage lists.
104 TAILQ_HEAD(freelst, vnode);
106 struct freelst vnode_free_list; /* vnode free list */
110 void vclean(struct vnode *, int, struct proc *);
112 void insmntque(struct vnode *, struct mount *);
113 int getdevvp(dev_t, struct vnode **, enum vtype);
119 void vputonfreelist(struct vnode *);
121 int vflush_vnode(struct vnode *, void *);
149 * Initialize the vnode management data structures.
154 /* buffer cache may need a vnode for each buffer */
156 pool_init(&vnode_pool, sizeof(struct vnode), 0, IPL_NONE,
179 vfs_mount_alloc(struct vnode *vp, struct vfsconf *vfsp)
344 * Set vnode attributes to VNOVAL
379 * Routines having to do with the management of the vnode table.
384 * Return the next vnode from the free list.
388 struct vnode **vpp)
393 struct vnode *vp;
404 * We must choose whether to allocate a new vnode or recycle an
447 tablefull("vnode");
454 vprint("free vnode", vp);
455 panic("free vnode isn't");
467 vprint("cleaned vnode", vp);
468 panic("cleaned vnode isn't");
472 panic("Clean vnode has pending I/O's");
490 * Move a vnode from one mount queue to another.
493 insmntque(struct vnode *vp, struct mount *mp)
496 * Delete from old mount point vnode list, if on one.
508 * Create a vnode for a block device.
513 bdevvp(dev_t dev, struct vnode **vpp)
519 * Create a vnode for a character device.
523 cdevvp(dev_t dev, struct vnode **vpp)
529 * Create a vnode for a device.
534 getdevvp(dev_t dev, struct vnode **vpp, enum vtype type)
536 struct vnode *vp;
537 struct vnode *nvp;
562 * Check to see if the new vnode represents a special device
563 * for which we already have a vnode (either because of
564 * bdevvp() or because of a different vnode representing
566 * the existing contents and return the aliased vnode. The
569 struct vnode *
570 checkalias(struct vnode *nvp, dev_t nvp_rdev, struct mount *mp)
573 struct vnode *vp;
632 * An example of such a vnode is the root partition device vnode
648 * Grab a particular vnode from the free list, increment its
649 * reference count and lock it. If the vnode lock bit is set,
650 * the vnode is being eliminated in vgone. In that case, we
653 * indicate that the vnode is no longer usable, possibly
657 vget(struct vnode *vp, int flags)
662 * If the vnode is in the process of being cleaned out for
708 vref(struct vnode *vp)
716 panic("vref on a VNON vnode");
722 vputonfreelist(struct vnode *vp)
734 * be waiting on the vnode lock inside uvn_io().
740 vprint("vnode already on free list: ", vp);
741 panic("vnode already on free list");
765 vput(struct vnode *vp)
809 vrele(struct vnode *vp)
854 vhold(struct vnode *vp)
874 /* Lose interest in a vnode. */
876 vdrop(struct vnode *vp)
903 * Remove any vnodes in the vnode table belonging to mount point mp.
917 int (*func)(struct vnode *, void *), void *arg) {
918 struct vnode *vp, *nvp;
936 struct vnode *skipvp;
942 vflush_vnode(struct vnode *vp, void *arg)
967 * out the vnode data structures and we are done.
975 * If FORCECLOSE is set, forcibly close the vnode.
1005 vprint("vflush: busy vnode", vp);
1012 vflush(struct mount *mp, struct vnode *skipvp, int flags)
1027 * Disassociate the underlying file system from a vnode.
1030 vclean(struct vnode *vp, int flags, struct proc *p)
1036 * Check to see if the vnode is in use.
1045 * Prevent the vnode from being recycled or
1056 * observed that the vnode is about to be exclusively locked
1075 * Clean out any VM data associated with the vnode.
1079 * Clean out any buffers associated with the vnode.
1084 * If purging an active vnode, it must be closed and
1086 * VOP_INACTIVE will unlock the vnode
1101 * Reclaim the vnode.
1138 * Recycle an unused vnode to the front of the free list.
1141 vrecycle(struct vnode *vp, struct proc *p)
1151 * Eliminate all activity associated with a vnode
1155 vgone(struct vnode *vp)
1165 vgonel(struct vnode *vp, struct proc *p)
1167 struct vnode *vq;
1168 struct vnode *vx;
1191 * Delete from old mount point vnode list, if on one.
1206 SLIST_REMOVE(vp->v_hashchain, vp, vnode, v_specnext);
1252 * Lookup a vnode by device number.
1255 vfinddev(dev_t dev, enum vtype type, struct vnode **vpp)
1257 struct vnode *vp;
1277 struct vnode *vp;
1289 vcount(struct vnode *vp)
1291 struct vnode *vq;
1315 * Print out a description of a vnode.
1321 vprint(char *label, struct vnode *vp)
1369 struct vnode *vp;
1443 vfs_mountedon(struct vnode *vp)
1445 struct vnode *vq;
1630 * file_mode, uid and gid are from the vnode in question,
1683 vnoperm(struct vnode *vp)
1930 vwaitforio(struct vnode *vp, int slpflag, char *wmesg, uint64_t timeo)
1953 vwakeup(struct vnode *vp)
1968 * Flush out and invalidate all buffers associated with a vnode.
1972 vinvalbuf(struct vnode *vp, int flags, struct ucred *cred, struct proc *p,
2047 * If this is a gigantisch vnode and we are
2069 vflushbuf(struct vnode *vp, int sync)
2110 * Associate a buffer with a vnode.
2112 * Manipulates buffer vnode queues. Must be called at splbio().
2115 bgetvp(struct vnode *vp, struct buf *bp)
2129 * Insert onto list for new vnode.
2135 * Disassociate a buffer from a vnode.
2137 * Manipulates vnode buffer queues. Must be called at splbio().
2142 struct vnode *vp;
2146 if ((vp = bp->b_vp) == (struct vnode *) 0)
2149 * Delete from old vnode list, if on one.
2164 * Replaces the current vnode associated with the buffer, if any,
2165 * with a new vnode.
2167 * If an output I/O is pending on the buffer, the old vnode
2170 * Ignores vnode buffer queues. Must be called at splbio().
2173 buf_replacevnode(struct buf *bp, struct vnode *newvp)
2175 struct vnode *oldvp = bp->b_vp;
2193 * the vnode and to add newly dirty vnodes to the appropriate
2196 * Manipulates vnode buffer queues. Must be called at splbio().
2203 struct vnode *vp = bp->b_vp;
2208 * Delete from old vnode list, if on one.
2279 struct vnode *vp = v;
2315 struct vnode *vp;