diff options
| author | wrstuden <wrstuden@NetBSD.org> | 1999-12-07 21:06:48 +0000 |
|---|---|---|
| committer | wrstuden <wrstuden@NetBSD.org> | 1999-12-07 21:06:48 +0000 |
| commit | 7cbac7893201459db70384409de3287dfcd8bdb7 (patch) | |
| tree | c93d4b14f37b76077d168319e266f9aaf976ec8c /sys/kern/vnode_if.src | |
| parent | 388112cd097904411ebaa45dd0b834aa1b3c1470 (diff) | |
Add comments to describe the lookup parameters needed in the various
component name fragments passed into VOP calls.
Diffstat (limited to 'sys/kern/vnode_if.src')
| -rw-r--r-- | sys/kern/vnode_if.src | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src index 6ef309dc77a..68ce2c04dd6 100644 --- a/sys/kern/vnode_if.src +++ b/sys/kern/vnode_if.src @@ -1,4 +1,4 @@ -# $NetBSD: vnode_if.src,v 1.21 1999/11/15 18:49:10 fvdl Exp $ +# $NetBSD: vnode_if.src,v 1.22 1999/12/07 21:06:48 wrstuden Exp $ # # Copyright (c) 1992, 1993 # The Regents of the University of California. All rights reserved. @@ -49,6 +49,10 @@ # -: not applicable. vnode does not yet (or no longer) exists. # =: the same on input and output, may be either L or U. # X: locked if not nil. +# +# For operations other than VOP_LOOKUP which require a component name +# parameter, the flags required for the initial namei() call are listed. +# Additional flags may be added to the namei() call, but these are required. # # @@ -74,8 +78,8 @@ # last component name, dvp is returned unlocked on a successful # lookup. # On failure, *vpp is NULL, and *dvp is left locked. If there was -# an error re-locking dvp in the ISDOTDOT case, an error is -# returned with PDIRUNLOCK set. +# an error re-locking dvp (for instance in the ISDOTDOT case), +# the error is returned with PDIRUNLOCK set. # # *vpp is always locked on return if the operation succeeds. # typically, if *vpp == dvp, you need to release twice, but unlock once. @@ -85,6 +89,9 @@ # be set on exit if either a successful lookup unlocked the # parrent, or there was an error re-locking dvp in the ISDOTDOT case. # +# See sys/sys/namei.h for a description of the SAVENAME and SAVESTART +# flags. +# vop_lookup { IN struct vnode *dvp; INOUT struct vnode **vpp; @@ -95,6 +102,8 @@ vop_lookup { #% create dvp L U U #% create vpp - L - # +#! create cnp CREATE, LOCKPARENT +# vop_create { IN WILLPUT struct vnode *dvp; OUT struct vnode **vpp; @@ -106,6 +115,8 @@ vop_create { #% mknod dvp L U U #% mknod vpp - X - # +#! mknod cnp CREATE, LOCKPARENT +# vop_mknod { IN WILLPUT struct vnode *dvp; OUT WILLRELE struct vnode **vpp; @@ -258,6 +269,8 @@ vop_seek { #% remove dvp L U U #% remove vp L U U # +#! remove cnp DELETE, LOCKPARENT | LOCKLEAF +# vop_remove { IN WILLPUT struct vnode *dvp; IN WILLPUT struct vnode *vp; @@ -268,6 +281,8 @@ vop_remove { #% link vp U U U #% link tdvp L U U # +#! link cnp CREATE, LOCKPARENT +# vop_link { IN WILLPUT struct vnode *dvp; IN struct vnode *vp; @@ -280,6 +295,11 @@ vop_link { #% rename tdvp L U U #% rename tvp X U U # +#! rename fcnp DELETE, WANTPARENT | SAVESTART +#! rename tcnp RENAME, LOCKPARENT | LOCKLEAF | NOCACHE | SAVESTART +# +# XXX the vop_rename routines should REALLY NOT be depending on SAVESTART! +# vop_rename { IN WILLRELE struct vnode *fdvp; IN WILLRELE struct vnode *fvp; @@ -293,6 +313,8 @@ vop_rename { #% mkdir dvp L U U #% mkdir vpp - L - # +#! mkdir cnp CREATE, LOCKPARENT +# vop_mkdir { IN WILLPUT struct vnode *dvp; OUT struct vnode **vpp; @@ -304,6 +326,8 @@ vop_mkdir { #% rmdir dvp L U U #% rmdir vp L U U # +#! rmdir cnp DELETE, LOCKPARENT | LOCKLEAF +# vop_rmdir { IN WILLPUT struct vnode *dvp; IN WILLPUT struct vnode *vp; @@ -314,6 +338,8 @@ vop_rmdir { #% symlink dvp L U U #% symlink vpp - U - # +#! symlink cnp CREATE, LOCKPARENT +# # XXX - note that the return vnode has already been VRELE'ed # by the filesystem layer. To use it you must use vget, # possibly with a further namei. @@ -350,6 +376,8 @@ vop_readlink { # #% abortop dvp = = = # +#! abortop cnp as appropriate. +# vop_abortop { IN struct vnode *dvp; IN struct componentname *cnp; @@ -524,6 +552,8 @@ vop_lease { #% whiteout dvp L L L #% whiteout cnp - - - #% whiteout flag - - - +# +#! whiteout cnp CREATE, LOCKPARENT # vop_whiteout { IN struct vnode *dvp; |
