diff options
author | sotech117 <michael_foiani@brown.edu> | 2024-04-25 04:04:20 +0000 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2024-04-25 04:04:20 +0000 |
commit | 88db52baebd10ab1c2643f214ab9d44edcdb0851 (patch) | |
tree | f365ba758acd1bf164429cfbc02790e0ebbf8a79 /kernel/fs/open.c | |
parent | a3e64ef2bf31dda9a94db011a96651de918ea968 (diff) |
fix refcount issue
Diffstat (limited to 'kernel/fs/open.c')
-rw-r--r-- | kernel/fs/open.c | 4 |
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; } |