diff options
author | Doug Rabson <dfr@FreeBSD.org> | 1997-03-03 18:01:01 +0000 |
---|---|---|
committer | Doug Rabson <dfr@FreeBSD.org> | 1997-03-03 18:01:01 +0000 |
commit | fab63cc4136a3c0d156d1b82497e894b10d0fe59 (patch) | |
tree | 68f6fb5678b98ee008e63fc4ae6b7bb7562ba259 /share/man/man9/VOP_REMOVE.9 | |
parent | e836e480dcc72824667f4582b7d6c2bbe70e424e (diff) | |
download | src-fab63cc4136a3c0d156d1b82497e894b10d0fe59.tar.gz src-fab63cc4136a3c0d156d1b82497e894b10d0fe59.zip |
This is the current draft of my filesystem manpages. Some files are
incomplete and some are just placeholders but I wanted to try to get
something at least into 2.2 on the grounds that what I have is a lot
better than nothing. I also wanted to commit something which documents
the interfaces in 2.2 before I start updating the documentation for 3.0.
This is a definite 2.2 candidate and is also relavent to 2.1 if people
still care about that branch.
Notes
Notes:
svn path=/head/; revision=23353
Diffstat (limited to 'share/man/man9/VOP_REMOVE.9')
-rw-r--r-- | share/man/man9/VOP_REMOVE.9 | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/share/man/man9/VOP_REMOVE.9 b/share/man/man9/VOP_REMOVE.9 new file mode 100644 index 000000000000..c0adbe28d866 --- /dev/null +++ b/share/man/man9/VOP_REMOVE.9 @@ -0,0 +1,107 @@ +.\" -*- nroff -*- +.\" +.\" Copyright (c) 1996 Doug Rabson +.\" +.\" All rights reserved. +.\" +.\" This program is free software. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $Id$ +.\" +.Dd July 24, 1996 +.Os +.Dt VOP_REMOVE 9 +.Sh NAME +.Nm VOP_REMOVE , +.Nm VOP_RMDIR +.Nd remove a file or directory +.Sh SYNOPSIS +.Fd #include <sys/vnode.h> +.Ft int +.Fn VOP_REMOVE "struct vnode *dvp" "struct vnode *vp" "struct componentname *cnp" +.Ft int +.Fn VOP_RMDIR "struct vnode *dvp" "struct vnode *vp" "struct componentname *cnp" +.Sh DESCRIPTION +These entry points remove files and directories respectively. +.Pp +The arguments are: +.Bl -tag -width dvp +.It Ar dvp +the vnode of the directory +.It Ar vp +the vnode of the file to be removed +.It Ar cnp +pathname information about the file +.El +.Sh LOCKS +Both +.Fa dvp +and +.Fa vp +should be locked on entry and are unlocked and released on exit. +.Sh RETURN VALUES +Zero is returned on success, otherwise an error code is returned. +.Sh PSEUDOCODE +.Bd -literal +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; +} +.Ed +.Sh ERRORS +.Bl -tag -width ENOTEMPTY +.It Bq Er EPERM +the file is immutable +.It Bq Er ENOTEMPTY +attempt to remove a directory which is not empty +.El +.Sh SEE ALSO +.Xr vnode 9 , +.Xr VOP_LOOKUP 9 +.Sh AUTHORS +This man page was written by Doug Rabson. + |