summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_disk.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-02-06 21:50:39 +0000
committerphk <phk@FreeBSD.org>2003-02-06 21:50:39 +0000
commit84f57209a42180d31e388c0350d191e24f7fe34e (patch)
tree298460a7e8269eea0b89fd9a6c5b08afae59b198 /sys/geom/geom_disk.c
parentfc6ee6491112206cafef5f50351894a6b3ca8d51 (diff)
downloadFreeBSD-src-84f57209a42180d31e388c0350d191e24f7fe34e.zip
FreeBSD-src-84f57209a42180d31e388c0350d191e24f7fe34e.tar.gz
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.
Diffstat (limited to 'sys/geom/geom_disk.c')
-rw-r--r--sys/geom/geom_disk.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c
index c890836..b55ea60 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
OpenPOWER on IntegriCloud