diff options
Diffstat (limited to 'fs/ioprio.c')
-rw-r--r-- | fs/ioprio.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/ioprio.c b/fs/ioprio.c index 10d2c211d18b..0a615f87142e 100644 --- a/fs/ioprio.c +++ b/fs/ioprio.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/capability.h> | 25 | #include <linux/capability.h> |
26 | #include <linux/syscalls.h> | 26 | #include <linux/syscalls.h> |
27 | #include <linux/security.h> | 27 | #include <linux/security.h> |
28 | #include <linux/pid_namespace.h> | ||
28 | 29 | ||
29 | static int set_task_ioprio(struct task_struct *task, int ioprio) | 30 | static int set_task_ioprio(struct task_struct *task, int ioprio) |
30 | { | 31 | { |
@@ -93,7 +94,8 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio) | |||
93 | if (!who) | 94 | if (!who) |
94 | p = current; | 95 | p = current; |
95 | else | 96 | else |
96 | p = find_task_by_pid(who); | 97 | p = find_task_by_pid_ns(who, |
98 | current->nsproxy->pid_ns); | ||
97 | if (p) | 99 | if (p) |
98 | ret = set_task_ioprio(p, ioprio); | 100 | ret = set_task_ioprio(p, ioprio); |
99 | break; | 101 | break; |
@@ -101,7 +103,7 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio) | |||
101 | if (!who) | 103 | if (!who) |
102 | pgrp = task_pgrp(current); | 104 | pgrp = task_pgrp(current); |
103 | else | 105 | else |
104 | pgrp = find_pid(who); | 106 | pgrp = find_vpid(who); |
105 | do_each_pid_task(pgrp, PIDTYPE_PGID, p) { | 107 | do_each_pid_task(pgrp, PIDTYPE_PGID, p) { |
106 | ret = set_task_ioprio(p, ioprio); | 108 | ret = set_task_ioprio(p, ioprio); |
107 | if (ret) | 109 | if (ret) |
@@ -180,7 +182,8 @@ asmlinkage long sys_ioprio_get(int which, int who) | |||
180 | if (!who) | 182 | if (!who) |
181 | p = current; | 183 | p = current; |
182 | else | 184 | else |
183 | p = find_task_by_pid(who); | 185 | p = find_task_by_pid_ns(who, |
186 | current->nsproxy->pid_ns); | ||
184 | if (p) | 187 | if (p) |
185 | ret = get_task_ioprio(p); | 188 | ret = get_task_ioprio(p); |
186 | break; | 189 | break; |
@@ -188,7 +191,7 @@ asmlinkage long sys_ioprio_get(int which, int who) | |||
188 | if (!who) | 191 | if (!who) |
189 | pgrp = task_pgrp(current); | 192 | pgrp = task_pgrp(current); |
190 | else | 193 | else |
191 | pgrp = find_pid(who); | 194 | pgrp = find_vpid(who); |
192 | do_each_pid_task(pgrp, PIDTYPE_PGID, p) { | 195 | do_each_pid_task(pgrp, PIDTYPE_PGID, p) { |
193 | tmpio = get_task_ioprio(p); | 196 | tmpio = get_task_ioprio(p); |
194 | if (tmpio < 0) | 197 | if (tmpio < 0) |