diff options
Diffstat (limited to 'fs.c')
-rw-r--r-- | fs.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -43,13 +43,13 @@ bzero(int dev, int bno) bp = bread(dev, bno); memset(bp->data, 0, BSIZE); - bwrite(bp); + log_write(bp); brelse(bp); } // Blocks. -// Allocate a disk block. +// Allocate a zeroed disk block. static uint balloc(uint dev) { @@ -67,6 +67,7 @@ balloc(uint dev) bp->data[bi/8] |= m; // Mark block in use on disk. log_write(bp); brelse(bp); + bzero(dev, b + bi); return b + bi; } } @@ -83,8 +84,6 @@ bfree(int dev, uint b) struct superblock sb; int bi, m; - bzero(dev, b); - readsb(dev, &sb); bp = bread(dev, BBLOCK(b, sb.ninodes)); bi = b % BPB; |