mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-04 07:31:11 +00:00
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:
parent
f53579cfaa
commit
b103854847
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=119049
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue