In case para_server dies, the afs process must unregister all
tasks in order to shut down cleanly.
{
struct signal_task *st = container_of(t, struct signal_task, task);
if (getppid() == 1) {
- t->error = -E_AFS_PARENT_DIED;
- return;
+ PARA_EMERG_LOG("para_server died\n");
+ goto shutdown;
}
if (!FD_ISSET(st->fd, &s->rfds))
return;
init_admissible_files(current_mop);
return;
}
+ PARA_EMERG_LOG("terminating on signal %d\n", st->signum);
+shutdown:
sched_shutdown();
t->error = -E_AFS_SIGNAL;
}