init: utmp update of DEAD_PROCESS was misplaced, and could be skipped. Fixing.
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 5 Dec 2011 02:31:05 +0000 (03:31 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 5 Dec 2011 02:31:05 +0000 (03:31 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
init/init.c

index 645f694c0cc80b2a2ce7a5470a9722a1318fa485..864ee6ab8bf05a49e03b976cb9f437d5f50d35a6 100644 (file)
@@ -523,15 +523,17 @@ static struct init_action *mark_terminated(pid_t pid)
        struct init_action *a;
 
        if (pid > 0) {
+               update_utmp(pid, DEAD_PROCESS,
+                               /*tty_name:*/ NULL,
+                               /*username:*/ NULL,
+                               /*hostname:*/ NULL
+               );
                for (a = init_action_list; a; a = a->next) {
                        if (a->pid == pid) {
                                a->pid = 0;
                                return a;
                        }
                }
-               update_utmp(pid, DEAD_PROCESS, /*tty_name:*/ NULL,
-                               /*username:*/ NULL,
-                               /*hostname:*/ NULL);
        }
        return NULL;
 }