From 34d81fca377119824b2347bb0206cd2372f09744 Mon Sep 17 00:00:00 2001 From: Kevin Lange Date: Thu, 5 Jun 2014 19:08:07 -0700 Subject: [PATCH] Probably fix mkdir in tmpfs --- kernel/fs/vfs.c | 2 +- modules/tmpfs.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/fs/vfs.c b/kernel/fs/vfs.c index 75b80dca..50fb0f44 100644 --- a/kernel/fs/vfs.c +++ b/kernel/fs/vfs.c @@ -328,7 +328,7 @@ int mkdir_fs(char *name, uint16_t permission) { } free(path); - free(parent); + close_fs(parent); return 0; } diff --git a/modules/tmpfs.c b/modules/tmpfs.c index 77df05d9..fe374ff1 100644 --- a/modules/tmpfs.c +++ b/modules/tmpfs.c @@ -344,7 +344,9 @@ static void create_tmpfs(fs_node_t *parent, char *name, uint16_t permission) { t->uid = current_process->user; t->gid = current_process->user; + spin_lock(&tmpfs_lock); list_insert(d->files, t); + spin_unlock(&tmpfs_lock); } static void mkdir_tmpfs(fs_node_t * parent, char * name, uint16_t permission) { @@ -370,7 +372,9 @@ static void mkdir_tmpfs(fs_node_t * parent, char * name, uint16_t permission) { out->uid = current_process->user; out->gid = current_process->user; + spin_lock(&tmpfs_lock); list_insert(d->files, out); + spin_unlock(&tmpfs_lock); } static fs_node_t * tmpfs_from_dir(struct tmpfs_dir * d) {