• Ken Chen's avatar
    fix setpriority(PRIO_PGRP) thread iterator breakage · 2d70b68d
    Ken Chen authored
    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: default avatarKen 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: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2d70b68d
sys.c 42.2 KB