This patch adds __get_task_comm() which returns the task->comm value without taking the comm_lock. This function may return null or incomplete comm values, and is only present for performance critical paths that can handle these pitfalls. CC: Joe Perches <joe@xxxxxxxxxxx> CC: Ingo Molnar <mingo@xxxxxxx> CC: Michal Nazarewicz <mina86@xxxxxxxxxx> CC: Andy Whitcroft <apw@xxxxxxxxxxxxx> CC: Jiri Slaby <jirislaby@xxxxxxxxx> CC: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> CC: David Rientjes <rientjes@xxxxxxxxxx> CC: Dave Hansen <dave@xxxxxxxxxxxxxxxxxx> CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> CC: linux-mm@xxxxxxxxx Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx> --- fs/exec.c | 13 +++++++++++++ include/linux/sched.h | 1 + 2 files changed, 14 insertions(+), 0 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 34fa611..7e79c97 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -996,6 +996,19 @@ static void flush_old_files(struct files_struct * files) spin_unlock(&files->file_lock); } +/** + * __get_task_comm - Unlocked accessor to task comm value + * + * This function returns the task->comm value without + * taking the comm_lock. This method is only for performance + * critical paths, and may return a null or incomplete comm + * value. + */ +char *__get_task_comm(struct task_struct *tsk) +{ + return tsk->comm; +} + char *get_task_comm(char *buf, struct task_struct *tsk) { unsigned long flags; diff --git a/include/linux/sched.h b/include/linux/sched.h index f8a7cdf..5e3c25a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2189,6 +2189,7 @@ struct task_struct *fork_idle(int); extern void set_task_comm(struct task_struct *tsk, char *from); extern char *get_task_comm(char *to, struct task_struct *tsk); +extern char *__get_task_comm(struct task_struct *tsk); #ifdef CONFIG_SMP extern unsigned long wait_task_inactive(struct task_struct *, long match_state); -- 1.7.3.2.146.gca209 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>