summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1999-09-21 12:05:38 +0000
committerphk <phk@FreeBSD.org>1999-09-21 12:05:38 +0000
commit3d501990862034a697cc2cae3486d70409d09006 (patch)
treeb9104f6aa964d1437bce306bf56dd015f2993e2d
parent9c4d7e6d7764beb87339c7ff2220f2916ea5e5c8 (diff)
downloadFreeBSD-src-3d501990862034a697cc2cae3486d70409d09006.zip
FreeBSD-src-3d501990862034a697cc2cae3486d70409d09006.tar.gz
fix a buglet which jordan made me provoke :-)
-rw-r--r--sys/dev/md/md.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c
index 2411943..5852cbd 100644
--- a/sys/dev/md/md.c
+++ b/sys/dev/md/md.c
@@ -32,6 +32,10 @@
#include <isa/isareg.h>
#include <isa/isavar.h>
+#ifndef MDNSECT
+#define MDNSECT (10000 * 2)
+#endif
+
MALLOC_DEFINE(M_MD, "MD disk", "Memory Disk");
MALLOC_DEFINE(M_MDSECT, "MD sectors", "Memory Disk Sectors");
@@ -168,18 +172,20 @@ mdstrategy(struct buf *bp)
if (secno < sc->nsecp) {
secpp = &sc->secp[secno];
- if ((u_int)secpp > 255) {
+ if ((u_int)*secpp > 255) {
secp = *secpp;
secval = 0;
} else {
secp = 0;
- secval = (u_int) secpp;
+ secval = (u_int) *secpp;
}
} else {
secpp = 0;
secp = 0;
secval = 0;
}
+ if (md_debug > 2)
+ printf("%x %p %p %d\n", bp->b_flags, secpp, secp, secval);
if (bp->b_flags & B_FREEBUF) {
if (secpp) {
@@ -234,10 +240,8 @@ mdstrategy(struct buf *bp)
}
bp->b_resid = 0;
+ devstat_end_transaction_buf(&sc->stats, bp);
biodone(bp);
- devstat_end_transaction(&sc->stats, bp->b_bcount,
- DEVSTAT_TAG_NONE, dop);
-
s = splbio();
}
sc->busy = 0;
@@ -263,7 +267,7 @@ mdcreate(void)
&md_cdevsw, &mddisk_cdevsw);
sc->dev->si_drv1 = sc;
- sc->nsect = 10000 * 2; /* for now */
+ sc->nsect = MDNSECT; /* for now */
MALLOC(sc->secp, u_char **, sizeof(u_char *), M_MD, M_WAITOK);
bzero(sc->secp, sizeof(u_char *));
sc->nsecp = 1;
OpenPOWER on IntegriCloud