• K
    fix setpriority(PRIO_PGRP) thread iterator breakage · 2d70b68d
    Ken Chen 提交于
    When user calls sys_setpriority(PRIO_PGRP ...) on a NPTL style multi-LWP
    process, only the task leader of the process is affected, all other
    sibling LWP threads didn't receive the setting.  The problem was that the
    iterator used in sys_setpriority() only iteartes over one task for each
    process, ignoring all other sibling thread.
    
    Introduce a new macro do_each_pid_thread / while_each_pid_thread to walk
    each thread of a process.  Convert 4 call sites in {set/get}priority and
    ioprio_{set/get}.
    Signed-off-by: NKen Chen <kenchen@google.com>
    Cc: Oleg Nesterov <oleg@tv-sign.ru>
    Cc: Roland McGrath <roland@redhat.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Jens Axboe <jens.axboe@oracle.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    2d70b68d
pid.h 5.0 KB