| #! /bin/bash | 
 | # SPDX-License-Identifier: GPL-2.0 | 
 | # Copyright 2020 Google LLC | 
 | # | 
 | # FS QA Test No. 596 | 
 | # | 
 | # Regression test for the bug fixed by commit 10a98cb16d80 ("xfs: clear | 
 | # PF_MEMALLOC before exiting xfsaild thread").  If the bug exists, a kernel | 
 | # WARNING should be triggered.  See the commit message for details. | 
 | # | 
 | . ./common/preamble | 
 | _begin_fstest auto quick | 
 |  | 
 | # Override the default cleanup function. | 
 | _cleanup() | 
 | { | 
 | 	$ACCTON_PROG off >> $seqres.full | 
 | 	rm -f $tmp.* | 
 | } | 
 |  | 
 | # Import common functions. | 
 | . ./common/filter | 
 |  | 
 | _require_bsd_process_accounting | 
 | _require_chattr S | 
 | _require_test | 
 | _require_scratch | 
 |  | 
 | # To trigger the bug we must unmount a filesystem while BSD process accounting | 
 | # is enabled.  The accounting file must also be located on a different | 
 | # filesystem and have the sync flag set. | 
 |  | 
 | accounting_file=$TEST_DIR/$seq | 
 |  | 
 | rm -f $accounting_file | 
 | touch $accounting_file | 
 | $CHATTR_PROG +S $accounting_file | 
 |  | 
 | _scratch_mkfs &>> $seqres.full | 
 | $ACCTON_PROG $accounting_file >> $seqres.full | 
 | _scratch_mount | 
 | _scratch_unmount | 
 | $ACCTON_PROG off >> $seqres.full | 
 |  | 
 | echo "Silence is golden" | 
 |  | 
 | status=0 | 
 | exit |