summaryrefslogtreecommitdiffstats
path: root/sys/kern/vnode_if.src
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-01-04 22:10:36 +0000
committerphk <phk@FreeBSD.org>2003-01-04 22:10:36 +0000
commit131885aa2f8d42ce9c721f66cd0c84ec7789ffc0 (patch)
treec7a5f4c248cdb6b6c66f82139acb14ed7ec6d6d0 /sys/kern/vnode_if.src
parenta307536f906cea2e4ba4d10d51b320520f1a30c1 (diff)
downloadFreeBSD-src-131885aa2f8d42ce9c721f66cd0c84ec7789ffc0.zip
FreeBSD-src-131885aa2f8d42ce9c721f66cd0c84ec7789ffc0.tar.gz
Temporarily introduce a new VOP_SPECSTRATEGY operation while I try
to sort out disk-io from file-io in the vm/buffer/filesystem space. The intent is to sort VOP_STRATEGY calls into those which operate on "real" vnodes and those which operate on VCHR vnodes. For the latter kind, the call will be changed to VOP_SPECSTRATEGY, possibly conditionally for those places where dual-use happens. Add a default VOP_SPECSTRATEGY method which will call the normal VOP_STRATEGY. First time it is called it will print debugging information. This will only happen if a normal vnode is passed to VOP_SPECSTRATEGY by mistake. Add a real VOP_SPECSTRATEGY in specfs, which does what VOP_STRATEGY does on a VCHR vnode today. Add a new VOP_STRATEGY method in specfs to catch instances where the conversion to VOP_SPECSTRATEGY has not yet happened. Handle the request just like we always did, but first time called print debugging information. Apart up to two instances of console messages per boot, this amounts to a glorified no-op commit. If you get any of the messages on your console I would very much like a copy of them mailed to phk@freebsd.org
Diffstat (limited to 'sys/kern/vnode_if.src')
-rw-r--r--sys/kern/vnode_if.src9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src
index 4fce819..f62d0ac 100644
--- a/sys/kern/vnode_if.src
+++ b/sys/kern/vnode_if.src
@@ -400,6 +400,15 @@ vop_strategy {
};
#
+# specstrategy vp L L L
+#! specstrategy pre vop_strategy_pre
+#
+vop_specstrategy {
+ IN struct vnode *vp;
+ IN struct buf *bp;
+};
+
+#
#% getwritemount vp = = =
#
vop_getwritemount {
OpenPOWER on IntegriCloud