Re: [PATCH 2/2] exec: Make do_coredump more robust and safer when using pipes in core_pattern: wait for core collectors

Oleg Nesterov
2009-06-26T20:03:22Z

On 06/26, Neil Horman wrote:
>
> - if (call_usermodehelper_pipe(corename+1, helper_argv, NULL,
> - &file)) {
> + if (call_usermodehelper_pipe(helper_argv[0], helper_argv, NULL,
> + &file, &pid) < 0) {

...

> + if (ispipe && core_pipe_limit)
> + sys_wait4(pid, NULL, 0, NULL);

How this can work? sys_wait4() can only wait for our childs, but the parent
of the dumping thread is khelper.

If we change kmod.c, then I think we need UMH_WAIT_CUSTOM_COMPLETION.

But perhaps do_coredump() can just sleep on file->...->i_pipe->wait waiting
for pipe_inode_info->readers == 0 ?

Oleg.