VOP_OPEN(9)

HOME || NAME SYNOPSIS DESCRIPTION LOCKS IMPLEMENTATION NOTES RETURN VALUES PSEUDOCODE SEE ALSO AUTHORS
NAME
     VOP_OPEN, VOP_CLOSE -- open or close a file
SYNOPSIS
     #include <sys/param.h>
     #include <sys/vnode.h>

     int
     VOP_OPEN(struct vnode *vp, int mode, struct ucred *cred,
	 struct thread *td, int fdidx);

     int
     VOP_CLOSE(struct vnode *vp, int mode, struct ucred *cred,
	 struct thread *td);
DESCRIPTION
     The VOP_OPEN() entry point is called before a file is accessed by a
     process and the VOP_CLOSE() entry point is called after a file is fin-
     ished with by the process.

     The arguments are:

     vp    the vnode of the file

     mode  the access mode required by the calling process

     td    the thread which is accessing the file

     Additionally, VOP_OPEN() can accept a file descriptor number in fdidx;
     this is useful for file systems which require such information, e.g.,
     fdesc(5).

     The access mode is a set of flags, including FREAD, FWRITE, O_NONBLOCK,
     O_APPEND.
LOCKS
     VOP_OPEN() expects vp to be locked on entry and will leave it locked on
     return.

     VOP_CLOSE() expects at least a reference to be associated with the vnode
     and does not care whether the vnode is locked or not.  The lock and ref-
     erence state is left unchanged on return.	Note that vn_close expects an
     unlocked, referenced vnode and will dereference the vnode prior to
     returning.
IMPLEMENTATION NOTES
     The fdidx argument to VOP_OPEN() is currently unused, use `-1' for the
     meantime; however, this will change in future.
RETURN VALUES
     Zero is returned on success, otherwise an error code is returned.
PSEUDOCODE
     int
     vop_open(struct vnode *vp, int mode, struct ucred *cred, struct thread *td)
     {
	 /*
	  * Most file systems don't do much here.
	  */
	 return 0;
     }
SEE ALSO
     vnode(9), VOP_LOOKUP(9)
AUTHORS
     This man page was written by Doug Rabson.