diff options
| -rw-r--r-- | bio.c | 6 | ||||
| -rw-r--r-- | cat.c | 8 | 
2 files changed, 6 insertions, 8 deletions
| @@ -65,16 +65,12 @@ bget(uint dev, uint blockno)    acquire(&bcache.lock); -  // cprintf("bget %d\n", blockno); -      // Is the block already cached?    for(b = bcache.head.next; b != &bcache.head; b = b->next){      if(b->dev == dev && b->blockno == blockno){ -      //cprintf("bget %d; get sleep lock for buffer %p\n", blockno, b - bcache.buf);        b->refcnt++;        release(&bcache.lock);        acquiresleep(&b->lock); -      //cprintf("bget: return buffer %p for blk %d\n", b - bcache.buf, blockno);        return b;      }    } @@ -84,14 +80,12 @@ bget(uint dev, uint blockno)    // hasn't yet committed the changes to the buffer.    for(b = bcache.head.prev; b != &bcache.head; b = b->prev){      if(b->refcnt == 0 && (b->flags & B_DIRTY) == 0) { -      // cprintf("bget %d; use %p for %d\n", b - bcache.buf, blockno);        b->dev = dev;        b->blockno = blockno;        b->flags = 0;        b->refcnt = 1;        release(&bcache.lock);        acquiresleep(&b->lock); -      // cprintf("bget: return buffer %p for blk %d\n", b - bcache.buf, blockno);        return b;      }    } @@ -9,8 +9,12 @@ cat(int fd)  {    int n; -  while((n = read(fd, buf, sizeof(buf))) > 0) -    write(1, buf, n); +  while((n = read(fd, buf, sizeof(buf))) > 0) { +    if (write(1, buf, n) != n) { +      printf(1, "cat: write error\n"); +      exit(); +    } +  }    if(n < 0){      printf(1, "cat: read error\n");      exit(); | 
