git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'device-sys'
[lunaix-os.git]
/
lunaix-os
/
kernel
/
process
/
sched.c
diff --git
a/lunaix-os/kernel/process/sched.c
b/lunaix-os/kernel/process/sched.c
index c48de8e5f8274344bcaafc757667b670e1615853..3ee0e7666c32eafe97c3436ac1c2a9ccc103f64b 100644
(file)
--- a/
lunaix-os/kernel/process/sched.c
+++ b/
lunaix-os/kernel/process/sched.c
@@
-4,6
+4,7
@@
#include <hal/apic.h>
#include <hal/cpu.h>
#include <hal/apic.h>
#include <hal/cpu.h>
+#include <lunaix/fs/taskfs.h>
#include <lunaix/mm/cake.h>
#include <lunaix/mm/kalloc.h>
#include <lunaix/mm/pmm.h>
#include <lunaix/mm/cake.h>
#include <lunaix/mm/kalloc.h>
#include <lunaix/mm/pmm.h>
@@
-335,6
+336,8
@@
destroy_process(pid_t pid)
llist_delete(&proc->tasks);
llist_delete(&proc->sleep.sleepers);
llist_delete(&proc->tasks);
llist_delete(&proc->sleep.sleepers);
+ taskfs_invalidate(pid);
+
if (proc->cwd) {
vfs_unref_dnode(proc->cwd);
}
if (proc->cwd) {
vfs_unref_dnode(proc->cwd);
}
@@
-342,7
+345,7
@@
destroy_process(pid_t pid)
for (size_t i = 0; i < VFS_MAX_FD; i++) {
struct v_fd* fd = proc->fdtable->fds[i];
if (fd)
for (size_t i = 0; i < VFS_MAX_FD; i++) {
struct v_fd* fd = proc->fdtable->fds[i];
if (fd)
- vfs_
close(fd->file
);
+ vfs_
pclose(fd->file, pid
);
}
vfree(proc->fdtable);
}
vfree(proc->fdtable);