summaryrefslogtreecommitdiffstats
path: root/sys/dev/vinum
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1999-09-28 22:56:54 +0000
committergrog <grog@FreeBSD.org>1999-09-28 22:56:54 +0000
commit6f15a47d2122287638a1fd31f089e4f841b110a2 (patch)
tree096efc524899546b2309e6e766cc1b0389077699 /sys/dev/vinum
parente26d973c1a7304cb1562a92e14311347eb00cb22 (diff)
downloadFreeBSD-src-6f15a47d2122287638a1fd31f089e4f841b110a2.zip
FreeBSD-src-6f15a47d2122287638a1fd31f089e4f841b110a2.tar.gz
logrq: add sdiodone case.
launch_requests: Remove debug code sdio: Reformat log call.
Diffstat (limited to 'sys/dev/vinum')
-rw-r--r--sys/dev/vinum/vinumrequest.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/sys/dev/vinum/vinumrequest.c b/sys/dev/vinum/vinumrequest.c
index 2b7eae6..885170f 100644
--- a/sys/dev/vinum/vinumrequest.c
+++ b/sys/dev/vinum/vinumrequest.c
@@ -82,6 +82,7 @@ logrq(enum rqinfo_type type, union rqinfou info, struct buf *ubp)
case loginfo_user_bpl:
case loginfo_sdio: /* subdisk I/O */
case loginfo_sdiol: /* subdisk I/O launch */
+ case loginfo_sdiodone: /* subdisk I/O complete */
bcopy(info.bp, &rqip->info.b, sizeof(struct buf));
rqip->devmajor = major(info.bp->b_dev);
rqip->devminor = minor(info.bp->b_dev);
@@ -345,12 +346,6 @@ launch_requests(struct request *rq, int reviveok)
return 0; /* and get out of here */
}
rq->active = 0; /* nothing yet */
- /* XXX This is probably due to a bug */
- if (rq->rqg == NULL) { /* no request */
- log(LOG_ERR, "vinum: null rqg\n");
- abortrequest(rq, EINVAL);
- return -1;
- }
#if VINUMDEBUG
if (debug & DEBUG_ADDRESSES)
log(LOG_DEBUG,
@@ -868,6 +863,11 @@ sdio(struct buf *bp)
sd = &SD[Sdno(bp->b_dev)]; /* point to the subdisk */
drive = &DRIVE[sd->driveno];
+
+ /*
+ * We allow access to any kind of subdisk as long as we can expect
+ * to get the I/O performed.
+ */
if (sd->state < sd_empty) { /* nothing to talk to, */
bp->b_flags |= B_ERROR;
bp->b_error = EIO;
@@ -930,9 +930,7 @@ sdio(struct buf *bp)
s = splbio();
#if VINUMDEBUG
if (debug & DEBUG_LASTREQS)
- logrq(loginfo_sdiol,
- (union rqinfou) (struct buf *) sbp,
- (struct buf *) sbp);
+ logrq(loginfo_sdiol, (union rqinfou) &sbp->b, &sbp->b);
#endif
BUF_STRATEGY(&sbp->b, 0);
splx(s);
OpenPOWER on IntegriCloud