diff options
-rw-r--r-- | sys/kern/vfs_bio.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 3ef984a..7c8b16d 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); } |