Re: [PATCH 2/2 v2] fs: Fix hang with BSD accounting on frozen filesystem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux