aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/cpuset.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/cpuset.c')
-rw-r--r--kernel/cpuset.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index 52cb04c993b7..1f107c74087b 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -2730,10 +2730,9 @@ void __cpuset_memory_pressure_bump(void)
2730 * and we take cpuset_mutex, keeping cpuset_attach() from changing it 2730 * and we take cpuset_mutex, keeping cpuset_attach() from changing it
2731 * anyway. 2731 * anyway.
2732 */ 2732 */
2733int proc_cpuset_show(struct seq_file *m, void *unused_v) 2733int proc_cpuset_show(struct seq_file *m, struct pid_namespace *ns,
2734 struct pid *pid, struct task_struct *tsk)
2734{ 2735{
2735 struct pid *pid;
2736 struct task_struct *tsk;
2737 char *buf, *p; 2736 char *buf, *p;
2738 struct cgroup_subsys_state *css; 2737 struct cgroup_subsys_state *css;
2739 int retval; 2738 int retval;
@@ -2743,24 +2742,16 @@ int proc_cpuset_show(struct seq_file *m, void *unused_v)
2743 if (!buf) 2742 if (!buf)
2744 goto out; 2743 goto out;
2745 2744
2746 retval = -ESRCH;
2747 pid = m->private;
2748 tsk = get_pid_task(pid, PIDTYPE_PID);
2749 if (!tsk)
2750 goto out_free;
2751
2752 retval = -ENAMETOOLONG; 2745 retval = -ENAMETOOLONG;
2753 rcu_read_lock(); 2746 rcu_read_lock();
2754 css = task_css(tsk, cpuset_cgrp_id); 2747 css = task_css(tsk, cpuset_cgrp_id);
2755 p = cgroup_path(css->cgroup, buf, PATH_MAX); 2748 p = cgroup_path(css->cgroup, buf, PATH_MAX);
2756 rcu_read_unlock(); 2749 rcu_read_unlock();
2757 if (!p) 2750 if (!p)
2758 goto out_put_task; 2751 goto out_free;
2759 seq_puts(m, p); 2752 seq_puts(m, p);
2760 seq_putc(m, '\n'); 2753 seq_putc(m, '\n');
2761 retval = 0; 2754 retval = 0;
2762out_put_task:
2763 put_task_struct(tsk);
2764out_free: 2755out_free:
2765 kfree(buf); 2756 kfree(buf);
2766out: 2757out: