summaryrefslogtreecommitdiff
path: root/kernel/fs.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2019-08-18 14:35:11 -0400
committerFrans Kaashoek <[email protected]>2019-08-18 14:35:11 -0400
commit2501560cd691fcdb9c310dccc14ac4e7486c99d9 (patch)
tree2bbda111baaeda8c4b8363422b8e9f39910177e6 /kernel/fs.c
parenta9953236cc9f1befb625575671bc39f1ab254bf0 (diff)
downloadxv6-labs-2501560cd691fcdb9c310dccc14ac4e7486c99d9.tar.gz
xv6-labs-2501560cd691fcdb9c310dccc14ac4e7486c99d9.tar.bz2
xv6-labs-2501560cd691fcdb9c310dccc14ac4e7486c99d9.zip
Cosmetic cleanup: fsinit reads sb and calls loginit. initialize icache
in main.c and don't make it disk specific; the icache is shared. This doesn't matter since we have only one disk, but conceptually cleaner and maybe helpful to students for mount lab.
Diffstat (limited to 'kernel/fs.c')
-rw-r--r--kernel/fs.c17
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);