summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-10-24 20:03:41 +0000
committerphk <phk@FreeBSD.org>2004-10-24 20:03:41 +0000
commit1b25a5988640ac862e8e964c30aaccfd83e128cf (patch)
tree220ef3feb4e3c7063a6550b7466cbd964e346c84 /sys/vm
parent27296db6a7b0487c98e7e27a7765cf3d19bdf963 (diff)
downloadFreeBSD-src-1b25a5988640ac862e8e964c30aaccfd83e128cf.zip
FreeBSD-src-1b25a5988640ac862e8e964c30aaccfd83e128cf.tar.gz
Move the buffer method vector (buf->b_op) to the bufobj.
Extend it with a strategy method. Add bufstrategy() which do the usual VOP_SPECSTRATEGY/VOP_STRATEGY song and dance. Rename ibwrite to bufwrite(). Move the two NFS buf_ops to more sensible places, add bufstrategy to them. Add inlines for bwrite() and bstrategy() which calls through buf->b_bufobj->b_ops->b_{write,strategy}(). Replace almost all VOP_STRATEGY()/VOP_SPECSTRATEGY() calls with bstrategy().
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/swap_pager.c2
-rw-r--r--sys/vm/vm_pager.c1
-rw-r--r--sys/vm/vnode_pager.c10
3 files changed, 3 insertions, 10 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 47eecb5..367aee9 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -2551,7 +2551,7 @@ swapdev_strategy(struct buf *bp, struct swdevt *sp)
bp->b_vp = vp2;
splx(s);
bp->b_iooffset = dbtob(bp->b_blkno);
- VOP_STRATEGY(vp2, bp);
+ bstrategy(bp);
return;
}
diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c
index b6fa7a6..392720d 100644
--- a/sys/vm/vm_pager.c
+++ b/sys/vm/vm_pager.c
@@ -296,7 +296,6 @@ initpbuf(struct buf *bp)
bp->b_iodone = NULL;
bp->b_error = 0;
bp->b_magic = B_MAGIC_BIO;
- bp->b_op = &buf_ops_bio;
BUF_LOCK(bp, LK_EXCLUSIVE, NULL);
}
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index 2b174bc..30bd8c7 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -479,10 +479,7 @@ vnode_pager_input_smlfs(object, m)
/* do the input */
bp->b_iooffset = dbtob(bp->b_blkno);
- if (dp->v_type == VCHR)
- VOP_SPECSTRATEGY(bp->b_vp, bp);
- else
- VOP_STRATEGY(bp->b_vp, bp);
+ bstrategy(bp);
/* we definitely need to be at splvm here */
@@ -833,10 +830,7 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage)
/* do the input */
bp->b_iooffset = dbtob(bp->b_blkno);
- if (dp->v_type == VCHR)
- VOP_SPECSTRATEGY(bp->b_vp, bp);
- else
- VOP_STRATEGY(bp->b_vp, bp);
+ bstrategy(bp);
bwait(bp, PVM, "vnread");
OpenPOWER on IntegriCloud