vop_createvobject(9)
NAME
- VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT, VOP_GETVOBJECT - VM
- object interaction
SYNOPSIS
#include <sys/param.h> #include <sys/vnode.h> int VOP_CREATEVOBJECT(struct vnode *vp, struct ucred *cred, struct thread *td); int VOP_DESTROYVOBJECT(struct vnode *vp); int VOP_GETVOBJECT(struct vnode *vp, struct vm_object **objpp);
DESCRIPTION
- These calls are used to control the association of a VM ob
- ject with a
particular vnode. - The arguments specific to these functions are:
- vp The vnode of the file.
- objpp The VM object being returned, or NULL if the caller
- wants to test
- for the existence of the VM object).
- VFS(9) invokes VOP_CREATEVOBJECT() when it needs to create a
- VM object
for the given vnode(9). File system code may pass this call - down to the
underlying file system. This VOP can be called multiple - times, and file
system code should ignore any additional calls, exiting with - a zero
return code. - VOP_DESTROYVOBJECT() is called when a vnode(9) is recycled.
- VOP_GETVOBJECT() should be used by all kernel code to get a
- VM object.
The returned VM object may belong to a different file system - in the case
of stacked mounts. - VFS(9) has three functions which perform standard operations
- by creating
and destroying VM objects. These functions are: - vop_stdcreatevobject(),
vop_stddestroyvobject() and vop_stdgetvobject(). - Note: a vnode(9) should be locked on entry and must be left
- locked on
exit.
RETURN VALUES
The VOP_CREATEVOBJECT(), VOP_DESTROYVOBJECT() and
VOP_GETVOBJECT
- tions return zero on success, or a non-zero value on fail
- ure. Zero is
returned on success, otherwise an error is returned.
EXAMPLES
- By default, file systems leave VM object handling to the
- vop_std*() functions.
SEE ALSO
vnode(9), VOP_GETPAGES(9), VOP_PUTPAGES(9)
AUTHORS
- This manual page was written by Boris Popov.
- BSD September 10, 2000