]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/libbio/bread.c
sdiahci, sdodin: avoid calling kproc() while holding ilock()
[plan9front.git] / sys / src / libbio / bread.c
index 9780ffac10238013016301ae2b76688253544cec..8ad61960ced8bb0bdf5fd7a860b770a613366614 100644 (file)
@@ -20,11 +20,13 @@ Bread(Biobufhdr *bp, void *ap, long count)
                if(n == 0) {
                        if(bp->state != Bractive)
                                break;
-                       i = read(bp->fid, bp->bbuf, bp->bsize);
+                       i = bp->iof(bp, bp->bbuf, bp->bsize);
                        if(i <= 0) {
                                bp->state = Bracteof;
-                               if(i < 0)
+                               if(i < 0) {
+                                       Berror(bp, "read error: %r");
                                        bp->state = Binactive;
+                               }
                                break;
                        }
                        bp->gbuf = bp->bbuf;