summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-08-17 19:26:03 +0000
committerphk <phk@FreeBSD.org>2003-08-17 19:26:03 +0000
commit7ee2cde61dea615c0eec7396d84f20d29bfef66e (patch)
treeae85b56b9acd0ae04ec0806c494140d01093580d /sys/ufs
parent52d48fa0346fce4bf7278e9a6de7ae1e7dc03b9a (diff)
downloadFreeBSD-src-7ee2cde61dea615c0eec7396d84f20d29bfef66e.zip
FreeBSD-src-7ee2cde61dea615c0eec7396d84f20d29bfef66e.tar.gz
Don't use a VOP_*() function on our own vnodes, go directly to the
relevant internal function, in this case ufs_bmaparray().
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_rawread.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/ufs/ffs/ffs_rawread.c b/sys/ufs/ffs/ffs_rawread.c
index 7f667c1..2185832 100644
--- a/sys/ufs/ffs/ffs_rawread.c
+++ b/sys/ufs/ffs/ffs_rawread.c
@@ -192,10 +192,15 @@ ffs_rawread_readahead(struct vnode *vp,
int bsize;
struct vnode *dp;
int bforwards;
+ struct inode *ip;
+ ufs2_daddr_t blkno;
GIANT_REQUIRED;
bsize = vp->v_mount->mnt_stat.f_iosize;
+ ip = VTOI(vp);
+ dp = ip->i_devvp;
+
iolen = ((vm_offset_t) udata) & PAGE_MASK;
bp->b_bcount = len;
if (bp->b_bcount + iolen > bp->b_kvasize) {
@@ -217,11 +222,10 @@ ffs_rawread_readahead(struct vnode *vp,
bp->b_lblkno = bp->b_blkno = blockno;
- error = VOP_BMAP(vp, bp->b_lblkno, &dp, &bp->b_blkno, &bforwards,
- NULL);
- if (error != 0) {
+ error = ufs_bmaparray(vp, bp->b_lblkno, &blkno, NULL, &bforwards, NULL);
+ if (error != 0)
return error;
- }
+ bp->b_blkno = blkno;
if (bp->b_blkno == -1) {
/* Fill holes with NULs to preserve semantics */
OpenPOWER on IntegriCloud