Resend. And sorry for the huge delay. The patches are the same, I only updated the changelog a little bit.
The previous discussion was a bit confusing, but iirc/iiuc nobody really argued with this change. In particular strace/gdb maintainers do not think it can break something. To remind, 1 and 2 do not depend on each other. But if we decide to not fix the kernel, then 2/2 makes much more sense. Most init's use waitid() which doesn't allow __WALL, so the user-space fix will be more complicated without this patch. And just in case let me repeat that I agree, PTRACE_TRACEME is ugly. And probably it should not succeed after re-parenting (in fact I personally think PTRACE_TRACEME should not even exist). But imho it is too late to try change this ancient interface, at least I strongly dislike the idea to add something like is_global_init() check into ptrace_traceme(). And any "sane" restriction here can break something too, plus this will complicate the rules. Oleg.

