• Peter Staubach's avatar
    [PATCH] largefile support for accounting · 6c9c0b52
    Peter Staubach authored
    There is a problem in the accounting subsystem in the kernel can not
    correctly handle files larger than 2GB.  The output file containing the
    process accounting data can grow very large if the system is large enough
    and active enough.  If the 2GB limit is reached, then the system simply
    stops storing process accounting data.
    
    Another annoying problem is that once the system reaches this 2GB limit,
    then every process which exits will receive a signal, SIGXFSZ.  This signal
    is generated because an attempt was made to write beyond the limit for the
    file descriptor.  This signal makes it look like every process has exited
    due to a signal, when in fact, they have not.
    
    The solution is to add the O_LARGEFILE flag to the list of flags used to
    open the accounting file.  The rest of the accounting support is already
    largefile safe.
    
    The changes were tested by constructing a large file (just short of 2GB),
    enabling accounting, and then running enough commands to cause the
    accounting data generated to increase the size of the file to 2GB.  Without
    the changes, the file grows to 2GB and the last command run in the test
    script appears to exit due a signal when it has not.  With the changes,
    things work as expected and quietly.
    
    There are some user level changes required so that it can deal with
    largefiles, but those are being handled separately.
    Signed-off-by: default avatarPeter Staubach <staubach@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    6c9c0b52
acct.c 14.5 KB