aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2002-09-15 17:52:35 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2002-09-15 17:52:35 +0000
commitf986355c0e7b54beeab601e568e84e0ae012663b (patch)
treeda96f49d65ebdb1454dfbe20652722d5bfc25b51 /sys/kern
parente9a6d3b44cf060398e1189cbd0cf352fa1aa2ccf (diff)
Notes
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/vfs_bio.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 3ef984a1e1e6..7c8b16da9309 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -2819,18 +2819,19 @@ biodone(struct bio *bp)
/*
* Wait for a BIO to finish.
- * XXX: For now resort to a timeout, the optimal locking (if any) for this
- * case is not at this point obvious.
+ *
+ * XXX: resort to a timeout for now. The optimal locking (if any) for this
+ * case is not yet clear.
*/
int
biowait(struct bio *bp, const char *wchan)
{
while ((bp->bio_flags & BIO_DONE) == 0)
- msleep(bp, NULL, 0, wchan, hz);
+ msleep(bp, NULL, PRIBIO, wchan, hz / 10);
if (!(bp->bio_flags & BIO_ERROR))
return (0);
- if (bp->bio_error)
+ if (bp->bio_error != 0)
return (bp->bio_error);
return (EIO);
}