diff options
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/coda/coda_vnops.c | 4 | ||||
-rw-r--r-- | sys/fs/hpfs/hpfs_vnops.c | 8 | ||||
-rw-r--r-- | sys/fs/msdosfs/msdosfs_fat.c | 5 | ||||
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vnops.c | 19 |
4 files changed, 25 insertions, 11 deletions
diff --git a/sys/fs/coda/coda_vnops.c b/sys/fs/coda/coda_vnops.c index 3c3eee9..646ee34 100644 --- a/sys/fs/coda/coda_vnops.c +++ b/sys/fs/coda/coda_vnops.c @@ -1693,7 +1693,7 @@ coda_bmap(v) struct vnode *vp __attribute__((unused)) = ap->a_vp; /* file's vnode */ daddr_t bn __attribute__((unused)) = ap->a_bn; /* fs block number */ struct vnode **vpp = ap->a_vpp; /* RETURN vp of device */ - daddr_t *bnp __attribute__((unused)) = ap->a_bnp; /* RETURN device block number */ + daddr64_t *bnp __attribute__((unused)) = ap->a_bnp; /* RETURN device block number */ struct thread *td __attribute__((unused)) = curthread; /* upcall decl */ /* locals */ @@ -1706,7 +1706,7 @@ coda_bmap(v) return EINVAL; ret = VOP_BMAP(cp->c_ovp, bn, vpp, bnp, ap->a_runp, ap->a_runb); #if 0 - printf("VOP_BMAP(cp->c_ovp %p, bn %p, vpp %p, bnp %p, ap->a_runp %p, ap->a_runb %p) = %d\n", + printf("VOP_BMAP(cp->c_ovp %p, bn %p, vpp %p, bnp %lld, ap->a_runp %p, ap->a_runb %p) = %d\n", cp->c_ovp, bn, vpp, bnp, ap->a_runp, ap->a_runb, ret); #endif return ret; diff --git a/sys/fs/hpfs/hpfs_vnops.c b/sys/fs/hpfs/hpfs_vnops.c index 2e6ec56..e3ed555 100644 --- a/sys/fs/hpfs/hpfs_vnops.c +++ b/sys/fs/hpfs/hpfs_vnops.c @@ -275,6 +275,7 @@ hpfs_bmap(ap) } */ *ap; { register struct hpfsnode *hp = VTOHP(ap->a_vp); + daddr_t blkno; int error; if (ap->a_vpp != NULL) @@ -286,7 +287,8 @@ hpfs_bmap(ap) dprintf(("hpfs_bmap(0x%x, 0x%x): ",hp->h_no, ap->a_bn)); - error = hpfs_hpbmap (hp, ap->a_bn, ap->a_bnp, ap->a_runp); + error = hpfs_hpbmap (hp, ap->a_bn, &blkno, ap->a_runp); + *ap->a_bnp = blkno; return (error); } @@ -677,6 +679,7 @@ hpfs_strategy(ap) register struct buf *bp = ap->a_bp; register struct vnode *vp = ap->a_vp; register struct hpfsnode *hp = VTOHP(ap->a_vp); + daddr_t blkno; int error; dprintf(("hpfs_strategy(): \n")); @@ -684,7 +687,8 @@ hpfs_strategy(ap) if (vp->v_type == VBLK || vp->v_type == VCHR) panic("hpfs_strategy: spec"); if (bp->b_blkno == bp->b_lblkno) { - error = hpfs_hpbmap (hp, bp->b_lblkno, &bp->b_blkno, NULL); + error = hpfs_hpbmap (hp, bp->b_lblkno, &blkno, NULL); + bp->b_blkno = blkno; if (error) { printf("hpfs_strategy: hpfs_bpbmap FAILED %d\n", error); bp->b_error = error; diff --git a/sys/fs/msdosfs/msdosfs_fat.c b/sys/fs/msdosfs/msdosfs_fat.c index 828edb70..7c4f6c9 100644 --- a/sys/fs/msdosfs/msdosfs_fat.c +++ b/sys/fs/msdosfs/msdosfs_fat.c @@ -994,6 +994,7 @@ extendfile(dep, count, bpp, ncp, flags) u_long cn, got; struct msdosfsmount *pmp = dep->de_pmp; struct buf *bp; + daddr_t blkno; /* * Don't try to extend the root directory @@ -1083,10 +1084,12 @@ extendfile(dep, count, bpp, ncp, flags) */ if (pcbmap(dep, de_bn2cn(pmp, bp->b_lblkno), - &bp->b_blkno, 0, 0)) + &blkno, 0, 0)) bp->b_blkno = -1; if (bp->b_blkno == -1) panic("extendfile: pcbmap"); + else + bp->b_blkno = blkno; } clrbuf(bp); if (bpp) { diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c index d506937..51e541f 100644 --- a/sys/fs/msdosfs/msdosfs_vnops.c +++ b/sys/fs/msdosfs/msdosfs_vnops.c @@ -711,10 +711,11 @@ msdosfs_write(ap) * for the fat table. (see msdosfs_strategy) */ if (bp->b_blkno == bp->b_lblkno) { - error = pcbmap(dep, bp->b_lblkno, &bp->b_blkno, - 0, 0); + error = pcbmap(dep, bp->b_lblkno, &bn, 0, 0); if (error) bp->b_blkno = -1; + else + bp->b_blkno = bn; } if (bp->b_blkno == -1) { brelse(bp); @@ -1733,14 +1734,16 @@ static int msdosfs_bmap(ap) struct vop_bmap_args /* { struct vnode *a_vp; - daddr_t a_bn; + daddr64_t a_bn; struct vnode **a_vpp; - daddr_t *a_bnp; + daddr64_t *a_bnp; int *a_runp; int *a_runb; } */ *ap; { struct denode *dep = VTODE(ap->a_vp); + daddr_t blkno; + int error; if (ap->a_vpp != NULL) *ap->a_vpp = dep->de_devvp; @@ -1755,7 +1758,9 @@ msdosfs_bmap(ap) if (ap->a_runb) { *ap->a_runb = 0; } - return (pcbmap(dep, ap->a_bn, ap->a_bnp, 0, 0)); + error = pcbmap(dep, ap->a_bn, &blkno, 0, 0); + *ap->a_bnp = blkno; + return (error); } static int @@ -1769,6 +1774,7 @@ msdosfs_strategy(ap) struct denode *dep = VTODE(bp->b_vp); struct vnode *vp; int error = 0; + daddr_t blkno; if (bp->b_vp->v_type == VBLK || bp->b_vp->v_type == VCHR) panic("msdosfs_strategy: spec"); @@ -1779,7 +1785,8 @@ msdosfs_strategy(ap) * don't allow files with holes, so we shouldn't ever see this. */ if (bp->b_blkno == bp->b_lblkno) { - error = pcbmap(dep, bp->b_lblkno, &bp->b_blkno, 0, 0); + error = pcbmap(dep, bp->b_lblkno, &blkno, 0, 0); + bp->b_blkno = blkno; if (error) { bp->b_error = error; bp->b_ioflags |= BIO_ERROR; |