summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/include/sys/vnode.h1
-rw-r--r--sys/kern/vfs_init.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/include/sys/vnode.h b/sys/include/sys/vnode.h
index f584356..545e38f 100644
--- a/sys/include/sys/vnode.h
+++ b/sys/include/sys/vnode.h
@@ -47,6 +47,7 @@ struct vnode {
struct mount *mp; /* Ptr to vfs vnode is in */
struct vops *vops;
struct vnode *parent;
+ struct fs_info *fs; /* Filesystem this vnode belongs to, can be NULL */
void *data; /* Filesystem specific data */
};
diff --git a/sys/kern/vfs_init.c b/sys/kern/vfs_init.c
index 18ab3ac..0d8d194 100644
--- a/sys/kern/vfs_init.c
+++ b/sys/kern/vfs_init.c
@@ -40,8 +40,10 @@ __MODULE_NAME("vfs");
__KERNEL_META("$Hyra$: vfs.c, Ian Marco Moffett, "
"Hyra Virtual File System");
+#define INITRAMFS_ID 0
+
static struct fs_info filesystems[] = {
- { "initramfs", &g_initramfs_ops }
+ [INITRAMFS_ID] = { "initramfs", &g_initramfs_ops }
};
struct vnode *g_root_vnode = NULL;
@@ -76,4 +78,5 @@ vfs_init(void)
}
g_root_vnode->vops = &g_initramfs_vops;
+ g_root_vnode->fs = &filesystems[INITRAMFS_ID];
}