From: Pavel Emelyanov Date: Fri, 25 Jul 2008 08:48:49 +0000 (-0700) Subject: bsdacct: fix and add comments around acct_process() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=0c18d7a5df82524e634637c3aec24d4cba096442;p=openwrt%2Fstaging%2Fblogic.git bsdacct: fix and add comments around acct_process() Fix the one describing what this function is and add one more - about locking absence around pid namespaces loop. Signed-off-by: Pavel Emelyanov Cc: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/acct.c b/kernel/acct.c index 0feba97e114e..dd68b9059418 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -657,7 +657,8 @@ static void acct_process_in_ns(struct pid_namespace *ns) } /** - * acct_process - now just a wrapper around do_acct_process + * acct_process - now just a wrapper around acct_process_in_ns, + * which in turn is a wrapper around do_acct_process. * * handles process accounting for an exiting task */ @@ -665,6 +666,11 @@ void acct_process(void) { struct pid_namespace *ns; + /* + * This loop is safe lockless, since current is still + * alive and holds its namespace, which in turn holds + * its parent. + */ for (ns = task_active_pid_ns(current); ns != NULL; ns = ns->parent) acct_process_in_ns(ns); }