diff options
Diffstat (limited to 'kernel/fs.c')
-rw-r--r-- | kernel/fs.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/kernel/fs.c b/kernel/fs.c index 98284e8..3a74c1f 100644 --- a/kernel/fs.c +++ b/kernel/fs.c @@ -28,7 +28,7 @@ static void itrunc(struct inode*); struct superblock sb; // Read the super block. -void +static void readsb(int dev, struct superblock *sb) { struct buf *bp; @@ -38,6 +38,15 @@ readsb(int dev, struct superblock *sb) brelse(bp); } +// Init fs +void +fsinit(int dev) { + readsb(dev, &sb); + if(sb.magic != FSMAGIC) + panic("invalid file system"); + initlog(dev, &sb); +} + // Zero a block. static void bzero(int dev, int bno) @@ -170,7 +179,7 @@ struct { } icache; void -iinit(int dev) +iinit() { int i = 0; @@ -178,10 +187,6 @@ iinit(int dev) for(i = 0; i < NINODE; i++) { initsleeplock(&icache.inode[i].lock, "inode"); } - - readsb(dev, &sb); - if(sb.magic != FSMAGIC) - panic("invalid file system"); } static struct inode* iget(uint dev, uint inum); |