aboutsummaryrefslogtreecommitdiff
path: root/kernel/fs/open.c
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2024-04-25 04:04:20 +0000
committersotech117 <michael_foiani@brown.edu>2024-04-25 04:04:20 +0000
commit88db52baebd10ab1c2643f214ab9d44edcdb0851 (patch)
treef365ba758acd1bf164429cfbc02790e0ebbf8a79 /kernel/fs/open.c
parenta3e64ef2bf31dda9a94db011a96651de918ea968 (diff)
fix refcount issue
Diffstat (limited to 'kernel/fs/open.c')
-rw-r--r--kernel/fs/open.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/fs/open.c b/kernel/fs/open.c
index 811a9c4..8f0d893 100644
--- a/kernel/fs/open.c
+++ b/kernel/fs/open.c
@@ -100,6 +100,7 @@ long do_open(const char *filename, int oflags)
// Check if the vnode is a directory
if (S_ISDIR(res_vnode->vn_mode) && ((oflags & O_WRONLY) || (oflags & O_RDWR)))
{
+ vput(&res_vnode);
return -EISDIR;
}
@@ -156,9 +157,6 @@ long do_open(const char *filename, int oflags)
return -ENOMEM;
}
-
- // Set the file descriptor
- // curproc->p_files[fd] = file;
vput(&res_vnode);
return fd;
}