diff options
Diffstat (limited to 'kernel/fs/s5fs/s5fs.c')
-rw-r--r-- | kernel/fs/s5fs/s5fs.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/kernel/fs/s5fs/s5fs.c b/kernel/fs/s5fs/s5fs.c index f41d00f..6da57d4 100644 --- a/kernel/fs/s5fs/s5fs.c +++ b/kernel/fs/s5fs/s5fs.c @@ -691,7 +691,6 @@ static long s5fs_mkdir(vnode_t *dir, const char *name, size_t namelen, // NOT_YET_IMPLEMENTED("S5FS: s5fs_mkdir"); // Allocate a new inode, get its properties first - vlock(dir); s5fs_t *s5fs = VNODE_TO_S5FS(dir); uint16_t type = S5_TYPE_DIR; @@ -705,11 +704,12 @@ static long s5fs_mkdir(vnode_t *dir, const char *name, size_t namelen, } // Create the new vnode + vlock(dir); vnode_t *new_vnode = vget_locked(dir->vn_fs, inode_num); // Check if the vnode creation failed if (!new_vnode) { - s5_free_inode(s5fs, inode_num); + // s5_free_inode(s5fs, inode_num); vput_locked(&new_vnode); return -ENOMEM; } @@ -719,7 +719,7 @@ static long s5fs_mkdir(vnode_t *dir, const char *name, size_t namelen, // Check if the link operation failed if (link < 0) { - s5_free_inode(s5fs, inode_num); + // s5_free_inode(s5fs, inode_num); vput_locked(&new_vnode); return link; } @@ -729,9 +729,9 @@ static long s5fs_mkdir(vnode_t *dir, const char *name, size_t namelen, // Check if the link operation failed if (link2 < 0) { - s5_remove_dirent(VNODE_TO_S5NODE(new_vnode), ".", 1, VNODE_TO_S5FS(dir)); - s5_free_inode(s5fs, inode_num); - vput_locked(&new_vnode); + // s5_remove_dirent(VNODE_TO_S5NODE(new_vnode), ".", 1, VNODE_TO_S5FS(dir)); + // s5_free_inode(s5fs, inode_num); + // vput_locked(&new_vnode); return link2; } @@ -740,9 +740,9 @@ static long s5fs_mkdir(vnode_t *dir, const char *name, size_t namelen, // Check if the link operation failed if (link3 < 0) { - s5_remove_dirent(VNODE_TO_S5NODE(new_vnode), ".", 1, VNODE_TO_S5FS(dir)); - s5_remove_dirent(VNODE_TO_S5NODE(new_vnode), "..", 2, VNODE_TO_S5FS(dir)); - s5_free_inode(s5fs, inode_num); + // s5_remove_dirent(VNODE_TO_S5NODE(new_vnode), ".", 1, VNODE_TO_S5FS(dir)); + // s5_remove_dirent(VNODE_TO_S5NODE(new_vnode), "..", 2, VNODE_TO_S5FS(dir)); + // s5_free_inode(s5fs, inode_num); vput_locked(&new_vnode); return link3; } |