• Pavel Emelyanov's avatar
    bsdacct: rename acct_gbls to bsd_acct_struct · 081e4c8a
    Pavel Emelyanov authored
    After I fixed access to task->tgid in kernel/acct.c, Oleg pointed out some
    bad side effects with this accounting vs pid namespaces interaction.  I.e.
     when some task in pid namespace sets this accounting up, this blocks all
    the others from doing the same.  Restricting this to init namespace only
    could help, but didn't look a graceful solution.
    
    So here is the approach to make this accounting work with pid namespaces
    properly.
    
    The idea is simple - when a task dies it accounts itself in each namespace
    it is visible from and which set the accounting up.
    
    For example here are the commands run and the output of lastcomm from init
    and sub namespaces:
    
    init_ns# accton pacct
     sub_ns# accton pacct (this is a different file - sub ns is run in
                           a chroot-ed environment)
    init_ns# cat /dev/null
     sub_ns# ls /dev/null
    init_ns# accton
     sub_ns# accton
    
     sub_ns#  lastcomm -f pacct
    ls                      0        [136,0]    0.00 secs Thu May 15 10:30
    accton                  0        [136,0]    0.00 secs Thu May 15 10:30
    
    init_ns# lastcomm -f pacct
    accton                  root     pts/0      0.00 secs Thu May 15 14:30 << got from sub
    cat                     root     pts/1      0.00 secs Thu May 15 14:30
    ls                      root     pts/0      0.00 secs Thu May 15 14:30 << got from sub
    accton                  root     pts/1      0.00 secs Thu May 15 14:30
    
    That was the summary, the details are in patches.
    
    This patch:
    
    It will be visible in pid_namespace.h file, so fix its name to look better
    outside the acct.c file.
    Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
    Cc: Balbir Singh <balbir@in.ibm.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    081e4c8a
acct.c 16.1 KB