From: Paolo 'Blaisorblade' Giarrusso Add some comments about task->comm, to explain what it is near its definition and provide some important pointers to its uses. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton --- 25-akpm/fs/exec.c | 4 +++- 25-akpm/include/linux/sched.h | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff -puN fs/exec.c~comments-on-locking-of-task-comm fs/exec.c --- 25/fs/exec.c~comments-on-locking-of-task-comm 2005-03-16 00:17:48.000000000 -0800 +++ 25-akpm/fs/exec.c 2005-03-16 00:17:48.000000000 -0800 @@ -868,9 +868,11 @@ int flush_old_exec(struct linux_binprm * if (current->euid == current->uid && current->egid == current->gid) current->mm->dumpable = 1; name = bprm->filename; + + /* Copies the binary name from after last slash */ for (i=0; (ch = *(name++)) != '\0';) { if (ch == '/') - i = 0; + i = 0; /* overwrite what we wrote */ else if (i < (sizeof(tcomm) - 1)) tcomm[i++] = ch; diff -puN include/linux/sched.h~comments-on-locking-of-task-comm include/linux/sched.h --- 25/include/linux/sched.h~comments-on-locking-of-task-comm 2005-03-16 00:17:48.000000000 -0800 +++ 25-akpm/include/linux/sched.h 2005-03-16 00:17:48.000000000 -0800 @@ -614,7 +614,7 @@ struct task_struct { unsigned long flags; /* per process flags, defined below */ unsigned long ptrace; - int lock_depth; /* Lock depth */ + int lock_depth; /* BKL lock depth */ int prio, static_prio; struct list_head run_list; @@ -699,7 +699,10 @@ struct task_struct { struct key *thread_keyring; /* keyring private to this thread */ #endif int oomkilladj; /* OOM kill score adjustment (bit shift). */ - char comm[TASK_COMM_LEN]; + char comm[TASK_COMM_LEN]; /* executable name excluding path + - access with [gs]et_task_comm (which lock + it with task_lock()) + - initialized normally by flush_old_exec */ /* file system info */ int link_count, total_link_count; /* ipc stuff */ _