diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-07-25 10:48:49 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 19:53:47 +0200 |
commit | 0c18d7a5df82524e634637c3aec24d4cba096442 (patch) | |
tree | 9b49f775403c77b8fe4d59f4d7c84d43e26e3f5b /kernel/acct.c | |
parent | bsdacct: account dying tasks in all relevant namespaces (diff) | |
download | linux-0c18d7a5df82524e634637c3aec24d4cba096442.tar.xz linux-0c18d7a5df82524e634637c3aec24d4cba096442.zip |
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 <xemul@openvz.org>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/acct.c')
-rw-r--r-- | kernel/acct.c | 8 |
1 files changed, 7 insertions, 1 deletions
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); } |