vfs_default.c (c7fb6fd1b8d892db4b4d9c6d962645f1cf3937e8) | vfs_default.c (f5b11b6e2ddb88980c24cb32a5bbb1853397b3e5) |
---|---|
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 --- 52 unchanged lines hidden (view full) --- 61#include <vm/pmap.h> 62#include <vm/vm_map.h> 63#include <vm/vm_page.h> 64#include <vm/vm_pager.h> 65#include <vm/vnode_pager.h> 66 67static int vop_nolookup(struct vop_lookup_args *); 68static int vop_nostrategy(struct vop_strategy_args *); | 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 --- 52 unchanged lines hidden (view full) --- 61#include <vm/pmap.h> 62#include <vm/vm_map.h> 63#include <vm/vm_page.h> 64#include <vm/vm_pager.h> 65#include <vm/vnode_pager.h> 66 67static int vop_nolookup(struct vop_lookup_args *); 68static int vop_nostrategy(struct vop_strategy_args *); |
69static int vop_nospecstrategy(struct vop_specstrategy_args *); |
|
69 70/* 71 * This vnode table stores what we want to do if the filesystem doesn't 72 * implement a particular VOP. 73 * 74 * If there is no specific entry here, we will return EOPNOTSUPP. 75 * 76 */ --- 16 unchanged lines hidden (view full) --- 93 { &vop_lock_desc, (vop_t *) vop_stdlock }, 94 { &vop_lookup_desc, (vop_t *) vop_nolookup }, 95 { &vop_open_desc, (vop_t *) vop_null }, 96 { &vop_pathconf_desc, (vop_t *) vop_einval }, 97 { &vop_poll_desc, (vop_t *) vop_nopoll }, 98 { &vop_putpages_desc, (vop_t *) vop_stdputpages }, 99 { &vop_readlink_desc, (vop_t *) vop_einval }, 100 { &vop_revoke_desc, (vop_t *) vop_revoke }, | 70 71/* 72 * This vnode table stores what we want to do if the filesystem doesn't 73 * implement a particular VOP. 74 * 75 * If there is no specific entry here, we will return EOPNOTSUPP. 76 * 77 */ --- 16 unchanged lines hidden (view full) --- 94 { &vop_lock_desc, (vop_t *) vop_stdlock }, 95 { &vop_lookup_desc, (vop_t *) vop_nolookup }, 96 { &vop_open_desc, (vop_t *) vop_null }, 97 { &vop_pathconf_desc, (vop_t *) vop_einval }, 98 { &vop_poll_desc, (vop_t *) vop_nopoll }, 99 { &vop_putpages_desc, (vop_t *) vop_stdputpages }, 100 { &vop_readlink_desc, (vop_t *) vop_einval }, 101 { &vop_revoke_desc, (vop_t *) vop_revoke }, |
102 { &vop_specstrategy_desc, (vop_t *) vop_nospecstrategy }, |
|
101 { &vop_strategy_desc, (vop_t *) vop_nostrategy }, 102 { &vop_unlock_desc, (vop_t *) vop_stdunlock }, 103 { NULL, NULL } 104}; 105 106static struct vnodeopv_desc default_vnodeop_opv_desc = 107 { &default_vnodeop_p, default_vnodeop_entries }; 108 --- 107 unchanged lines hidden (view full) --- 216 vprint("", ap->a_bp->b_vp); 217 ap->a_bp->b_ioflags |= BIO_ERROR; 218 ap->a_bp->b_error = EOPNOTSUPP; 219 bufdone(ap->a_bp); 220 return (EOPNOTSUPP); 221} 222 223/* | 103 { &vop_strategy_desc, (vop_t *) vop_nostrategy }, 104 { &vop_unlock_desc, (vop_t *) vop_stdunlock }, 105 { NULL, NULL } 106}; 107 108static struct vnodeopv_desc default_vnodeop_opv_desc = 109 { &default_vnodeop_p, default_vnodeop_entries }; 110 --- 107 unchanged lines hidden (view full) --- 218 vprint("", ap->a_bp->b_vp); 219 ap->a_bp->b_ioflags |= BIO_ERROR; 220 ap->a_bp->b_error = EOPNOTSUPP; 221 bufdone(ap->a_bp); 222 return (EOPNOTSUPP); 223} 224 225/* |
226 * vop_nospecstrategy: 227 * 228 * This shouldn't happen. VOP_SPECSTRATEGY should always have a VCHR 229 * argument vnode, and thos have a method for specstrategy over in 230 * specfs, so we only ever get here if somebody botched it. 231 * Pass the call to VOP_STRATEGY() and get on with life. 232 * The first time we print some info useful for debugging. 233 */ 234 235static int 236vop_nospecstrategy (struct vop_specstrategy_args *ap) 237{ 238 static int once; 239 240 if (!once) { 241 vprint("\nVOP_SPECSTRATEGY on non-VCHR\n", ap->a_vp); 242 backtrace(); 243 once++; 244 } 245 return VOP_STRATEGY(ap->a_vp, ap->a_bp); 246} 247 248/* |
|
224 * vop_stdpathconf: 225 * 226 * Standard implementation of POSIX pathconf, to get information about limits 227 * for a filesystem. 228 * Override per filesystem for the case where the filesystem has smaller 229 * limits. 230 */ 231int --- 596 unchanged lines hidden --- | 249 * vop_stdpathconf: 250 * 251 * Standard implementation of POSIX pathconf, to get information about limits 252 * for a filesystem. 253 * Override per filesystem for the case where the filesystem has smaller 254 * limits. 255 */ 256int --- 596 unchanged lines hidden --- |