Messages in this thread | | | Subject | Re: [PATCH rc1-mm] de_thread: fix deadlockable process addition | From | (Eric W. Biederman) | Date | Mon, 10 Apr 2006 16:11:56 -0600 |
| |
Oleg Nesterov <oleg@tv-sign.ru> writes:
> On 04/09, Oleg Nesterov wrote: >> >> proc_task_readdir: >> >> first_tid() returns old_leader >> >> next_tid() returns new_leader >> >> de_thread: >> old_leader->group_leader = new_leader; >> >> >> next_rid() returns old_leader again, >> because it is not thread_group_leader() >> anymore > > I think something like this for next_tid() is sufficient: > > - if (thread_group_leader(pos)) > + if (pos->pid == pos->tgid) > > We can also do the same change in first_tgid().
But the loop will terminate when things settle down, and we can always use my original test of pos == start->group_leader.
I was worried about the stable kernel case and next_tid was such a generic name I failed to associate it with /proc.
Short of confusion (and de_thread invariably introduces that) I don't see anything that the code will actually do wrong.
Eric - 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/
| |