vop_open(9)
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 ac
- cessed by a process and the VOP_CLOSE() entry point is called after a file
- is finished
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 informa - tion, e.g.,
fdescfs(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 reference 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 re
- turned.
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
AUTHORS
- This manual page was written by Doug Rabson.
- BSD July 24, 1996