summaryrefslogtreecommitdiff
path: root/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs.c')
-rw-r--r--fs.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/fs.c b/fs.c
index a76788b..fe9ce48 100644
--- a/fs.c
+++ b/fs.c
@@ -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;