DragonFly On-Line Manual Pages

Search: Section:  


VOP_REMOVE(9)	      DragonFly Kernel Developer's Manual	 VOP_REMOVE(9)

NAME

VOP_REMOVE, VOP_RMDIR -- remove a file or directory

SYNOPSIS

#include <sys/param.h> #include <sys/vnode.h> int VOP_REMOVE(struct vnode *dvp, struct vnode *vp, struct componentname *cnp); int VOP_RMDIR(struct vnode *dvp, struct vnode *vp, struct componentname *cnp);

DESCRIPTION

These entry points remove files and directories respectively. The arguments are: dvp the vnode of the directory vp the vnode of the file to be removed cnp pathname information about the file

LOCKS

Both dvp and vp should be locked on entry and remain locked on return.

RETURN VALUES

Zero is returned on success, otherwise an error code is returned.

PSEUDOCODE

int vop_remove(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) { int error = 0; if (vp is immutable) { error = EPERM; goto out; } /* * Remove name cnp->cn_nameptr from directory and update link count * of vp. */ ...; /* * Careful about trying to remove ".". XXX this should be handled * higher up. */ if (dvp == vp) vrele(vp); else vput(vp); vput(dvp); return error; }

ERRORS

[EPERM] the file is immutable [ENOTEMPTY] attempt to remove a directory which is not empty

SEE ALSO

vnode(9), VOP_LOOKUP(9)

AUTHORS

This man page was written by Doug Rabson. DragonFly 3.9 July 24, 1996 DragonFly 3.9

Search: Section: