summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2015-09-28 15:17:08 +0000
committerkrw <krw@openbsd.org>2015-09-28 15:17:08 +0000
commite25a81629f224e18244bb85c08e97e339ce4fce4 (patch)
treeb2fc62df1bbdf538517d6dfc599e5336ca95d3e6
parentsync (diff)
downloadwireguard-openbsd-e25a81629f224e18244bb85c08e97e339ce4fce4.tar.xz
wireguard-openbsd-e25a81629f224e18244bb85c08e97e339ce4fce4.zip
Mechanical changes from manual buf set up to readdisksector().
ok deraadt@
-rw-r--r--sys/arch/alpha/alpha/disksubr.c20
-rw-r--r--sys/arch/aviion/aviion/disksubr.c42
-rw-r--r--sys/arch/luna88k/luna88k/disksubr.c12
-rw-r--r--sys/arch/sgi/sgi/disksubr.c39
-rw-r--r--sys/arch/vax/vax/disksubr.c20
5 files changed, 40 insertions, 93 deletions
diff --git a/sys/arch/alpha/alpha/disksubr.c b/sys/arch/alpha/alpha/disksubr.c
index 5b393ad419c..af5923bc72e 100644
--- a/sys/arch/alpha/alpha/disksubr.c
+++ b/sys/arch/alpha/alpha/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.98 2011/04/16 03:21:15 krw Exp $ */
+/* $OpenBSD: disksubr.c,v 1.99 2015/09/28 15:17:08 krw Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $ */
/*
@@ -63,15 +63,9 @@ readdisklabel(dev_t dev, void (*strat)(struct buf *),
if (spoofonly)
goto doslabel;
- bp->b_blkno = LABELSECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if (biowait(bp)) {
- error = bp->b_error;
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, LABELSECTOR));
+ if (error)
goto done;
- }
error = checkdisklabel(bp->b_data + LABELOFFSET, lp, 0,
DL_GETDSIZE(lp));
@@ -118,12 +112,8 @@ writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp)
bp = geteblk((int)lp->d_secsize);
bp->b_dev = dev;
- bp->b_blkno = LABELSECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if ((error = biowait(bp)) != 0)
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, LABELSECTOR));
+ if (error)
goto done;
/* Write it in the regular place. */
diff --git a/sys/arch/aviion/aviion/disksubr.c b/sys/arch/aviion/aviion/disksubr.c
index ec99fce60b8..dd9f69179bc 100644
--- a/sys/arch/aviion/aviion/disksubr.c
+++ b/sys/arch/aviion/aviion/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.60 2014/12/24 22:48:27 miod Exp $ */
+/* $OpenBSD: disksubr.c,v 1.61 2015/09/28 15:17:08 krw Exp $ */
/*
* Copyright (c) 2013 Miodrag Vallat.
@@ -190,13 +190,10 @@ readvdmlabel(struct buf *bp, void (*strat)(struct buf *), struct disklabel *lp,
* may not be followed by a VDIT.
*/
- bp->b_blkno = VDM_LABEL_SECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if ((error = biowait(bp)) != 0)
- return error;
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp,
+ VDM_LABEL_SECTOR));
+ if (error)
+ return (error);
vdl = (struct vdm_label *)(bp->b_data + VDM_LABEL_OFFSET);
if (vdl->signature != VDM_LABEL_SIGNATURE)
@@ -237,13 +234,9 @@ readvdmlabel(struct buf *bp, void (*strat)(struct buf *), struct disklabel *lp,
if (spoofonly != 0)
return 0;
- bp->b_blkno = LABELSECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if ((error = biowait(bp)) != 0)
- return error;
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, LABELSECTOR));
+ if (error)
+ return (error);
return checkdisklabel(bp->b_data + LABELOFFSET, lp,
DL_GETBSTART(lp), DL_GETBEND(lp));
@@ -279,13 +272,9 @@ readvditlabel(struct buf *bp, void (*strat)(struct buf *), struct disklabel *lp,
expected_kind = VDIT_BLOCK_HEAD_BE;
blkno = VDIT_SECTOR;
for (;;) {
- bp->b_blkno = blkno;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if ((error = biowait(bp)) != 0)
- return error;
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, blkno));
+ if (error)
+ return (error);
vbh = (struct vdit_block_header *)bp->b_data;
if (VDM_ID_KIND(&vbh->id) != expected_kind ||
@@ -428,12 +417,9 @@ readvditlabel(struct buf *bp, void (*strat)(struct buf *), struct disklabel *lp,
*/
if (spoofonly == 0) {
- bp->b_blkno = start + LABELSECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if ((error = biowait(bp)) != 0)
+ error = readdisksector(bp, strat, lp,
+ DL_BLKTOSEC(lp, start + LABELSECTOR));
+ if (error)
goto done;
error = checkdisklabel(bp->b_data + LABELOFFSET, lp,
diff --git a/sys/arch/luna88k/luna88k/disksubr.c b/sys/arch/luna88k/luna88k/disksubr.c
index 8a733e5a189..588efd1e537 100644
--- a/sys/arch/luna88k/luna88k/disksubr.c
+++ b/sys/arch/luna88k/luna88k/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.57 2015/01/16 20:17:05 miod Exp $ */
+/* $OpenBSD: disksubr.c,v 1.58 2015/09/28 15:17:08 krw Exp $ */
/* $NetBSD: disksubr.c,v 1.12 2002/02/19 17:09:44 wiz Exp $ */
/*
@@ -119,15 +119,9 @@ readdisklabel(dev_t dev, void (*strat)(struct buf *),
if (spoofonly)
goto done;
- bp->b_blkno = LABELSECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if (biowait(bp)) {
- error = bp->b_error;
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, LABELSECTOR));
+ if (error)
goto done;
- }
slp = (struct sun_disklabel *)bp->b_data;
if (slp->sl_magic == SUN_DKMAGIC) {
diff --git a/sys/arch/sgi/sgi/disksubr.c b/sys/arch/sgi/sgi/disksubr.c
index e242f194a80..665940fb1f5 100644
--- a/sys/arch/sgi/sgi/disksubr.c
+++ b/sys/arch/sgi/sgi/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.30 2014/01/06 21:00:55 miod Exp $ */
+/* $OpenBSD: disksubr.c,v 1.31 2015/09/28 15:17:08 krw Exp $ */
/*
* Copyright (c) 1999 Michael Shalayeff
@@ -113,17 +113,12 @@ readsgilabel(struct buf *bp, void (*strat)(struct buf *),
struct sgilabel *dlp;
int i, *p, cs = 0;
daddr_t fsoffs, fsend;
- int offset;
-
- bp->b_blkno = 0;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
+ int error, offset;
/* if successful, locate disk label within block and validate */
- if (biowait(bp))
- return (bp->b_error);
+ error = readdisksector(bp, strat, lp, 0);
+ if (error)
+ return (error);
fsoffs = DL_SECTOBLK(lp, DL_GETBSTART(lp));
fsend = DL_SECTOBLK(lp, DL_GETBEND(lp));
@@ -192,15 +187,11 @@ finished:
if (spoofonly)
return (0);
- bp->b_blkno = DL_BLKTOSEC(lp, fsoffs + LABELSECTOR) *
- DL_BLKSPERSEC(lp);
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, fsoffs +
+ LABELSECTOR));
+ if (error)
+ return (error);
offset = DL_BLKOFFSET(lp, fsoffs + LABELSECTOR) + LABELOFFSET;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if (biowait(bp))
- return (bp->b_error);
/*
* Do OpenBSD disklabel validation/adjustment.
@@ -234,15 +225,11 @@ writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp)
goto done;
/* Read it in, slap the new label in, and write it back out */
- bp->b_blkno = DL_BLKTOSEC(lp, partoff + DOS_LABELSECTOR) *
- DL_BLKSPERSEC(lp);
- offset = DL_BLKOFFSET(lp, partoff + DOS_LABELSECTOR);
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if ((error = biowait(bp)) != 0)
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, partoff +
+ DOS_LABELSECTOR));
+ if (error)
goto done;
+ offset = DL_BLKOFFSET(lp, partoff + DOS_LABELSECTOR);
dlp = (struct disklabel *)(bp->b_data + offset);
*dlp = *lp;
diff --git a/sys/arch/vax/vax/disksubr.c b/sys/arch/vax/vax/disksubr.c
index b879278e4b5..0d2a4c352b6 100644
--- a/sys/arch/vax/vax/disksubr.c
+++ b/sys/arch/vax/vax/disksubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: disksubr.c,v 1.66 2011/07/06 18:32:59 miod Exp $ */
+/* $OpenBSD: disksubr.c,v 1.67 2015/09/28 15:17:08 krw Exp $ */
/* $NetBSD: disksubr.c,v 1.21 1999/06/30 18:48:06 ragge Exp $ */
/*
@@ -73,15 +73,9 @@ readdisklabel(dev_t dev, void (*strat)(struct buf *),
if (spoofonly)
goto done;
- bp->b_blkno = LABELSECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if (biowait(bp)) {
- error = bp->b_error;
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, LABELSECTOR));
+ if (error)
goto done;
- }
error = checkdisklabel(bp->b_data + LABELOFFSET, lp,
16, DL_GETDSIZE(lp));
@@ -123,12 +117,8 @@ writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp)
bp->b_dev = dev;
/* Read it in, slap the new label in, and write it back out */
- bp->b_blkno = LABELSECTOR;
- bp->b_bcount = lp->d_secsize;
- CLR(bp->b_flags, B_READ | B_WRITE | B_DONE);
- SET(bp->b_flags, B_BUSY | B_READ | B_RAW);
- (*strat)(bp);
- if ((error = biowait(bp)) != 0)
+ error = readdisksector(bp, strat, lp, DL_BLKTOSEC(lp, LABELSECTOR));
+ if (error)
goto done;
dlp = (struct disklabel *)(bp->b_data + LABELOFFSET);