diff options
-rw-r--r-- | sys/ufs/ffs/ffs_rawread.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/ufs/ffs/ffs_rawread.c b/sys/ufs/ffs/ffs_rawread.c index 1fc66e6..efc9713 100644 --- a/sys/ufs/ffs/ffs_rawread.c +++ b/sys/ufs/ffs/ffs_rawread.c @@ -335,9 +335,7 @@ ffs_rawread_main(struct vnode *vp, } spl = splbio(); - while ((bp->b_flags & B_DONE) == 0) { - tsleep((caddr_t)bp, PRIBIO, "rawrd", 0); - } + bwait(bp, PRIBIO, "rawrd"); splx(spl); vunmapbuf(bp); @@ -409,9 +407,7 @@ ffs_rawread_main(struct vnode *vp, relpbuf(bp, &ffsrawbufcnt); if (nbp != NULL) { /* Run down readahead buffer */ spl = splbio(); - while ((nbp->b_flags & B_DONE) == 0) { - tsleep((caddr_t)nbp, PRIBIO, "rawrd", 0); - } + bwait(nbp, PRIBIO, "rawrd"); splx(spl); vunmapbuf(nbp); relpbuf(nbp, &ffsrawbufcnt); @@ -494,5 +490,5 @@ ffs_rawread(struct vnode *vp, static void ffs_rawreadwakeup(struct buf *bp) { - wakeup((caddr_t) bp); + bdone(bp); } |