summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/coda/coda_vnops.c4
-rw-r--r--sys/dev/ccd/ccd.c2
-rw-r--r--sys/dev/md/md.c2
-rw-r--r--sys/dev/vinum/vinumdaemon.c2
-rw-r--r--sys/dev/vinum/vinuminterrupt.c12
-rw-r--r--sys/dev/vinum/vinumrequest.c8
-rw-r--r--sys/dev/vinum/vinumrevive.c2
-rw-r--r--sys/fs/coda/coda_vnops.c4
-rw-r--r--sys/fs/hpfs/hpfs_vnops.c8
-rw-r--r--sys/fs/msdosfs/msdosfs_fat.c5
-rw-r--r--sys/fs/msdosfs/msdosfs_vnops.c19
-rw-r--r--sys/geom/geom_ccd.c2
-rw-r--r--sys/gnu/ext2fs/ext2_bmap.c13
-rw-r--r--sys/gnu/ext2fs/ext2_subr.c2
-rw-r--r--sys/gnu/fs/ext2fs/ext2_bmap.c13
-rw-r--r--sys/gnu/fs/ext2fs/ext2_subr.c2
-rw-r--r--sys/kern/vfs_bio.c4
-rw-r--r--sys/kern/vfs_cluster.c6
-rw-r--r--sys/kern/vnode_if.src4
-rw-r--r--sys/sys/bio.h6
-rw-r--r--sys/sys/buf.h4
-rw-r--r--sys/sys/types.h1
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c8
-rw-r--r--sys/ufs/ffs/ffs_softdep.c7
-rw-r--r--sys/ufs/ufs/ufs_bmap.c13
-rw-r--r--sys/ufs/ufs/ufs_vnops.c4
-rw-r--r--sys/vm/vnode_pager.c4
27 files changed, 98 insertions, 63 deletions
diff --git a/sys/coda/coda_vnops.c b/sys/coda/coda_vnops.c
index 3c3eee9..646ee34 100644
--- a/sys/coda/coda_vnops.c
+++ b/sys/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/dev/ccd/ccd.c b/sys/dev/ccd/ccd.c
index a1d1965..72b2f7e 100644
--- a/sys/dev/ccd/ccd.c
+++ b/sys/dev/ccd/ccd.c
@@ -1173,7 +1173,7 @@ ccdiodone(struct bio *ibp)
bp->bio_error = cbp->cb_buf.bio_error ?
cbp->cb_buf.bio_error : EIO;
}
- printf("ccd%d: error %d on component %d block %d (ccd block %d)%s\n",
+ printf("ccd%d: error %d on component %d block %d (ccd block %lld)%s\n",
unit, bp->bio_error, cbp->cb_comp,
(int)cbp->cb_buf.bio_blkno, bp->bio_blkno, msg);
}
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c
index c1ddf8a..27f5499 100644
--- a/sys/dev/md/md.c
+++ b/sys/dev/md/md.c
@@ -383,7 +383,7 @@ mdstrategy(struct bio *bp)
int error;
if (md_debug > 1)
- printf("mdstrategy(%p) %s %x, %d, %ld, %p)\n",
+ printf("mdstrategy(%p) %s %x, %lld, %ld, %p)\n",
bp, devtoname(bp->bio_dev), bp->bio_flags, bp->bio_blkno,
bp->bio_bcount / DEV_BSIZE, bp->bio_data);
diff --git a/sys/dev/vinum/vinumdaemon.c b/sys/dev/vinum/vinumdaemon.c
index f03d36b..570495b 100644
--- a/sys/dev/vinum/vinumdaemon.c
+++ b/sys/dev/vinum/vinumdaemon.c
@@ -109,7 +109,7 @@ vinum_daemon(void)
struct request *rq = request->info.rq;
log(LOG_WARNING,
- "vinum: recovering I/O request: %p\n%s dev %d.%d, offset 0x%x, length %ld\n",
+ "vinum: recovering I/O request: %p\n%s dev %d.%d, offset 0x%llx, length %ld\n",
rq,
rq->bp->b_iocmd == BIO_READ ? "Read" : "Write",
major(rq->bp->b_dev),
diff --git a/sys/dev/vinum/vinuminterrupt.c b/sys/dev/vinum/vinuminterrupt.c
index 288fa58..0d40bf2 100644
--- a/sys/dev/vinum/vinuminterrupt.c
+++ b/sys/dev/vinum/vinuminterrupt.c
@@ -100,7 +100,7 @@ complete_rqe(struct buf *bp)
set_sd_state(rqe->sdno, sd_crashed, setstate_force); /* subdisk is crashed */
}
log(LOG_ERR,
- "%s:%s read error, block %d for %ld bytes\n",
+ "%s:%s read error, block %lld for %ld bytes\n",
gravity,
sd->name,
bp->b_blkno,
@@ -111,20 +111,20 @@ complete_rqe(struct buf *bp)
set_sd_state(rqe->sdno, sd_stale, setstate_force); /* subdisk is stale */
}
log(LOG_ERR,
- "%s:%s write error, block %d for %ld bytes\n",
+ "%s:%s write error, block %lld for %ld bytes\n",
gravity,
sd->name,
bp->b_blkno,
bp->b_bcount);
}
log(LOG_ERR,
- "%s: user buffer block %d for %ld bytes\n",
+ "%s: user buffer block %lld for %ld bytes\n",
sd->name,
ubp->b_blkno,
ubp->b_bcount);
if (rq->error == ENXIO) { /* the drive's down too */
log(LOG_ERR,
- "%s: fatal drive I/O error, block %d for %ld bytes\n",
+ "%s: fatal drive I/O error, block %lld for %ld bytes\n",
DRIVE[rqe->driveno].label.name,
bp->b_blkno,
bp->b_bcount);
@@ -409,7 +409,7 @@ complete_raid5_write(struct rqelement *rqe)
#ifdef VINUMDEBUG
if (debug & DEBUG_ADDRESSES)
log(LOG_DEBUG,
- " %s dev %d.%d, sd %d, offset 0x%x, devoffset 0x%x, length %ld\n",
+ " %s dev %d.%d, sd %d, offset 0x%x, devoffset 0x%llx, length %ld\n",
rqe->b.b_iocmd == BIO_READ ? "Read" : "Write",
major(rqe->b.b_dev),
minor(rqe->b.b_dev),
@@ -448,7 +448,7 @@ complete_raid5_write(struct rqelement *rqe)
#ifdef VINUMDEBUG
if (debug & DEBUG_ADDRESSES)
log(LOG_DEBUG,
- " %s dev %d.%d, sd %d, offset 0x%x, devoffset 0x%x, length %ld\n",
+ " %s dev %d.%d, sd %d, offset 0x%x, devoffset 0x%llx, length %ld\n",
rqe->b.b_iocmd == BIO_READ ? "Read" : "Write",
major(rqe->b.b_dev),
minor(rqe->b.b_dev),
diff --git a/sys/dev/vinum/vinumrequest.c b/sys/dev/vinum/vinumrequest.c
index e7cd1c4..9dde28c 100644
--- a/sys/dev/vinum/vinumrequest.c
+++ b/sys/dev/vinum/vinumrequest.c
@@ -340,7 +340,7 @@ launch_requests(struct request *rq, int reviveok)
#ifdef VINUMDEBUG
if (debug & DEBUG_REVIVECONFLICT)
log(LOG_DEBUG,
- "Revive conflict sd %d: %p\n%s dev %d.%d, offset 0x%x, length %ld\n",
+ "Revive conflict sd %d: %p\n%s dev %d.%d, offset 0x%llx, length %ld\n",
rq->sdno,
rq,
rq->bp->b_iocmd == BIO_READ ? "Read" : "Write",
@@ -355,7 +355,7 @@ launch_requests(struct request *rq, int reviveok)
#ifdef VINUMDEBUG
if (debug & DEBUG_ADDRESSES)
log(LOG_DEBUG,
- "Request: %p\n%s dev %d.%d, offset 0x%x, length %ld\n",
+ "Request: %p\n%s dev %d.%d, offset 0x%llx, length %ld\n",
rq,
rq->bp->b_iocmd == BIO_READ ? "Read" : "Write",
major(rq->bp->b_dev),
@@ -427,7 +427,7 @@ launch_requests(struct request *rq, int reviveok)
#ifdef VINUMDEBUG
if (debug & DEBUG_ADDRESSES)
log(LOG_DEBUG,
- " %s dev %d.%d, sd %d, offset 0x%x, devoffset 0x%x, length %ld\n",
+ " %s dev %d.%d, sd %d, offset 0x%x, devoffset 0x%llx, length %ld\n",
rqe->b.b_iocmd == BIO_READ ? "Read" : "Write",
major(rqe->b.b_dev),
minor(rqe->b.b_dev),
@@ -630,7 +630,7 @@ bre(struct request *rq,
#ifdef VINUMDEBUG
if (debug & DEBUG_EOFINFO) { /* tell on the request */
log(LOG_DEBUG,
- "vinum: EOF on plex %s, sd %s offset %x (user offset %x)\n",
+ "vinum: EOF on plex %s, sd %s offset %x (user offset %llx)\n",
plex->name,
sd->name,
(u_int) sd->sectors,
diff --git a/sys/dev/vinum/vinumrevive.c b/sys/dev/vinum/vinumrevive.c
index 85b73f3..1e368db 100644
--- a/sys/dev/vinum/vinumrevive.c
+++ b/sys/dev/vinum/vinumrevive.c
@@ -201,7 +201,7 @@ revive_block(int sdno)
if (debug & DEBUG_REVIVECONFLICT)
log(LOG_DEBUG,
- "Relaunch revive conflict sd %d: %p\n%s dev %d.%d, offset 0x%x, length %ld\n",
+ "Relaunch revive conflict sd %d: %p\n%s dev %d.%d, offset 0x%llx, length %ld\n",
rq->sdno,
rq,
rq->bp->b_iocmd == BIO_READ ? "Read" : "Write",
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;
diff --git a/sys/geom/geom_ccd.c b/sys/geom/geom_ccd.c
index a1d1965..72b2f7e 100644
--- a/sys/geom/geom_ccd.c
+++ b/sys/geom/geom_ccd.c
@@ -1173,7 +1173,7 @@ ccdiodone(struct bio *ibp)
bp->bio_error = cbp->cb_buf.bio_error ?
cbp->cb_buf.bio_error : EIO;
}
- printf("ccd%d: error %d on component %d block %d (ccd block %d)%s\n",
+ printf("ccd%d: error %d on component %d block %d (ccd block %lld)%s\n",
unit, bp->bio_error, cbp->cb_comp,
(int)cbp->cb_buf.bio_blkno, bp->bio_blkno, msg);
}
diff --git a/sys/gnu/ext2fs/ext2_bmap.c b/sys/gnu/ext2fs/ext2_bmap.c
index ce4ddb8..fa8ea01 100644
--- a/sys/gnu/ext2fs/ext2_bmap.c
+++ b/sys/gnu/ext2fs/ext2_bmap.c
@@ -64,13 +64,16 @@ int
ufs_bmap(ap)
struct vop_bmap_args /* {
struct vnode *a_vp;
- ufs_daddr_t a_bn;
+ daddr64_t a_bn;
struct vnode **a_vpp;
- ufs_daddr_t *a_bnp;
+ daddr64_t *a_bnp;
int *a_runp;
int *a_runb;
} */ *ap;
{
+ daddr_t blkno;
+ int error;
+
/*
* Check for underlying vnode requests and ensure that logical
* to physical mapping is requested.
@@ -80,8 +83,10 @@ ufs_bmap(ap)
if (ap->a_bnp == NULL)
return (0);
- return (ufs_bmaparray(ap->a_vp, ap->a_bn, ap->a_bnp,
- ap->a_runp, ap->a_runb));
+ error = ufs_bmaparray(ap->a_vp, ap->a_bn, &blkno,
+ ap->a_runp, ap->a_runb);
+ *ap->a_bnp = blkno;
+ return (error);
}
/*
diff --git a/sys/gnu/ext2fs/ext2_subr.c b/sys/gnu/ext2fs/ext2_subr.c
index 49210b0..fc8b623 100644
--- a/sys/gnu/ext2fs/ext2_subr.c
+++ b/sys/gnu/ext2fs/ext2_subr.c
@@ -120,7 +120,7 @@ ext2_checkoverlap(bp, ip)
ep->b_blkno + btodb(ep->b_bcount) <= start)
continue;
vprint("Disk overlap", vp);
- (void)printf("\tstart %d, end %d overlap start %d, end %ld\n",
+ (void)printf("\tstart %d, end %d overlap start %lld, end %ld\n",
start, last, ep->b_blkno,
(long)(ep->b_blkno + btodb(ep->b_bcount) - 1));
panic("Disk buffer overlap");
diff --git a/sys/gnu/fs/ext2fs/ext2_bmap.c b/sys/gnu/fs/ext2fs/ext2_bmap.c
index ce4ddb8..fa8ea01 100644
--- a/sys/gnu/fs/ext2fs/ext2_bmap.c
+++ b/sys/gnu/fs/ext2fs/ext2_bmap.c
@@ -64,13 +64,16 @@ int
ufs_bmap(ap)
struct vop_bmap_args /* {
struct vnode *a_vp;
- ufs_daddr_t a_bn;
+ daddr64_t a_bn;
struct vnode **a_vpp;
- ufs_daddr_t *a_bnp;
+ daddr64_t *a_bnp;
int *a_runp;
int *a_runb;
} */ *ap;
{
+ daddr_t blkno;
+ int error;
+
/*
* Check for underlying vnode requests and ensure that logical
* to physical mapping is requested.
@@ -80,8 +83,10 @@ ufs_bmap(ap)
if (ap->a_bnp == NULL)
return (0);
- return (ufs_bmaparray(ap->a_vp, ap->a_bn, ap->a_bnp,
- ap->a_runp, ap->a_runb));
+ error = ufs_bmaparray(ap->a_vp, ap->a_bn, &blkno,
+ ap->a_runp, ap->a_runb);
+ *ap->a_bnp = blkno;
+ return (error);
}
/*
diff --git a/sys/gnu/fs/ext2fs/ext2_subr.c b/sys/gnu/fs/ext2fs/ext2_subr.c
index 49210b0..fc8b623 100644
--- a/sys/gnu/fs/ext2fs/ext2_subr.c
+++ b/sys/gnu/fs/ext2fs/ext2_subr.c
@@ -120,7 +120,7 @@ ext2_checkoverlap(bp, ip)
ep->b_blkno + btodb(ep->b_bcount) <= start)
continue;
vprint("Disk overlap", vp);
- (void)printf("\tstart %d, end %d overlap start %d, end %ld\n",
+ (void)printf("\tstart %d, end %d overlap start %lld, end %ld\n",
start, last, ep->b_blkno,
(long)(ep->b_blkno + btodb(ep->b_bcount) - 1));
panic("Disk buffer overlap");
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index bf4970d..87b93ba 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -3349,7 +3349,7 @@ vm_hold_free_pages(struct buf * bp, vm_offset_t from, vm_offset_t to)
p = bp->b_pages[index];
if (p && (index < bp->b_npages)) {
if (p->busy) {
- printf("vm_hold_free_pages: blkno: %d, lblkno: %d\n",
+ printf("vm_hold_free_pages: blkno: %lld, lblkno: %lld\n",
bp->b_blkno, bp->b_lblkno);
}
bp->b_pages[index] = NULL;
@@ -3381,7 +3381,7 @@ DB_SHOW_COMMAND(buffer, db_show_buffer)
db_printf("b_flags = 0x%b\n", (u_int)bp->b_flags, PRINT_BUF_FLAGS);
db_printf("b_error = %d, b_bufsize = %ld, b_bcount = %ld, "
"b_resid = %ld\nb_dev = (%d,%d), b_data = %p, "
- "b_blkno = %d, b_pblkno = %d\n",
+ "b_blkno = %lld, b_pblkno = %lld\n",
bp->b_error, bp->b_bufsize, bp->b_bcount, bp->b_resid,
major(bp->b_dev), minor(bp->b_dev),
bp->b_data, bp->b_blkno, bp->b_pblkno);
diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c
index 2c941fb..59b1f93 100644
--- a/sys/kern/vfs_cluster.c
+++ b/sys/kern/vfs_cluster.c
@@ -67,7 +67,7 @@ static struct cluster_save *
cluster_collectbufs __P((struct vnode *vp, struct buf *last_bp));
static struct buf *
cluster_rbuild __P((struct vnode *vp, u_quad_t filesize, daddr_t lbn,
- daddr_t blkno, long size, int run, struct buf *fbp));
+ daddr64_t blkno, long size, int run, struct buf *fbp));
static int write_behind = 1;
SYSCTL_INT(_vfs, OID_AUTO, write_behind, CTLFLAG_RW, &write_behind, 0,
@@ -103,7 +103,7 @@ cluster_read(vp, filesize, lblkno, size, cred, totread, seqcount, bpp)
struct buf **bpp;
{
struct buf *bp, *rbp, *reqbp;
- daddr_t blkno, origblkno;
+ daddr64_t blkno, origblkno;
int error, num_ra;
int i;
int maxra, racluster;
@@ -319,7 +319,7 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp)
struct vnode *vp;
u_quad_t filesize;
daddr_t lbn;
- daddr_t blkno;
+ daddr64_t blkno;
long size;
int run;
struct buf *fbp;
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src
index cdeb5e5..7d1f6b0 100644
--- a/sys/kern/vnode_if.src
+++ b/sys/kern/vnode_if.src
@@ -378,9 +378,9 @@ vop_unlock {
#
vop_bmap {
IN struct vnode *vp;
- IN daddr_t bn;
+ IN daddr64_t bn;
OUT struct vnode **vpp;
- IN daddr_t *bnp;
+ IN daddr64_t *bnp;
OUT int *runp;
OUT int *runb;
};
diff --git a/sys/sys/bio.h b/sys/sys/bio.h
index 7f1328d..c5b8ba2 100644
--- a/sys/sys/bio.h
+++ b/sys/sys/bio.h
@@ -65,7 +65,7 @@ struct iodone_chain {
struct bio {
u_int bio_cmd; /* I/O operation. */
dev_t bio_dev; /* Device to do I/O on. */
- daddr_t bio_blkno; /* Underlying physical block number. */
+ daddr64_t bio_blkno; /* Underlying physical block number. */
off_t bio_offset; /* Offset into file. */
long bio_bcount; /* Valid bytes in buffer. */
caddr_t bio_data; /* Memory, superblocks, indirect etc. */
@@ -81,7 +81,7 @@ struct bio {
TAILQ_ENTRY(bio) bio_queue; /* Disksort queue. */
/* XXX: these go away when bio chaining is introduced */
- daddr_t bio_pblkno; /* physical block number */
+ daddr64_t bio_pblkno; /* physical block number */
struct iodone_chain *bio_done_chain;
struct bio *bio_linkage;
off_t bio_length;
@@ -136,7 +136,7 @@ biofinish(struct bio *bp, struct devstat *stat, int error)
struct bio_queue_head {
TAILQ_HEAD(bio_queue, bio) queue;
- daddr_t last_pblkno;
+ daddr64_t last_pblkno;
struct bio *insert_point;
struct bio *switch_point;
int busy;
diff --git a/sys/sys/buf.h b/sys/sys/buf.h
index ca0383e..2cfae96 100644
--- a/sys/sys/buf.h
+++ b/sys/sys/buf.h
@@ -127,7 +127,7 @@ struct buf {
long b_runningbufspace; /* when I/O is running, pipelining */
caddr_t b_kvabase; /* base kva for buffer */
int b_kvasize; /* size of kva for buffer */
- daddr_t b_lblkno; /* Logical block number. */
+ daddr64_t b_lblkno; /* Logical block number. */
struct vnode *b_vp; /* Device vnode. */
int b_dirtyoff; /* Offset in buffer of dirty region. */
int b_dirtyend; /* Offset of end of dirty region. */
@@ -365,7 +365,7 @@ BUF_REFCNT(struct buf *bp)
struct buf_queue_head {
TAILQ_HEAD(buf_queue, buf) queue;
- daddr_t last_pblkno;
+ daddr64_t last_pblkno;
struct buf *insert_point;
struct buf *switch_point;
};
diff --git a/sys/sys/types.h b/sys/sys/types.h
index db3c04d..b4babf5 100644
--- a/sys/sys/types.h
+++ b/sys/sys/types.h
@@ -71,6 +71,7 @@ typedef char * caddr_t; /* core address */
typedef __const char * c_caddr_t; /* core address, pointer to const */
typedef __volatile char *v_caddr_t; /* core address, pointer to volatile */
typedef int32_t daddr_t; /* disk address */
+typedef int64_t daddr64_t; /* 64-bit disk address */
typedef u_int32_t u_daddr_t; /* unsigned disk address */
typedef u_int32_t fixpt_t; /* fixed point number */
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c
index fd47219..faca50f 100644
--- a/sys/ufs/ffs/ffs_snapshot.c
+++ b/sys/ufs/ffs/ffs_snapshot.c
@@ -511,8 +511,8 @@ out:
/*
* Copy a cylinder group map. All the unallocated blocks are marked
* BLK_NOCOPY so that the snapshot knows that it need not copy them
- * if they are later written. If how is one, then this is a first
- * pass, so only setting needs to be done. If how is 2, then this
+ * if they are later written. If passno is one, then this is a first
+ * pass, so only setting needs to be done. If passno is 2, then this
* is a revision to a previous pass which must be undone as the
* replacement pass is done.
*/
@@ -1102,7 +1102,7 @@ ffs_snapblkfree(fs, devvp, bno, size, inum)
}
#ifdef DEBUG
if (snapdebug)
- printf("%s%d lbn %d for inum %d size %ld to blkno %d\n",
+ printf("%s%d lbn %d for inum %d size %ld to blkno %lld\n",
"Copyonremove: snapino ", ip->i_number, lbn,
inum, size, cbp->b_blkno);
#endif
@@ -1319,7 +1319,7 @@ retry:
printf("fs metadata");
else
printf("inum %d", VTOI(bp->b_vp)->i_number);
- printf(" lblkno %d to blkno %d\n", bp->b_lblkno,
+ printf(" lblkno %lld to blkno %lld\n", bp->b_lblkno,
cbp->b_blkno);
}
#endif
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index b07a356..475ba17 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -1654,6 +1654,7 @@ setup_allocindir_phase2(bp, ip, aip)
struct allocindir *oldaip;
struct freefrag *freefrag;
struct newblk *newblk;
+ daddr_t blkno;
if (bp->b_lblkno >= 0)
panic("setup_allocindir_phase2: not indir blk");
@@ -1733,8 +1734,10 @@ setup_allocindir_phase2(bp, ip, aip)
newindirdep->ir_state = ATTACHED;
LIST_INIT(&newindirdep->ir_deplisthd);
LIST_INIT(&newindirdep->ir_donehd);
- if (bp->b_blkno == bp->b_lblkno)
- ufs_bmaparray(bp->b_vp, bp->b_lblkno, &bp->b_blkno, NULL, NULL);
+ if (bp->b_blkno == bp->b_lblkno) {
+ ufs_bmaparray(bp->b_vp, bp->b_lblkno, &blkno, NULL, NULL);
+ bp->b_blkno = blkno;
+ }
newindirdep->ir_savebp =
getblk(ip->i_devvp, bp->b_blkno, bp->b_bcount, 0, 0);
BUF_KERNPROC(newindirdep->ir_savebp);
diff --git a/sys/ufs/ufs/ufs_bmap.c b/sys/ufs/ufs/ufs_bmap.c
index ce4ddb8..fa8ea01 100644
--- a/sys/ufs/ufs/ufs_bmap.c
+++ b/sys/ufs/ufs/ufs_bmap.c
@@ -64,13 +64,16 @@ int
ufs_bmap(ap)
struct vop_bmap_args /* {
struct vnode *a_vp;
- ufs_daddr_t a_bn;
+ daddr64_t a_bn;
struct vnode **a_vpp;
- ufs_daddr_t *a_bnp;
+ daddr64_t *a_bnp;
int *a_runp;
int *a_runb;
} */ *ap;
{
+ daddr_t blkno;
+ int error;
+
/*
* Check for underlying vnode requests and ensure that logical
* to physical mapping is requested.
@@ -80,8 +83,10 @@ ufs_bmap(ap)
if (ap->a_bnp == NULL)
return (0);
- return (ufs_bmaparray(ap->a_vp, ap->a_bn, ap->a_bnp,
- ap->a_runp, ap->a_runb));
+ error = ufs_bmaparray(ap->a_vp, ap->a_bn, &blkno,
+ ap->a_runp, ap->a_runb);
+ *ap->a_bnp = blkno;
+ return (error);
}
/*
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index cc66243..bf05ff3 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -1916,13 +1916,15 @@ ufs_strategy(ap)
register struct buf *bp = ap->a_bp;
register struct vnode *vp = ap->a_vp;
register struct inode *ip;
+ daddr_t blkno;
int error;
ip = VTOI(vp);
if (vp->v_type == VBLK || vp->v_type == VCHR)
panic("ufs_strategy: spec");
if (bp->b_blkno == bp->b_lblkno) {
- error = ufs_bmaparray(vp, bp->b_lblkno, &bp->b_blkno, NULL, NULL);
+ error = ufs_bmaparray(vp, bp->b_lblkno, &blkno, NULL, NULL);
+ bp->b_blkno = blkno;
if (error) {
bp->b_error = error;
bp->b_ioflags |= BIO_ERROR;
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index bed9b75..85d04e4 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -193,7 +193,7 @@ vnode_pager_haspage(object, pindex, before, after)
int *after;
{
struct vnode *vp = object->handle;
- daddr_t bn;
+ daddr64_t bn;
int err;
daddr_t reqblock;
int poff;
@@ -370,7 +370,7 @@ vnode_pager_addr(vp, address, run)
{
int rtaddress;
int bsize;
- daddr_t block;
+ daddr64_t block;
struct vnode *rtvp;
int err;
daddr_t vblock;
OpenPOWER on IntegriCloud