Re: call_usermodehelper does not report exit status?

From: Milton D. Miller II
Date: Sat Sep 20 2003 - 13:57:24 EST


Andrew Morton <akpm@xxxxxxxx> wrote:
> Omen Wild <Omen.Wild@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxx?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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/