Don't use a VOP_*() function on our own vnodes, go directly to the

relevant internal function, in this case ufs_bmaparray().
This commit is contained in:
Poul-Henning Kamp 2003-08-17 19:26:03 +00:00
parent f53579cfaa
commit b103854847
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=119049

View file

@ -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 */