fix: dnode cache syncing for pseudo fs
[lunaix-os.git] / lunaix-os / kernel / process / sched.c
index c48de8e5f8274344bcaafc757667b670e1615853..3ee0e7666c32eafe97c3436ac1c2a9ccc103f64b 100644 (file)
@@ -4,6 +4,7 @@
 #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>
@@ -335,6 +336,8 @@ destroy_process(pid_t pid)
     llist_delete(&proc->tasks);
     llist_delete(&proc->sleep.sleepers);
 
+    taskfs_invalidate(pid);
+
     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)
-            vfs_close(fd->file);
+            vfs_pclose(fd->file, pid);
     }
 
     vfree(proc->fdtable);