It started with the need of CSA to handle end-of-process (eop) at do_exit() at exit.c. The hook at exit.c was BSD Accounting specific. Since the need of Linux system accounting has gone beyond what BSD accounting provides, i think it is a good idea to create a thin layer of common code for various accounting packages, such as BSD accounting, CSA, ELSA, etc. The hook to do_exit() at exit.c was changed to invoke a routine in the common code which would then invoke those accounting packages that register to the acct_common to handle do_exit situation. Here is the description of this acct_common patch: 1) two new files at include/linux/acct_common.h and kernel/acct_common.c 2) A new config flag CONFIG_ACCT_COMMON is created and CONFIG_BSD_PROCESS_ACCT and a future CSA config flag depend on it. I think it is a good idea to always have acct_common in the kernel; in that case, the new config flag may not be really necessary. I can go either way. 3) Accounting packages can register themselves to acct_common for callbacks. Only do_exit handling is defined now. BSD acct.c has been modified to register/unergister to acct_common. 4) The 'enhanced acct data collection' routines have been moved from acct.c to acct_common.c. Files used to #include were modified to #include . This patch was generated against 2.6.11-rc3-mm2. Signed-off-by: Jay Lan