diff options
Diffstat (limited to 'sbin/mount_null/mount_null.8')
-rw-r--r-- | sbin/mount_null/mount_null.8 | 243 |
1 files changed, 0 insertions, 243 deletions
diff --git a/sbin/mount_null/mount_null.8 b/sbin/mount_null/mount_null.8 deleted file mode 100644 index 2ac1c25..0000000 --- a/sbin/mount_null/mount_null.8 +++ /dev/null @@ -1,243 +0,0 @@ -.\" -.\" Copyright (c) 1992, 1993, 1994 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software donated to Berkeley by -.\" John Heidemann of the UCLA Ficus project. -.\" -.\" -.\" 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. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. -.\" -.\" @(#)mount_null.8 8.6 (Berkeley) 5/1/95 -.\" $FreeBSD$ -.\" -.Dd May 1, 1995 -.Dt MOUNT_NULL 8 -.Os BSD 4.4 -.Sh NAME -.Nm mount_null -.Nd "mount a loopback filesystem sub-tree; demonstrate the use of a null file system layer" -.Sh SYNOPSIS -.Nm -.Op Fl o Ar options -.Ar target -.Ar mount-point -.Sh DESCRIPTION -The -.Nm -command creates a -null layer, duplicating a sub-tree of the file system -name space under another part of the global file system namespace. -This allows existing files and directories to be accessed -using a different pathname. -.Pp -The primary differences between a virtual copy of the filesystem -and a symbolic link are that -.Xr getcwd 3 -functions correctly in the virtual copy, and that other filesystems -may be mounted on the virtual copy without affecting the original. -A different device number for the virtual copy is returned by -.Xr stat 2 , -but in other respects it is indistinguishable from the original. -.Pp -The -.Nm -filesystem differs from a traditional -loopback file system in two respects: it is implemented using -a stackable layers techniques, and it's -.Do null-node Dc Ns s -stack above -all lower-layer vnodes, not just over directory vnodes. -.Pp -The options are as follows: -.Bl -tag -width indent -.It Fl o -Options are specified with a -.Fl o -flag followed by a comma separated string of options. -See the -.Xr mount 8 -man page for possible options and their meanings. -.El -.Pp -The null layer has two purposes. -First, it serves as a demonstration of layering by providing a layer -which does nothing. -(It actually does everything the loopback file system does, -which is slightly more than nothing.) -Second, the null layer can serve as a prototype layer. -Since it provides all necessary layer framework, -new file system layers can be created very easily by starting -with a null layer. -.Pp -The remainder of this man page examines the null layer as a basis -for constructing new layers. -.\" -.\" -.Sh INSTANTIATING NEW NULL LAYERS -New null layers are created with -.Xr mount_null 8 . -.Xr Mount_null 8 -takes two arguments, the pathname -of the lower vfs (target-pn) and the pathname where the null -layer will appear in the namespace (mount-point-pn). After -the null layer is put into place, the contents -of target-pn subtree will be aliased under mount-point-pn. -.\" -.\" -.Sh OPERATION OF A NULL LAYER -The null layer is the minimum file system layer, -simply bypassing all possible operations to the lower layer -for processing there. The majority of its activity centers -on the bypass routine, through which nearly all vnode operations -pass. -.Pp -The bypass routine accepts arbitrary vnode operations for -handling by the lower layer. It begins by examining vnode -operation arguments and replacing any null-nodes by their -lower-layer equivalents. It then invokes the operation -on the lower layer. Finally, it replaces the null-nodes -in the arguments and, if a vnode is returned by the operation, -stacks a null-node on top of the returned vnode. -.Pp -Although bypass handles most operations, -.Em vop_getattr , -.Em vop_inactive , -.Em vop_reclaim , -and -.Em vop_print -are not bypassed. -.Em Vop_getattr -must change the fsid being returned. -.Em Vop_inactive -and -.Em vop_reclaim -are not bypassed so that -they can handle freeing null-layer specific data. -.Em Vop_print -is not bypassed to avoid excessive debugging -information. -.\" -.\" -.Sh INSTANTIATING VNODE STACKS -Mounting associates the null layer with a lower layer, -in effect stacking two VFSes. Vnode stacks are instead -created on demand as files are accessed. -.Pp -The initial mount creates a single vnode stack for the -root of the new null layer. All other vnode stacks -are created as a result of vnode operations on -this or other null vnode stacks. -.Pp -New vnode stacks come into existence as a result of -an operation which returns a vnode. -The bypass routine stacks a null-node above the new -vnode before returning it to the caller. -.Pp -For example, imagine mounting a null layer with -.Bd -literal -offset indent -mount_null /usr/include /dev/layer/null -.Ed -Changing directory to -.Pa /dev/layer/null -will assign -the root null-node (which was created when the null layer was mounted). -Now consider opening -.Pa sys . -A vop_lookup would be -done on the root null-node. This operation would bypass through -to the lower layer which would return a vnode representing -the UFS -.Pa sys . -Null_bypass then builds a null-node -aliasing the UFS -.Pa sys -and returns this to the caller. -Later operations on the null-node -.Pa sys -will repeat this -process when constructing other vnode stacks. -.\" -.\" -.Sh CREATING OTHER FILE SYSTEM LAYERS -One of the easiest ways to construct new file system layers is to make -a copy of the null layer, rename all files and variables, and -then begin modifying the copy. -.Xr Sed 1 -can be used to easily rename -all variables. -.Pp -The umap layer is an example of a layer descended from the -null layer. -.\" -.\" -.Sh INVOKING OPERATIONS ON LOWER LAYERS -There are two techniques to invoke operations on a lower layer -when the operation cannot be completely bypassed. Each method -is appropriate in different situations. In both cases, -it is the responsibility of the aliasing layer to make -the operation arguments "correct" for the lower layer -by mapping a vnode argument to the lower layer. -.Pp -The first approach is to call the aliasing layer's bypass routine. -This method is most suitable when you wish to invoke the operation -currently being handled on the lower layer. -It has the advantage that -the bypass routine already must do argument mapping. -An example of this is -.Em null_getattrs -in the null layer. -.Pp -A second approach is to directly invoke vnode operations on -the lower layer with the -.Em VOP_OPERATIONNAME -interface. -The advantage of this method is that it is easy to invoke -arbitrary operations on the lower layer. The disadvantage -is that vnode arguments must be manually mapped. -.\" -.\" -.Sh SEE ALSO -.Xr mount 8 -.Pp -UCLA Technical Report CSD-910056, -.Em "Stackable Layers: an Architecture for File System Development" . -.Sh BUGS -THIS FILESYSTEM TYPE IS NOT YET FULLY SUPPORTED (READ: IT DOESN'T WORK) -AND USING IT MAY, IN FACT, DESTROY DATA ON YOUR SYSTEM. USE AT YOUR -OWN RISK. BEWARE OF DOG. SLIPPERY WHEN WET. -.Pp -This code also needs an owner in order to be less dangerous - serious -hackers can apply by sending mail to hackers@freebsd.org and announcing -their intent to take it over. -.Sh HISTORY -The -.Nm -utility first appeared in -.Bx 4.4 . |