We don't need to call freezer_do_not_count() for in-kernel users of CLONE_VFORK since exec will get called in bounded time.
We don't want to call freezer_count() for in-kernel users because they may be holding locks. freezer_count() calls try_to_freeze(). We don't want to freeze an in-kernel user because it may be holding locks. Changes since v1: * <20130215152840.gc30...@redhat.com> Oleg Nesterov * Use (p->flags & PF_KTHREAD) checks instead of p->mm. Signed-off-by: Mandeep Singh Baines <m...@chromium.org> CC: Oleg Nesterov <o...@redhat.com> CC: Tejun Heo <t...@kernel.org> CC: Andrew Morton <a...@linux-foundation.org> CC: Rafael J. Wysocki <r...@sisk.pl> CC: Ingo Molnar <mi...@redhat.com> --- kernel/fork.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c index c535f33..c7ace33 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -722,9 +722,11 @@ static int wait_for_vfork_done(struct task_struct *child, { int killed; - freezer_do_not_count(); + if (!(current->flags & PF_KTHREAD)) + freezer_do_not_count(); killed = wait_for_completion_killable(vfork); - freezer_count(); + if (!(current->flags & PF_KTHREAD)) + freezer_count(); if (killed) { task_lock(child); -- 1.7.12.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/