From ae2afc437b3dfc1afbc659b4773e3d313af4c4ea Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Thu, 6 Feb 2003 21:50:39 +0000 Subject: [PATCH] Experimentally don't let go of Giant in geom_disk's done. We may actually be increasing Giant contention doing so because the actual stuff we do is very cheap. Also I am not convinced there is not a tiny window for a race here. --- sys/geom/geom_disk.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c index c890836f472..b55ea60aa7e 100644 --- a/sys/geom/geom_disk.c +++ b/sys/geom/geom_disk.c @@ -154,6 +154,7 @@ g_disk_kerneldump(struct bio *bp, struct disk *dp) static void g_disk_done(struct bio *bp) { +#ifdef maybe_not struct disk *dp; dp = bp->bio_disk; @@ -165,6 +166,10 @@ g_disk_done(struct bio *bp) } else { g_std_done(bp); } +#else + bp->bio_completed = bp->bio_length - bp->bio_resid; + g_std_done(bp); +#endif } static void