Deleted Added
full compact
vfs_default.c (194601) vfs_default.c (197680)
1/*-
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed
6 * to Berkeley by John Heidemann of the UCLA Ficus project.
7 *
8 * Source: * @(#)i405_init.c 2.10 92/04/27 UCLA Ficus project

--- 19 unchanged lines hidden (view full) ---

28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 */
34
35#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed
6 * to Berkeley by John Heidemann of the UCLA Ficus project.
7 *
8 * Source: * @(#)i405_init.c 2.10 92/04/27 UCLA Ficus project

--- 19 unchanged lines hidden (view full) ---

28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 */
34
35#include <sys/cdefs.h>
36__FBSDID("$FreeBSD: head/sys/kern/vfs_default.c 194601 2009-06-21 19:21:01Z kib $");
36__FBSDID("$FreeBSD: head/sys/kern/vfs_default.c 197680 2009-10-01 17:22:03Z trasz $");
37
38#include <sys/param.h>
39#include <sys/systm.h>
40#include <sys/bio.h>
41#include <sys/buf.h>
42#include <sys/conf.h>
43#include <sys/event.h>
44#include <sys/kernel.h>

--- 33 unchanged lines hidden (view full) ---

78#define DIRENT_MINSIZE (sizeof(struct dirent) - (MAXNAMLEN+1) + 4)
79
80/*
81 * This vnode table stores what we want to do if the filesystem doesn't
82 * implement a particular VOP.
83 *
84 * If there is no specific entry here, we will return EOPNOTSUPP.
85 *
37
38#include <sys/param.h>
39#include <sys/systm.h>
40#include <sys/bio.h>
41#include <sys/buf.h>
42#include <sys/conf.h>
43#include <sys/event.h>
44#include <sys/kernel.h>

--- 33 unchanged lines hidden (view full) ---

78#define DIRENT_MINSIZE (sizeof(struct dirent) - (MAXNAMLEN+1) + 4)
79
80/*
81 * This vnode table stores what we want to do if the filesystem doesn't
82 * implement a particular VOP.
83 *
84 * If there is no specific entry here, we will return EOPNOTSUPP.
85 *
86 * Note that every filesystem has to implement either vop_access
87 * or vop_accessx; failing to do so will result in immediate crash
88 * due to stack overflow, as vop_stdaccess() calls vop_stdaccessx(),
89 * which calls vop_stdaccess() etc.
86 */
87
88struct vop_vector default_vnodeops = {
89 .vop_default = NULL,
90 .vop_bypass = VOP_EOPNOTSUPP,
91
90 */
91
92struct vop_vector default_vnodeops = {
93 .vop_default = NULL,
94 .vop_bypass = VOP_EOPNOTSUPP,
95
96 .vop_access = vop_stdaccess,
92 .vop_accessx = vop_stdaccessx,
93 .vop_advlock = vop_stdadvlock,
94 .vop_advlockasync = vop_stdadvlockasync,
95 .vop_bmap = vop_stdbmap,
96 .vop_close = VOP_NULL,
97 .vop_fsync = VOP_NULL,
98 .vop_getpages = vop_stdgetpages,
99 .vop_getwritemount = vop_stdgetwritemount,

--- 221 unchanged lines hidden (view full) ---

321 } while (len > 0 || !eofflag);
322
323out:
324 free(dirbuf, M_TEMP);
325 return (found);
326}
327
328int
97 .vop_accessx = vop_stdaccessx,
98 .vop_advlock = vop_stdadvlock,
99 .vop_advlockasync = vop_stdadvlockasync,
100 .vop_bmap = vop_stdbmap,
101 .vop_close = VOP_NULL,
102 .vop_fsync = VOP_NULL,
103 .vop_getpages = vop_stdgetpages,
104 .vop_getwritemount = vop_stdgetwritemount,

--- 221 unchanged lines hidden (view full) ---

326 } while (len > 0 || !eofflag);
327
328out:
329 free(dirbuf, M_TEMP);
330 return (found);
331}
332
333int
334vop_stdaccess(struct vop_access_args *ap)
335{
336
337 KASSERT((ap->a_accmode & ~(VEXEC | VWRITE | VREAD | VADMIN |
338 VAPPEND)) == 0, ("invalid bit in accmode"));
339
340 return (VOP_ACCESSX(ap->a_vp, ap->a_accmode, ap->a_cred, ap->a_td));
341}
342
343int
329vop_stdaccessx(struct vop_accessx_args *ap)
330{
331 int error;
332 accmode_t accmode = ap->a_accmode;
333
334 error = vfs_unixify_accmode(&accmode);
335 if (error != 0)
336 return (error);

--- 626 unchanged lines hidden ---
344vop_stdaccessx(struct vop_accessx_args *ap)
345{
346 int error;
347 accmode_t accmode = ap->a_accmode;
348
349 error = vfs_unixify_accmode(&accmode);
350 if (error != 0)
351 return (error);

--- 626 unchanged lines hidden ---