summaryrefslogtreecommitdiffstats
path: root/sys/dev/softraid.c
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2015-07-21 03:30:51 +0000
committerkrw <krw@openbsd.org>2015-07-21 03:30:51 +0000
commitd9ec6765570f9aae62c59395c64ba14cf0502e78 (patch)
tree9ee5598521c19e5e3a67873a90cfc23d66953c2c /sys/dev/softraid.c
parentWhen creation of the temporary tags file fails, call the pager (diff)
downloadwireguard-openbsd-d9ec6765570f9aae62c59395c64ba14cf0502e78.tar.xz
wireguard-openbsd-d9ec6765570f9aae62c59395c64ba14cf0502e78.zip
A few more daddr_t fixes. Rename 'phys_off' variables to 'offset'
since they are now relative to chunks. Use 'blkno' as normal variable name for daddr_t items rather than mix of 'blkno, blk, offset. Change field name ssd_data_offset to ssd_data_blkno since it is a block and not byte quantity. No intentional functional change.
Diffstat (limited to 'sys/dev/softraid.c')
-rw-r--r--sys/dev/softraid.c76
1 files changed, 38 insertions, 38 deletions
diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c
index fc7f07e5d34..d2c8e7a8331 100644
--- a/sys/dev/softraid.c
+++ b/sys/dev/softraid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: softraid.c,v 1.359 2015/07/20 18:27:36 mlarkin Exp $ */
+/* $OpenBSD: softraid.c,v 1.360 2015/07/21 03:30:51 krw Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org>
@@ -401,7 +401,7 @@ sr_meta_getdevname(struct sr_softc *sc, dev_t dev, char *buf, int size)
}
int
-sr_rw(struct sr_softc *sc, dev_t dev, char *buf, size_t size, daddr_t offset,
+sr_rw(struct sr_softc *sc, dev_t dev, char *buf, size_t size, daddr_t blkno,
long flags)
{
struct vnode *vp;
@@ -411,7 +411,7 @@ sr_rw(struct sr_softc *sc, dev_t dev, char *buf, size_t size, daddr_t offset,
char *dma_buf;
DNPRINTF(SR_D_MISC, "%s: sr_rw(0x%x, %p, %zu, %lld 0x%lx)\n",
- DEVNAME(sc), dev, buf, size, (long long)offset, flags);
+ DEVNAME(sc), dev, buf, size, (long long)blkno, flags);
dma_bufsize = (size > MAXPHYS) ? MAXPHYS : size;
dma_buf = dma_alloc(dma_bufsize, PR_WAITOK);
@@ -422,8 +422,8 @@ sr_rw(struct sr_softc *sc, dev_t dev, char *buf, size_t size, daddr_t offset,
}
while (size > 0) {
- DNPRINTF(SR_D_MISC, "%s: dma_buf %p, size %zu, offset %llu)\n",
- DEVNAME(sc), dma_buf, size, offset);
+ DNPRINTF(SR_D_MISC, "%s: dma_buf %p, size %zu, blkno %lld)\n",
+ DEVNAME(sc), dma_buf, size, (long long)blkno);
bufsize = (size > MAXPHYS) ? MAXPHYS : size;
if (flags == B_WRITE)
@@ -435,7 +435,7 @@ sr_rw(struct sr_softc *sc, dev_t dev, char *buf, size_t size, daddr_t offset,
b.b_dev = dev;
b.b_iodone = NULL;
b.b_error = 0;
- b.b_blkno = offset;
+ b.b_blkno = blkno;
b.b_data = dma_buf;
b.b_bcount = bufsize;
b.b_bufsize = bufsize;
@@ -460,7 +460,7 @@ sr_rw(struct sr_softc *sc, dev_t dev, char *buf, size_t size, daddr_t offset,
size -= bufsize;
buf += bufsize;
- offset += howmany(bufsize, DEV_BSIZE);
+ blkno += howmany(bufsize, DEV_BSIZE);
}
rv = 0;
@@ -476,12 +476,12 @@ done:
int
sr_meta_rw(struct sr_discipline *sd, dev_t dev, void *md, size_t size,
- daddr_t offset, long flags)
+ daddr_t blkno, long flags)
{
int rv = 1;
DNPRINTF(SR_D_META, "%s: sr_meta_rw(0x%x, %p, %zu, %lld 0x%lx)\n",
- DEVNAME(sd->sd_sc), dev, md, size, (long long)offset, flags);
+ DEVNAME(sd->sd_sc), dev, md, size, (long long)blkno, flags);
if (md == NULL) {
printf("%s: sr_meta_rw: invalid metadata pointer\n",
@@ -489,7 +489,7 @@ sr_meta_rw(struct sr_discipline *sd, dev_t dev, void *md, size_t size,
goto done;
}
- rv = sr_rw(sd->sd_sc, dev, md, size, offset, flags);
+ rv = sr_rw(sd->sd_sc, dev, md, size, blkno, flags);
done:
return (rv);
@@ -555,7 +555,7 @@ sr_meta_init(struct sr_discipline *sd, int level, int no_chunk)
sm->ssdi.ssd_chunk_no = no_chunk;
sm->ssdi.ssd_level = level;
- sm->ssd_data_offset = SR_DATA_OFFSET;
+ sm->ssd_data_blkno = SR_DATA_OFFSET;
sm->ssd_ondisk = 0;
sr_uuid_generate(&sm->ssdi.ssd_uuid);
@@ -939,20 +939,20 @@ sr_meta_validate(struct sr_discipline *sd, dev_t dev, struct sr_metadata *sm,
if (sm->ssdi.ssd_version == 3) {
/*
- * Version 3 - update metadata version and fix up data offset
+ * Version 3 - update metadata version and fix up data blkno
* value since this did not exist in version 3.
*/
- if (sm->ssd_data_offset == 0)
- sm->ssd_data_offset = SR_META_V3_DATA_OFFSET;
+ if (sm->ssd_data_blkno == 0)
+ sm->ssd_data_blkno = SR_META_V3_DATA_OFFSET;
} else if (sm->ssdi.ssd_version == 4) {
/*
* Version 4 - original metadata format did not store
- * data offset so fix this up if necessary.
+ * data blkno so fix this up if necessary.
*/
- if (sm->ssd_data_offset == 0)
- sm->ssd_data_offset = SR_DATA_OFFSET;
+ if (sm->ssd_data_blkno == 0)
+ sm->ssd_data_blkno = SR_DATA_OFFSET;
} else if (sm->ssdi.ssd_version == SR_META_VERSION) {
@@ -2031,7 +2031,7 @@ sr_ccb_rw(struct sr_discipline *sd, int chunk, daddr_t blkno,
else
ccb->ccb_buf.b_flags |= B_WRITE;
- ccb->ccb_buf.b_blkno = blkno + sd->sd_meta->ssd_data_offset;
+ ccb->ccb_buf.b_blkno = blkno + sd->sd_meta->ssd_data_blkno;
ccb->ccb_buf.b_bcount = len;
ccb->ccb_buf.b_bufsize = len;
ccb->ccb_buf.b_resid = len;
@@ -2609,8 +2609,7 @@ sr_ioctl_vol(struct sr_softc *sc, struct bioc_vol *bv)
int vol = -1, rv = EINVAL;
struct sr_discipline *sd;
struct sr_chunk *hotspare;
- daddr_t rb;
- int64_t sz;
+ int64_t rb, sz;
TAILQ_FOREACH(sd, &sc->sc_dis_list, sd_link) {
vol++;
@@ -2834,7 +2833,7 @@ sr_hotspare(struct sr_softc *sc, dev_t dev)
struct sr_uuid uuid;
struct disklabel label;
struct vnode *vn;
- daddr_t size;
+ u_int64_t size;
char devname[32];
int rv = EINVAL;
int c, part, open = 0;
@@ -3207,12 +3206,12 @@ sr_rebuild_init(struct sr_discipline *sd, dev_t dev, int hotspare)
/* Is the partition large enough? */
size = DL_SECTOBLK(&label, DL_GETPSIZE(&label.d_partitions[part]));
- if (size <= sd->sd_meta->ssd_data_offset) {
+ if (size <= sd->sd_meta->ssd_data_blkno) {
sr_error(sc, "%s: %s partition too small\n", DEVNAME(sc),
devname);
goto done;
}
- size -= sd->sd_meta->ssd_data_offset;
+ size -= sd->sd_meta->ssd_data_blkno;
if (size > INT64_MAX) {
sr_error(sc, "%s: %s partition too large\n", DEVNAME(sc),
devname);
@@ -3706,7 +3705,7 @@ sr_ioctl_installboot(struct sr_softc *sc, struct sr_discipline *sd,
memcpy(duid, dk->dk_label->d_uid, sizeof(duid));
/* Ensure that boot storage area is large enough. */
- if (sd->sd_meta->ssd_data_offset < (SR_BOOT_OFFSET + SR_BOOT_SIZE)) {
+ if (sd->sd_meta->ssd_data_blkno < (SR_BOOT_OFFSET + SR_BOOT_SIZE)) {
sr_error(sc, "insufficient boot storage");
goto done;
}
@@ -4048,7 +4047,7 @@ sr_raid_read_cap(struct sr_workunit *wu)
struct scsi_xfer *xs = wu->swu_xs;
struct scsi_read_cap_data rcd;
struct scsi_read_cap_data_16 rcd16;
- daddr_t addr;
+ int64_t addr;
int rv = 1;
DNPRINTF(SR_D_DIS, "%s: sr_raid_read_cap\n", DEVNAME(sd->sd_sc));
@@ -4557,7 +4556,7 @@ sr_shutdown(void)
}
int
-sr_validate_io(struct sr_workunit *wu, daddr_t *blk, char *func)
+sr_validate_io(struct sr_workunit *wu, daddr_t *blkno, char *func)
{
struct sr_discipline *sd = wu->swu_dis;
struct scsi_xfer *xs = wu->swu_xs;
@@ -4566,8 +4565,8 @@ sr_validate_io(struct sr_workunit *wu, daddr_t *blk, char *func)
DNPRINTF(SR_D_DIS, "%s: %s 0x%02x\n", DEVNAME(sd->sd_sc), func,
xs->cmd->opcode);
- if (sd->sd_meta->ssd_data_offset == 0)
- panic("invalid data offset");
+ if (sd->sd_meta->ssd_data_blkno == 0)
+ panic("invalid data blkno");
if (sd->sd_vol_status == BIOC_SVOFFLINE) {
DNPRINTF(SR_D_DIS, "%s: %s device offline\n",
@@ -4582,19 +4581,19 @@ sr_validate_io(struct sr_workunit *wu, daddr_t *blk, char *func)
}
if (xs->cmdlen == 10)
- *blk = _4btol(((struct scsi_rw_big *)xs->cmd)->addr);
+ *blkno = _4btol(((struct scsi_rw_big *)xs->cmd)->addr);
else if (xs->cmdlen == 16)
- *blk = _8btol(((struct scsi_rw_16 *)xs->cmd)->addr);
+ *blkno = _8btol(((struct scsi_rw_16 *)xs->cmd)->addr);
else if (xs->cmdlen == 6)
- *blk = _3btol(((struct scsi_rw *)xs->cmd)->addr);
+ *blkno = _3btol(((struct scsi_rw *)xs->cmd)->addr);
else {
printf("%s: %s: illegal cmdlen for %s\n",
DEVNAME(sd->sd_sc), func, sd->sd_meta->ssd_devname);
goto bad;
}
- wu->swu_blk_start = *blk;
- wu->swu_blk_end = *blk + (xs->datalen >> DEV_BSHIFT) - 1;
+ wu->swu_blk_start = *blkno;
+ wu->swu_blk_end = *blkno + (xs->datalen >> DEV_BSHIFT) - 1;
if (wu->swu_blk_end > sd->sd_meta->ssdi.ssd_size) {
DNPRINTF(SR_D_DIS, "%s: %s out of bounds start: %lld "
@@ -4651,7 +4650,8 @@ sr_rebuild(struct sr_discipline *sd)
{
struct sr_softc *sc = sd->sd_sc;
u_int64_t sz, psz, whole_blk, partial_blk, blk, restart;
- daddr_t lba, rb;
+ daddr_t lba;
+ int64_t rb;
struct sr_workunit *wu_r, *wu_w;
struct scsi_xfer xs_r, xs_w;
struct scsi_rw_16 *cr, *cw;
@@ -5085,7 +5085,7 @@ sr_hibernate_io(dev_t dev, daddr_t blkno, vaddr_t addr, size_t size, int op, voi
my->subfn = get_hibernate_io_function(my->subdev);
/*
- * Find block offset where this raid partition is on
+ * Find blkno where this raid partition starts on
* the underlying disk.
*/
dl_ret = disk_readlabel(&dl, my->subdev, errstr,
@@ -5099,13 +5099,13 @@ sr_hibernate_io(dev_t dev, daddr_t blkno, vaddr_t addr, size_t size, int op, voi
if (pp->p_fstype != FS_RAID || DL_GETPSIZE(pp) == 0)
return (ENOTSUP);
- /* Find the offset of the SR part in the underlying device */
- sub_raidoff = my->srd->sd_meta->ssd_data_offset +
+ /* Find the blkno of the SR part in the underlying device */
+ sub_raidoff = my->srd->sd_meta->ssd_data_blkno +
DL_SECTOBLK(&dl, DL_GETPOFFSET(pp));
DNPRINTF(SR_D_MISC,"sr_hibernate_io: blk trans ofs: %d blks\n",
sub_raidoff);
- /* Save the offset of the swap partition in the SR disk */
+ /* Save the blkno of the swap partition in the SR disk */
my->sr_swapoff = blkno;
/* Initialize the sub-device */