Messages in this thread Patch in this message | | | Date | Sun, 12 Oct 2008 17:29:28 +0800 | From | Lai Jiangshan <> | Subject | [PATCH 3/4] cpuset: use seq_*mask_* to print masks |
| |
1) seq_file excepts that m->count == m->size when it's buf is full, so current code will causes bugs when buf is overflow.
2) There is not too good that cpuset accesses struct seq_file's fields directly.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> --- diff --git a/kernel/cpuset.c b/kernel/cpuset.c index eab7bd6..684d21b 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -2437,19 +2437,15 @@ const struct file_operations proc_cpuset_operations = { void cpuset_task_status_allowed(struct seq_file *m, struct task_struct *task) { seq_printf(m, "Cpus_allowed:\t"); - m->count += cpumask_scnprintf(m->buf + m->count, m->size - m->count, - task->cpus_allowed); + seq_cpumask(m, &task->cpus_allowed); seq_printf(m, "\n"); seq_printf(m, "Cpus_allowed_list:\t"); - m->count += cpulist_scnprintf(m->buf + m->count, m->size - m->count, - task->cpus_allowed); + seq_cpumask_list(m, &task->cpus_allowed); seq_printf(m, "\n"); seq_printf(m, "Mems_allowed:\t"); - m->count += nodemask_scnprintf(m->buf + m->count, m->size - m->count, - task->mems_allowed); + seq_nodemask(m, &task->mems_allowed); seq_printf(m, "\n"); seq_printf(m, "Mems_allowed_list:\t"); - m->count += nodelist_scnprintf(m->buf + m->count, m->size - m->count, - task->mems_allowed); + seq_nodemask_list(m, &task->mems_allowed); seq_printf(m, "\n"); }
| |