]> Zhao Yanbai Git Server - minix.git/commitdiff
Don't kill processes by signals in process group 0, and do a sync before
authorBen Gras <ben@minix3.org>
Fri, 3 Feb 2006 15:21:00 +0000 (15:21 +0000)
committerBen Gras <ben@minix3.org>
Fri, 3 Feb 2006 15:21:00 +0000 (15:21 +0000)
killing all processes in FS reboot.

servers/fs/misc.c
servers/pm/signal.c

index 4fd694784c562dce30de242fa006475612315592..79ec55d160228cbb87c8b7b87d7b3ab392631618 100644 (file)
@@ -258,6 +258,9 @@ PUBLIC int do_reboot()
   /* Only PM may make this call directly. */
   if (who != PM_PROC_NR) return(EGENERIC);
 
+  /* Sync before the drivers die. */
+  do_sync();
+
   /* Do exit processing for all leftover processes and servers. */
   for (i = 0; i < NR_PROCS; i++) { m_in.slot1 = i; do_exit(); }
 
index 6765d4735d443224ca7663f4201f94cce6342349..25534d8c44e6522f90ce61162453602900c692ca 100644 (file)
@@ -524,6 +524,7 @@ int signo;                  /* signal to send to process (0 to _NSIG) */
        if (proc_id == 0 && mp->mp_procgrp != rmp->mp_procgrp) continue;
        if (proc_id == -1 && rmp->mp_pid <= INIT_PID) continue;
        if (proc_id < -1 && rmp->mp_procgrp != -proc_id) continue;
+       if (rmp->mp_procgrp == 0) continue;
 
        /* Check for permission. */
        if (mp->mp_effuid != SUPER_USER