On Thu, Nov 08, 2012 at 01:41:38PM +0100, Jan Kara wrote: > When BSD process accounting is enabled and logs information to a filesystem > which gets frozen, system easily becomes unusable because each attempt to > account process information blocks. Thus e.g. every task gets blocked in exit. > > It seems better to drop accounting information (which can already happen when > filesystem is running out of space) instead of locking system up. So we > open the accounting file with O_NONBLOCK. > > Reported-and-tested-by: Nikola Ciprich <nikola.ciprich@xxxxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> > --- > kernel/acct.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/kernel/acct.c b/kernel/acct.c > index 051e071..a061116 100644 > --- a/kernel/acct.c > +++ b/kernel/acct.c > @@ -201,7 +201,8 @@ static int acct_on(struct filename *pathname) > struct bsd_acct_struct *acct = NULL; > > /* Difference from BSD - they don't do O_APPEND */ > - file = file_open_name(pathname, O_WRONLY|O_APPEND|O_LARGEFILE, 0); > + file = file_open_name(pathname, > + O_WRONLY|O_APPEND|O_LARGEFILE|O_NONBLOCK, 0); > if (IS_ERR(file)) > return PTR_ERR(file); Looks good. Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html