diff options
author | Ian Moffett <ian@osmora.org> | 2024-08-21 11:55:38 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2024-08-21 11:55:38 -0400 |
commit | 8f2a455cf3866857349e377cd2cf2bb898e0a494 (patch) | |
tree | 7c82932d44d2256767b0138c12d4b77470d0af82 /sys | |
parent | 546c223267b6a385030ab2c4d5211bca1420709d (diff) |
kernel: Add ref count to filedesc
Keep track of how many threads are currently using the file descriptor.
This will be useful when fork() is implemented.
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/include/sys/filedesc.h | 1 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/include/sys/filedesc.h b/sys/include/sys/filedesc.h index 55f84e5..dbac349 100644 --- a/sys/include/sys/filedesc.h +++ b/sys/include/sys/filedesc.h @@ -38,6 +38,7 @@ struct filedesc { int fdno; off_t offset; bool is_dir; + int refcnt; struct vnode *vp; struct spinlock lock; }; diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 371c1a5..937ae87 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -90,6 +90,7 @@ fd_alloc(struct filedesc **fd_out) return -ENOMEM; } + fd->refcnt = 1; fd->fdno = i; td->fds[i] = fd; |