summaryrefslogtreecommitdiff
path: root/kernel/fs
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-06-22 14:34:21 +0200
committerAnton Kling <anton@kling.gg>2024-06-22 14:34:21 +0200
commit01b88a7bf9fb4c78bd632bfccb06f3d320a21fd5 (patch)
tree20d9a6dcc155e7c8b6e067c6ba6d7b42df4365fd /kernel/fs
parentaf313dec6b7698b6f948b97669aa7be91717a451 (diff)
Kernel stuff
Diffstat (limited to 'kernel/fs')
-rw-r--r--kernel/fs/vfs.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/fs/vfs.c b/kernel/fs/vfs.c
index 666dfc9..7c97cb2 100644
--- a/kernel/fs/vfs.c
+++ b/kernel/fs/vfs.c
@@ -300,13 +300,12 @@ int vfs_close_process(process_t *p, int fd) {
assert(relist_remove(&p->file_descriptors, fd));
// If no references left then free the contents
if (0 == fd_ptr->reference_count) {
- if (fd_ptr->inode->close) {
- fd_ptr->inode->close(fd_ptr);
- }
-
assert(0 < fd_ptr->inode->ref);
fd_ptr->inode->ref--;
if (0 >= fd_ptr->inode->ref) {
+ if (fd_ptr->inode->close) {
+ fd_ptr->inode->close(fd_ptr);
+ }
kfree(fd_ptr->inode);
}
kfree(fd_ptr);