Messages in this thread | | | Date | Sat, 20 Sep 2003 13:55:17 -0500 (CDT) | From | "Milton D. Miller II" <> | Subject | Re: call_usermodehelper does not report exit status? |
| |
Andrew Morton <akpm@osdl.org> wrote: > Omen Wild <Omen.Wild@Dartmouth.EDU> wrote: > > > > I found the call_usermodehelper function and > > call it with the wait flag set, but I cannot get a non-zero return > > status of the program to propagate into the kernel. > > This might fix it.
I think you missed the why behind the comment just above your first change.
/* We don't have a SIGCHLD signal handler, so this * always returns -ECHILD, but the important thing is * that it blocks. */ - sys_wait4(pid, NULL, 0, NULL); + sys_wait4(pid, &sub_info->retval, 0, NULL);
The exit code notices that there is no signal handler for SIGCHILD and does a fast exit, then we notice when woken up the child no longer exists.
Rusty discovered this back in June when we were trying to fix a checker error on the wait call, and decided that at the time no one was using the return value, hence the simpler fix.
http://linux.bkbits.net:8080/linux-2.5/cset@1.1046.366.23?nav=index.html|src/|src/kernel|related/kernel/kmod.c
milton - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |