summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-05-31 01:19:18 -0400
committerIan Moffett <ian@osmora.org>2025-05-31 01:19:18 -0400
commit33611d4093e74b814a8fa8451026d1f4bbe21fcf (patch)
tree1837482340e6c8f502423f724e5b67c7dbe5ee0d /sys
parent34b47c7c91f70da0b2b56953b52daa01991be70b (diff)
kernel: descrip: Lock filedes during r/w operation
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_descrip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index dd14267..1992d46 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -187,6 +187,7 @@ fd_rw(unsigned int fd, void *buf, size_t count, uint8_t write)
sio.buf = kbuf;
sio.offset = filedes->offset;
+ spinlock_acquire(&filedes->lock);
if (write) {
/* Copy in user buffer */
if (copyin(buf, kbuf, count) < 0) {
@@ -224,6 +225,7 @@ done:
if (kbuf != NULL) {
dynfree(kbuf);
}
+ spinlock_release(&filedes->lock);
return retval;
}