4 # ENOSPC deadlock case from Asano Masahiro.
6 #-----------------------------------------------------------------------
7 # Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved.
8 #-----------------------------------------------------------------------
14 echo "QA output created by $seq"
18 status=1 # failure is the default!
19 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
21 # get standard environment, filters and checks
25 # real QA test starts here
27 _supported_os Linux XFS
32 # "faststart" lets us effectively skip (re-)population
33 [ "X$faststart" != "X" ] && rm -f $SCRATCH_MNT/F*
35 # create many small files using most available space
36 echo "creating small files..."
38 while [ $i -le $files -a "X$faststart" = "X" ]; do
40 xfs_io -f -d -c 'pwrite -b 64k 0 64k' $file >/dev/null
44 # remove every second file, freeing up lots of space
45 echo "removing small files..."
47 while [ $i -le $files -a "X$faststart" = "X" ]; do
52 echo "flushing changes via umount/mount."
59 # now try to hit the deadlock
60 echo "starting parallel allocators..."
62 while [ $i -le 10 ]; do
66 while [ $j -lt 100 ]; do
67 xfs_io -f -c 'pwrite -b 64k 0 16m' $file \
80 # real QA test starts here
81 umount $SCRATCH_DEV 2>/dev/null
84 # see if faststart is possible (and requested)
87 if [ -n "$FASTSTART" -a -f $SCRATCH_MNT/f0 ]; then
88 faststart="-N" # causes us to skip the mkfs step
92 _scratch_mkfs_xfs -dsize=160m,agcount=4 $faststart | _filter_mkfs 2>$tmp.mkfs
93 cat $tmp.mkfs >>$seq.full