* This routine uses RCU to synchronize with changes to the chain.
*
* If the return value of the notifier can be and'ed
* This routine uses RCU to synchronize with changes to the chain.
*
* If the return value of the notifier can be and'ed
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
* run in a process context, so they are allowed to block.
*
* If the return value of the notifier can be and'ed
* run in a process context, so they are allowed to block.
*
* If the return value of the notifier can be and'ed
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
* run in a process context, so they are allowed to block.
*
* If the return value of the notifier can be and'ed
* run in a process context, so they are allowed to block.
*
* If the return value of the notifier can be and'ed
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
* will return immediately, with the return value of
* the notifier function which halted execution.
* Otherwise the return value is the return value
struct task_struct *g, *p;
struct user_struct *user;
int error = -EINVAL;
struct task_struct *g, *p;
struct user_struct *user;
int error = -EINVAL;
- if (!who)
- who = process_group(current);
- do_each_task_pid(who, PIDTYPE_PGID, p) {
+ if (who)
+ pgrp = find_pid(who);
+ else
+ pgrp = task_pgrp(current);
+ do_each_pid_task(pgrp, PIDTYPE_PGID, p) {
struct task_struct *g, *p;
struct user_struct *user;
long niceval, retval = -ESRCH;
struct task_struct *g, *p;
struct user_struct *user;
long niceval, retval = -ESRCH;
- if (!who)
- who = process_group(current);
- do_each_task_pid(who, PIDTYPE_PGID, p) {
+ if (who)
+ pgrp = find_pid(who);
+ else
+ pgrp = task_pgrp(current);
+ do_each_pid_task(pgrp, PIDTYPE_PGID, p) {