summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_default.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-06-15 19:49:14 +0000
committerphk <phk@FreeBSD.org>2003-06-15 19:49:14 +0000
commitad04f297578d3ace7f7b7970359bf98c6429b8da (patch)
treeb4cab32d8f52d27f39023685778e6c579dade983 /sys/kern/vfs_default.c
parentfc203320de2c12fe6f2f78957ade3053f9a1c9ff (diff)
downloadFreeBSD-src-ad04f297578d3ace7f7b7970359bf98c6429b8da.zip
FreeBSD-src-ad04f297578d3ace7f7b7970359bf98c6429b8da.tar.gz
I have not had any reports of trouble for a long time, so remove the
gentle versions of the vop_strategy()/vop_specstrategy() mismatch methods and use vop_panic() instead.
Diffstat (limited to 'sys/kern/vfs_default.c')
-rw-r--r--sys/kern/vfs_default.c28
1 files changed, 3 insertions, 25 deletions
diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c
index 87faee8..7626228 100644
--- a/sys/kern/vfs_default.c
+++ b/sys/kern/vfs_default.c
@@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$");
static int vop_nolookup(struct vop_lookup_args *);
static int vop_nostrategy(struct vop_strategy_args *);
-static int vop_nospecstrategy(struct vop_specstrategy_args *);
/*
* This vnode table stores what we want to do if the filesystem doesn't
@@ -98,7 +97,7 @@ static struct vnodeopv_entry_desc default_vnodeop_entries[] = {
{ &vop_putpages_desc, (vop_t *) vop_stdputpages },
{ &vop_readlink_desc, (vop_t *) vop_einval },
{ &vop_revoke_desc, (vop_t *) vop_revoke },
- { &vop_specstrategy_desc, (vop_t *) vop_nospecstrategy },
+ { &vop_specstrategy_desc, (vop_t *) vop_panic },
{ &vop_strategy_desc, (vop_t *) vop_nostrategy },
{ &vop_unlock_desc, (vop_t *) vop_stdunlock },
{ NULL, NULL }
@@ -212,6 +211,8 @@ vop_nolookup(ap)
static int
vop_nostrategy (struct vop_strategy_args *ap)
{
+ KASSERT(ap->a_vp == ap->a_bp->b_vp, ("%s(%p != %p)",
+ __func__, ap->a_vp, ap->a_bp->b_vp));
printf("No strategy for buffer at %p\n", ap->a_bp);
vprint("vnode", ap->a_vp);
vprint("device vnode", ap->a_bp->b_vp);
@@ -222,29 +223,6 @@ vop_nostrategy (struct vop_strategy_args *ap)
}
/*
- * vop_nospecstrategy:
- *
- * This shouldn't happen. VOP_SPECSTRATEGY should always have a VCHR
- * argument vnode, and thos have a method for specstrategy over in
- * specfs, so we only ever get here if somebody botched it.
- * Pass the call to VOP_STRATEGY() and get on with life.
- * The first time we print some info useful for debugging.
- */
-
-static int
-vop_nospecstrategy (struct vop_specstrategy_args *ap)
-{
- static int once;
-
- if (!once) {
- vprint("VOP_SPECSTRATEGY on non-VCHR", ap->a_vp);
- backtrace();
- once++;
- }
- return VOP_STRATEGY(ap->a_vp, ap->a_bp);
-}
-
-/*
* vop_stdpathconf:
*
* Standard implementation of POSIX pathconf, to get information about limits
OpenPOWER on IntegriCloud