Commit 0c18d7a5df82524e634637c3aec24d4cba096442
Committed by
Linus Torvalds
1 parent
7d1e13505b
Exists in
master
and in
4 other branches
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>
Showing 1 changed file with 7 additions and 1 deletions Side-by-side Diff
kernel/acct.c
... | ... | @@ -657,7 +657,8 @@ |
657 | 657 | } |
658 | 658 | |
659 | 659 | /** |
660 | - * acct_process - now just a wrapper around do_acct_process | |
660 | + * acct_process - now just a wrapper around acct_process_in_ns, | |
661 | + * which in turn is a wrapper around do_acct_process. | |
661 | 662 | * |
662 | 663 | * handles process accounting for an exiting task |
663 | 664 | */ |
... | ... | @@ -665,6 +666,11 @@ |
665 | 666 | { |
666 | 667 | struct pid_namespace *ns; |
667 | 668 | |
669 | + /* | |
670 | + * This loop is safe lockless, since current is still | |
671 | + * alive and holds its namespace, which in turn holds | |
672 | + * its parent. | |
673 | + */ | |
668 | 674 | for (ns = task_active_pid_ns(current); ns != NULL; ns = ns->parent) |
669 | 675 | acct_process_in_ns(ns); |
670 | 676 | } |