From 1e03b408690f30fead73c1cba4eeac4381ab6ffe Mon Sep 17 00:00:00 2001 From: Marian Ohligs Date: Sun, 25 Sep 2011 12:57:39 +0200 Subject: [PATCH] - remove bugfix in findnode_fs - change bugfix in open_fs --- fs/fs.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/fs/fs.c b/fs/fs.c index e0a269a4..ae55c137 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -72,8 +72,6 @@ int open_fs(fildes_t* file, const char* name) if (name[0] == '/') file_node = fs_root; - else - return -ENOENT; while((name[j] != '\0') && (file_node != NULL)) { i = 0; @@ -96,13 +94,15 @@ int open_fs(fildes_t* file, const char* name) if (file_node->open != 0) ret = file->node->open(file, NULL); spinlock_unlock(&file_node->lock); - } else { /* file doesn't exist */ + } else if (dir_node) { /* file doesn't exist */ spinlock_lock(&dir_node->lock); file->node = dir_node; // Has the dir_node got an open callback? if (dir_node->open != 0) ret = dir_node->open(file, fname); spinlock_unlock(&dir_node->lock); + } else { + ret = -ENOENT; } return ret; @@ -182,9 +182,6 @@ vfs_node_t* findnode_fs(const char* name) if (name[0] == '/') ret = fs_root; - else - return -ENOENT; - while((name[j] != '\0') && ret) { i = 0;