null_vnops.c (26963) | null_vnops.c (26964) |
---|---|
1/* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * John Heidemann of the UCLA Ficus project. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 23 unchanged lines hidden (view full) --- 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)null_vnops.c 8.6 (Berkeley) 5/27/95 37 * 38 * Ancestors: 39 * @(#)lofs_vnops.c 1.2 (Berkeley) 6/18/92 | 1/* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * John Heidemann of the UCLA Ficus project. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 23 unchanged lines hidden (view full) --- 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)null_vnops.c 8.6 (Berkeley) 5/27/95 37 * 38 * Ancestors: 39 * @(#)lofs_vnops.c 1.2 (Berkeley) 6/18/92 |
40 * $Id: null_vnops.c,v 1.18 1997/05/25 04:50:02 peter Exp $ | 40 * $Id: null_vnops.c,v 1.19 1997/06/26 16:13:56 alex Exp $ |
41 * ...and... 42 * @(#)null_vnodeops.c 1.20 92/07/07 UCLA Ficus project 43 * | 41 * ...and... 42 * @(#)null_vnodeops.c 1.20 92/07/07 UCLA Ficus project 43 * |
44 * $Id: null_vnops.c,v 1.18 1997/05/25 04:50:02 peter Exp $ | 44 * $Id: null_vnops.c,v 1.19 1997/06/26 16:13:56 alex Exp $ |
45 */ 46 47/* 48 * Null Layer 49 * 50 * (See mount_null(8) for more information.) 51 * 52 * The null layer duplicates a portion of the file system --- 104 unchanged lines hidden (view full) --- 157 * when the operation cannot be completely bypassed. Each method 158 * is appropriate in different situations. In both cases, 159 * it is the responsibility of the aliasing layer to make 160 * the operation arguments "correct" for the lower layer 161 * by mapping an vnode arguments to the lower layer. 162 * 163 * The first approach is to call the aliasing layer's bypass routine. 164 * This method is most suitable when you wish to invoke the operation | 45 */ 46 47/* 48 * Null Layer 49 * 50 * (See mount_null(8) for more information.) 51 * 52 * The null layer duplicates a portion of the file system --- 104 unchanged lines hidden (view full) --- 157 * when the operation cannot be completely bypassed. Each method 158 * is appropriate in different situations. In both cases, 159 * it is the responsibility of the aliasing layer to make 160 * the operation arguments "correct" for the lower layer 161 * by mapping an vnode arguments to the lower layer. 162 * 163 * The first approach is to call the aliasing layer's bypass routine. 164 * This method is most suitable when you wish to invoke the operation |
165 * currently being hanldled on the lower layer. It has the advantage | 165 * currently being handled on the lower layer. It has the advantage |
166 * that the bypass routine already must do argument mapping. 167 * An example of this is null_getattrs in the null layer. 168 * | 166 * that the bypass routine already must do argument mapping. 167 * An example of this is null_getattrs in the null layer. 168 * |
169 * A second approach is to directly invoked vnode operations on | 169 * A second approach is to directly invoke vnode operations on |
170 * the lower layer with the VOP_OPERATIONNAME interface. 171 * The advantage of this method is that it is easy to invoke 172 * arbitrary operations on the lower layer. The disadvantage | 170 * the lower layer with the VOP_OPERATIONNAME interface. 171 * The advantage of this method is that it is easy to invoke 172 * arbitrary operations on the lower layer. The disadvantage |
173 * is that vnodes arguments must be manualy mapped. | 173 * is that vnode arguments must be manualy mapped. |
174 * 175 */ 176 177#include <sys/param.h> 178#include <sys/systm.h> 179#include <sys/kernel.h> 180#include <sys/sysctl.h> 181#include <sys/proc.h> --- 483 unchanged lines hidden --- | 174 * 175 */ 176 177#include <sys/param.h> 178#include <sys/systm.h> 179#include <sys/kernel.h> 180#include <sys/sysctl.h> 181#include <sys/proc.h> --- 483 unchanged lines hidden --- |