summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1995-05-24 23:33:42 +0000
committerdg <dg@FreeBSD.org>1995-05-24 23:33:42 +0000
commit456d8b24246a10fdae8a8b74e98ec78418620428 (patch)
tree1cdf07142e7e2ac2d8550cf8b7f78f1f7ce7712d
parentf12325f10506a028f4908783cd3ee6224ed86bbf (diff)
downloadFreeBSD-src-456d8b24246a10fdae8a8b74e98ec78418620428.zip
FreeBSD-src-456d8b24246a10fdae8a8b74e98ec78418620428.tar.gz
This should fix PR 438. Apparently I never tested disklabel on the block
device. v_numoutput wasn't incremented to match the b_iodone nesting. It's still fishy that vwakeup() clears B_WRITEINPROG before biodone() has finished; however, B_WRITEINPROG seems to be never used. Submitted by: Bruce Evans
-rw-r--r--sys/kern/subr_diskslice.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/subr_diskslice.c b/sys/kern/subr_diskslice.c
index 0b6bf03..6360027 100644
--- a/sys/kern/subr_diskslice.c
+++ b/sys/kern/subr_diskslice.c
@@ -43,7 +43,7 @@
* from: wd.c,v 1.55 1994/10/22 01:57:12 phk Exp $
* from: @(#)ufs_disksubr.c 7.16 (Berkeley) 5/4/91
* from: ufs_disksubr.c,v 1.8 1994/06/07 01:21:39 phk Exp $
- * $Id: subr_diskslice.c,v 1.11 1995/04/30 15:16:02 bde Exp $
+ * $Id: subr_diskslice.c,v 1.12 1995/05/08 16:24:08 bde Exp $
*/
#include <sys/param.h>
@@ -57,6 +57,7 @@
#include <sys/stat.h>
#include <sys/syslog.h>
#include <sys/systm.h>
+#include <sys/vnode.h>
#define b_cylinder b_resid
@@ -204,6 +205,8 @@ if (labelsect != 0) Debugger("labelsect != 0 in dscheck()");
* XXX probably need to copy the data to avoid even
* temporarily corrupting the in-core copy.
*/
+ if (bp->b_vp != NULL)
+ bp->b_vp->v_numoutput++;
msg = fixlabel((char *)NULL, sp,
(struct disklabel *)
(bp->b_data + ic->ic_args[0].ia_long),
OpenPOWER on IntegriCloud