- bp = geteblk(DEV_BSIZE); /* max sector size */
- bp->b_dev = dev;
- bp->b_blkno = LABELSECTOR;
- bp->b_bcount = DEV_BSIZE;
- bp->b_flags = B_BUSY | B_READ;
- hpstrategy(bp);
- biowait(bp);
- if (bp->b_flags & B_ERROR) {
- error = u.u_error; /* XXX */
- u.u_error = 0;
- sc->sc_state = CLOSED;
- goto done;
- }
- if (sc->sc_state == OPENRAW)
- goto done;
-
- dlp = (struct disklabel *)(bp->b_un.b_addr + LABELOFFSET);
- if (dlp->d_magic == DISKMAGIC &&
- dlp->d_magic2 == DISKMAGIC && dkcksum(dlp) == 0) {
- *lp = *dlp;
- } else {