Commit 23202220 authored by Oleg Nesterov's avatar Oleg Nesterov Committed by Andrew Morton
Browse files

do_io_accounting: use __for_each_thread()

Rather than while_each_thread() which should be avoided when possible.

This makes the code more clear and allows the next change.

Link: https://lkml.kernel.org/r/20231023153343.GA4629@redhat.com


Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 873ed722
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -2972,7 +2972,7 @@ static const struct file_operations proc_coredump_filter_operations = {
#ifdef CONFIG_TASK_IO_ACCOUNTING
static int do_io_accounting(struct task_struct *task, struct seq_file *m, int whole)
{
	struct task_io_accounting acct = task->ioac;
	struct task_io_accounting acct;
	unsigned long flags;
	int result;

@@ -2986,14 +2986,18 @@ static int do_io_accounting(struct task_struct *task, struct seq_file *m, int wh
	}

	if (whole && lock_task_sighand(task, &flags)) {
		struct task_struct *t = task;
		struct signal_struct *sig = task->signal;
		struct task_struct *t;

		task_io_accounting_add(&acct, &task->signal->ioac);
		while_each_thread(task, t)
		acct = sig->ioac;
		__for_each_thread(sig, t)
			task_io_accounting_add(&acct, &t->ioac);

		unlock_task_sighand(task, &flags);
	} else {
		acct = task->ioac;
	}

	seq_printf(m,
		   "rchar: %llu\n"
		   "wchar: %llu\n"