aboutsummaryrefslogtreecommitdiff
path: root/share/man/man9/VOP_REMOVE.9
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>1997-03-03 18:01:01 +0000
committerDoug Rabson <dfr@FreeBSD.org>1997-03-03 18:01:01 +0000
commitfab63cc4136a3c0d156d1b82497e894b10d0fe59 (patch)
tree68f6fb5678b98ee008e63fc4ae6b7bb7562ba259 /share/man/man9/VOP_REMOVE.9
parente836e480dcc72824667f4582b7d6c2bbe70e424e (diff)
downloadsrc-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.9107
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.
+