diff options
author | phk <phk@FreeBSD.org> | 2003-08-17 19:26:03 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-08-17 19:26:03 +0000 |
commit | 7ee2cde61dea615c0eec7396d84f20d29bfef66e (patch) | |
tree | ae85b56b9acd0ae04ec0806c494140d01093580d /sys/ufs | |
parent | 52d48fa0346fce4bf7278e9a6de7ae1e7dc03b9a (diff) | |
download | FreeBSD-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.c | 12 |
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 */ |