DragonFly kernel List (threaded) for 2007-07
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: disklabel -r -W md0s0 enters into debugger
:I bet it's been fixed. Would like to know where.
:
:Cheers
:kmb
Yah. 1.17 /usr/src/sys/dev/disk/md/md.c. 'bp' was not being
properly derived from the bio so a stale bp was being tested,
allowing a NULL bio to pass through the check.
-Matt
Matthew Dillon
<dillon@backplane.com>
Index: md.c
===================================================================
RCS file: /cvs/src/sys/dev/disk/md/md.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -r1.16 -r1.17
--- md.c 15 May 2007 00:01:03 -0000 1.16
+++ md.c 31 Jul 2007 20:04:48 -0000 1.17
@@ -7,7 +7,7 @@ * this stuff is worth it, you can buy m
* ----------------------------------------------------------------------------
*
* $FreeBSD: src/sys/dev/md/md.c,v 1.8.2.2 2002/08/19 17:43:34 jdp Exp $
- * $DragonFly: src/sys/dev/disk/md/md.c,v 1.16 2007/05/15 00:01:03 dillon Exp $
+ * $DragonFly: src/sys/dev/disk/md/md.c,v 1.17 2007/07/31 20:04:48 dillon Exp $
*
*/
@@ -182,11 +182,13 @@ sc->busy++;
while (1) {
bio = bioq_first(&sc->bio_queue);
- if (bp)
- bioq_remove(&sc->bio_queue, bio);
- crit_exit();
- if (bio == NULL)
+ if (bio == NULL) {
+ crit_exit();
break;
+ }
+ crit_exit();
+ bioq_remove(&sc->bio_queue, bio);
+ bp = bio->bio_buf;
devstat_start_transaction(&sc->stats);
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]