summaryrefslogtreecommitdiffstats
path: root/share/man/man9/VOP_REMOVE.9
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1997-03-03 18:01:01 +0000
committerdfr <dfr@FreeBSD.org>1997-03-03 18:01:01 +0000
commit7e67e1e73230219ea55118f095cc1800faf2c534 (patch)
treee33dd16a7d9cf5ad26d4f75d4b2d3db1b3d2fdd9 /share/man/man9/VOP_REMOVE.9
parent6c38eceeb9c3076678e4763e02440823894d2323 (diff)
downloadFreeBSD-src-7e67e1e73230219ea55118f095cc1800faf2c534.zip
FreeBSD-src-7e67e1e73230219ea55118f095cc1800faf2c534.tar.gz
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.
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 0000000..c0adbe2
--- /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.
+
OpenPOWER on IntegriCloud