diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/acct.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/acct.c b/kernel/acct.c index 85389fe2abd..8d6e145138b 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -540,10 +540,15 @@ static void do_acct_process(struct bsd_acct_struct *acct,  	ac.ac_swaps = encode_comp_t(0);  	/* +	 * Get freeze protection. If the fs is frozen, just skip the write +	 * as we could deadlock the system otherwise. +	 */ +	if (!file_start_write_trylock(file)) +		goto out; +	/*  	 * Kernel segment override to datasegment and write it  	 * to the accounting file.  	 */ -	file_start_write(file);  	fs = get_fs();  	set_fs(KERNEL_DS);  	/*  |