diff options
Diffstat (limited to 'fs/proc/array.c')
| -rw-r--r-- | fs/proc/array.c | 189 | 
1 files changed, 92 insertions, 97 deletions
diff --git a/fs/proc/array.c b/fs/proc/array.c index 88c7de12197b..89600fd5963d 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -186,51 +186,45 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,  	task_unlock(p);  	rcu_read_unlock(); -	seq_printf(m, -		"State:\t%s\n" -		"Tgid:\t%d\n" -		"Ngid:\t%d\n" -		"Pid:\t%d\n" -		"PPid:\t%d\n" -		"TracerPid:\t%d\n" -		"Uid:\t%d\t%d\t%d\t%d\n" -		"Gid:\t%d\t%d\t%d\t%d\n" -		"FDSize:\t%d\nGroups:\t", -		get_task_state(p), -		tgid, ngid, pid_nr_ns(pid, ns), ppid, tpid, -		from_kuid_munged(user_ns, cred->uid), -		from_kuid_munged(user_ns, cred->euid), -		from_kuid_munged(user_ns, cred->suid), -		from_kuid_munged(user_ns, cred->fsuid), -		from_kgid_munged(user_ns, cred->gid), -		from_kgid_munged(user_ns, cred->egid), -		from_kgid_munged(user_ns, cred->sgid), -		from_kgid_munged(user_ns, cred->fsgid), -		max_fds); - +	seq_printf(m, "State:\t%s", get_task_state(p)); + +	seq_put_decimal_ull(m, "\nTgid:\t", tgid); +	seq_put_decimal_ull(m, "\nNgid:\t", ngid); +	seq_put_decimal_ull(m, "\nPid:\t", pid_nr_ns(pid, ns)); +	seq_put_decimal_ull(m, "\nPPid:\t", ppid); +	seq_put_decimal_ull(m, "\nTracerPid:\t", tpid); +	seq_put_decimal_ull(m, "\nUid:\t", from_kuid_munged(user_ns, cred->uid)); +	seq_put_decimal_ull(m, "\t", from_kuid_munged(user_ns, cred->euid)); +	seq_put_decimal_ull(m, "\t", from_kuid_munged(user_ns, cred->suid)); +	seq_put_decimal_ull(m, "\t", from_kuid_munged(user_ns, cred->fsuid)); +	seq_put_decimal_ull(m, "\nGid:\t", from_kgid_munged(user_ns, cred->gid)); +	seq_put_decimal_ull(m, "\t", from_kgid_munged(user_ns, cred->egid)); +	seq_put_decimal_ull(m, "\t", from_kgid_munged(user_ns, cred->sgid)); +	seq_put_decimal_ull(m, "\t", from_kgid_munged(user_ns, cred->fsgid)); +	seq_put_decimal_ull(m, "\nFDSize:\t", max_fds); + +	seq_puts(m, "\nGroups:\t");  	group_info = cred->group_info;  	for (g = 0; g < group_info->ngroups; g++) -		seq_printf(m, "%d ", -			   from_kgid_munged(user_ns, GROUP_AT(group_info, g))); +		seq_put_decimal_ull(m, g ? " " : "", +				from_kgid_munged(user_ns, group_info->gid[g]));  	put_cred(cred); +	/* Trailing space shouldn't have been added in the first place. */ +	seq_putc(m, ' ');  #ifdef CONFIG_PID_NS  	seq_puts(m, "\nNStgid:");  	for (g = ns->level; g <= pid->level; g++) -		seq_printf(m, "\t%d", -			task_tgid_nr_ns(p, pid->numbers[g].ns)); +		seq_put_decimal_ull(m, "\t", task_tgid_nr_ns(p, pid->numbers[g].ns));  	seq_puts(m, "\nNSpid:");  	for (g = ns->level; g <= pid->level; g++) -		seq_printf(m, "\t%d", -			task_pid_nr_ns(p, pid->numbers[g].ns)); +		seq_put_decimal_ull(m, "\t", task_pid_nr_ns(p, pid->numbers[g].ns));  	seq_puts(m, "\nNSpgid:");  	for (g = ns->level; g <= pid->level; g++) -		seq_printf(m, "\t%d", -			task_pgrp_nr_ns(p, pid->numbers[g].ns)); +		seq_put_decimal_ull(m, "\t", task_pgrp_nr_ns(p, pid->numbers[g].ns));  	seq_puts(m, "\nNSsid:");  	for (g = ns->level; g <= pid->level; g++) -		seq_printf(m, "\t%d", -			task_session_nr_ns(p, pid->numbers[g].ns)); +		seq_put_decimal_ull(m, "\t", task_session_nr_ns(p, pid->numbers[g].ns));  #endif  	seq_putc(m, '\n');  } @@ -299,11 +293,12 @@ static inline void task_sig(struct seq_file *m, struct task_struct *p)  		unlock_task_sighand(p, &flags);  	} -	seq_printf(m, "Threads:\t%d\n", num_threads); -	seq_printf(m, "SigQ:\t%lu/%lu\n", qsize, qlim); +	seq_put_decimal_ull(m, "Threads:\t", num_threads); +	seq_put_decimal_ull(m, "\nSigQ:\t", qsize); +	seq_put_decimal_ull(m, "/", qlim);  	/* render them all */ -	render_sigset_t(m, "SigPnd:\t", &pending); +	render_sigset_t(m, "\nSigPnd:\t", &pending);  	render_sigset_t(m, "ShdPnd:\t", &shpending);  	render_sigset_t(m, "SigBlk:\t", &blocked);  	render_sigset_t(m, "SigIgn:\t", &ignored); @@ -348,17 +343,17 @@ static inline void task_cap(struct seq_file *m, struct task_struct *p)  static inline void task_seccomp(struct seq_file *m, struct task_struct *p)  {  #ifdef CONFIG_SECCOMP -	seq_printf(m, "Seccomp:\t%d\n", p->seccomp.mode); +	seq_put_decimal_ull(m, "Seccomp:\t", p->seccomp.mode); +	seq_putc(m, '\n');  #endif  }  static inline void task_context_switch_counts(struct seq_file *m,  						struct task_struct *p)  { -	seq_printf(m,	"voluntary_ctxt_switches:\t%lu\n" -			"nonvoluntary_ctxt_switches:\t%lu\n", -			p->nvcsw, -			p->nivcsw); +	seq_put_decimal_ull(m, "voluntary_ctxt_switches:\t", p->nvcsw); +	seq_put_decimal_ull(m, "\nnonvoluntary_ctxt_switches:\t", p->nivcsw); +	seq_putc(m, '\n');  }  static void task_cpus_allowed(struct seq_file *m, struct task_struct *task) @@ -490,41 +485,41 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,  	start_time = nsec_to_clock_t(task->real_start_time);  	seq_printf(m, "%d (%s) %c", pid_nr_ns(pid, ns), tcomm, state); -	seq_put_decimal_ll(m, ' ', ppid); -	seq_put_decimal_ll(m, ' ', pgid); -	seq_put_decimal_ll(m, ' ', sid); -	seq_put_decimal_ll(m, ' ', tty_nr); -	seq_put_decimal_ll(m, ' ', tty_pgrp); -	seq_put_decimal_ull(m, ' ', task->flags); -	seq_put_decimal_ull(m, ' ', min_flt); -	seq_put_decimal_ull(m, ' ', cmin_flt); -	seq_put_decimal_ull(m, ' ', maj_flt); -	seq_put_decimal_ull(m, ' ', cmaj_flt); -	seq_put_decimal_ull(m, ' ', cputime_to_clock_t(utime)); -	seq_put_decimal_ull(m, ' ', cputime_to_clock_t(stime)); -	seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cutime)); -	seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cstime)); -	seq_put_decimal_ll(m, ' ', priority); -	seq_put_decimal_ll(m, ' ', nice); -	seq_put_decimal_ll(m, ' ', num_threads); -	seq_put_decimal_ull(m, ' ', 0); -	seq_put_decimal_ull(m, ' ', start_time); -	seq_put_decimal_ull(m, ' ', vsize); -	seq_put_decimal_ull(m, ' ', mm ? get_mm_rss(mm) : 0); -	seq_put_decimal_ull(m, ' ', rsslim); -	seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->start_code : 1) : 0); -	seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->end_code : 1) : 0); -	seq_put_decimal_ull(m, ' ', (permitted && mm) ? mm->start_stack : 0); -	seq_put_decimal_ull(m, ' ', esp); -	seq_put_decimal_ull(m, ' ', eip); +	seq_put_decimal_ll(m, " ", ppid); +	seq_put_decimal_ll(m, " ", pgid); +	seq_put_decimal_ll(m, " ", sid); +	seq_put_decimal_ll(m, " ", tty_nr); +	seq_put_decimal_ll(m, " ", tty_pgrp); +	seq_put_decimal_ull(m, " ", task->flags); +	seq_put_decimal_ull(m, " ", min_flt); +	seq_put_decimal_ull(m, " ", cmin_flt); +	seq_put_decimal_ull(m, " ", maj_flt); +	seq_put_decimal_ull(m, " ", cmaj_flt); +	seq_put_decimal_ull(m, " ", cputime_to_clock_t(utime)); +	seq_put_decimal_ull(m, " ", cputime_to_clock_t(stime)); +	seq_put_decimal_ll(m, " ", cputime_to_clock_t(cutime)); +	seq_put_decimal_ll(m, " ", cputime_to_clock_t(cstime)); +	seq_put_decimal_ll(m, " ", priority); +	seq_put_decimal_ll(m, " ", nice); +	seq_put_decimal_ll(m, " ", num_threads); +	seq_put_decimal_ull(m, " ", 0); +	seq_put_decimal_ull(m, " ", start_time); +	seq_put_decimal_ull(m, " ", vsize); +	seq_put_decimal_ull(m, " ", mm ? get_mm_rss(mm) : 0); +	seq_put_decimal_ull(m, " ", rsslim); +	seq_put_decimal_ull(m, " ", mm ? (permitted ? mm->start_code : 1) : 0); +	seq_put_decimal_ull(m, " ", mm ? (permitted ? mm->end_code : 1) : 0); +	seq_put_decimal_ull(m, " ", (permitted && mm) ? mm->start_stack : 0); +	seq_put_decimal_ull(m, " ", esp); +	seq_put_decimal_ull(m, " ", eip);  	/* The signal information here is obsolete.  	 * It must be decimal for Linux 2.0 compatibility.  	 * Use /proc/#/status for real-time signals.  	 */ -	seq_put_decimal_ull(m, ' ', task->pending.signal.sig[0] & 0x7fffffffUL); -	seq_put_decimal_ull(m, ' ', task->blocked.sig[0] & 0x7fffffffUL); -	seq_put_decimal_ull(m, ' ', sigign.sig[0] & 0x7fffffffUL); -	seq_put_decimal_ull(m, ' ', sigcatch.sig[0] & 0x7fffffffUL); +	seq_put_decimal_ull(m, " ", task->pending.signal.sig[0] & 0x7fffffffUL); +	seq_put_decimal_ull(m, " ", task->blocked.sig[0] & 0x7fffffffUL); +	seq_put_decimal_ull(m, " ", sigign.sig[0] & 0x7fffffffUL); +	seq_put_decimal_ull(m, " ", sigcatch.sig[0] & 0x7fffffffUL);  	/*  	 * We used to output the absolute kernel address, but that's an @@ -538,31 +533,31 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,  	else  		seq_puts(m, " 0"); -	seq_put_decimal_ull(m, ' ', 0); -	seq_put_decimal_ull(m, ' ', 0); -	seq_put_decimal_ll(m, ' ', task->exit_signal); -	seq_put_decimal_ll(m, ' ', task_cpu(task)); -	seq_put_decimal_ull(m, ' ', task->rt_priority); -	seq_put_decimal_ull(m, ' ', task->policy); -	seq_put_decimal_ull(m, ' ', delayacct_blkio_ticks(task)); -	seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime)); -	seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime)); +	seq_put_decimal_ull(m, " ", 0); +	seq_put_decimal_ull(m, " ", 0); +	seq_put_decimal_ll(m, " ", task->exit_signal); +	seq_put_decimal_ll(m, " ", task_cpu(task)); +	seq_put_decimal_ull(m, " ", task->rt_priority); +	seq_put_decimal_ull(m, " ", task->policy); +	seq_put_decimal_ull(m, " ", delayacct_blkio_ticks(task)); +	seq_put_decimal_ull(m, " ", cputime_to_clock_t(gtime)); +	seq_put_decimal_ll(m, " ", cputime_to_clock_t(cgtime));  	if (mm && permitted) { -		seq_put_decimal_ull(m, ' ', mm->start_data); -		seq_put_decimal_ull(m, ' ', mm->end_data); -		seq_put_decimal_ull(m, ' ', mm->start_brk); -		seq_put_decimal_ull(m, ' ', mm->arg_start); -		seq_put_decimal_ull(m, ' ', mm->arg_end); -		seq_put_decimal_ull(m, ' ', mm->env_start); -		seq_put_decimal_ull(m, ' ', mm->env_end); +		seq_put_decimal_ull(m, " ", mm->start_data); +		seq_put_decimal_ull(m, " ", mm->end_data); +		seq_put_decimal_ull(m, " ", mm->start_brk); +		seq_put_decimal_ull(m, " ", mm->arg_start); +		seq_put_decimal_ull(m, " ", mm->arg_end); +		seq_put_decimal_ull(m, " ", mm->env_start); +		seq_put_decimal_ull(m, " ", mm->env_end);  	} else -		seq_printf(m, " 0 0 0 0 0 0 0"); +		seq_puts(m, " 0 0 0 0 0 0 0");  	if (permitted) -		seq_put_decimal_ll(m, ' ', task->exit_code); +		seq_put_decimal_ll(m, " ", task->exit_code);  	else -		seq_put_decimal_ll(m, ' ', 0); +		seq_puts(m, " 0");  	seq_putc(m, '\n');  	if (mm) @@ -598,13 +593,13 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,  	 * seq_printf(m, "%lu %lu %lu %lu 0 %lu 0\n",  	 *               size, resident, shared, text, data);  	 */ -	seq_put_decimal_ull(m, 0, size); -	seq_put_decimal_ull(m, ' ', resident); -	seq_put_decimal_ull(m, ' ', shared); -	seq_put_decimal_ull(m, ' ', text); -	seq_put_decimal_ull(m, ' ', 0); -	seq_put_decimal_ull(m, ' ', data); -	seq_put_decimal_ull(m, ' ', 0); +	seq_put_decimal_ull(m, "", size); +	seq_put_decimal_ull(m, " ", resident); +	seq_put_decimal_ull(m, " ", shared); +	seq_put_decimal_ull(m, " ", text); +	seq_put_decimal_ull(m, " ", 0); +	seq_put_decimal_ull(m, " ", data); +	seq_put_decimal_ull(m, " ", 0);  	seq_putc(m, '\n');  	return 0;  |