Lines Matching +full:event +full:- +full:touch +full:- +full:alt
4 # SPDX-License-Identifier: BSD-2-Clause
20 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
33 # FreeBSD 14.0-CURRENT #0 main-n255602-51adf913e8815: Fri May 13 07:55:32 CEST 2022
38 [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
40 cc -o /tmp/flip -Wall -Wextra -O2 ../tools/flip.c || exit 1
42 set -e
47 mkdir -p $mp1 $mp2
58 [ `jot -r 1 0 1` -eq 0 ] && newfs_flags='-O 1' || newfs_flags='-O 2 -U'
60 mount | grep "on $mp1 " | grep -q /dev/md && umount -f $mp1
61 [ -c /dev/md$u1 ] && mdconfig -d -u $u1
62 mdconfig -a -t swap -s 1g -u $u1
63 newfs $newfs_flags -n /dev/md$u1 > /dev/null
66 [ -c /dev/md$u2 ] && mdconfig -d -u $u2
68 mdconfig -a -t vnode -f $diskimage -u $u2
69 backups=`newfs -N $newfs_flags md$u2 | grep -A1 "super-block backups" | \
70 tail -1 | sed 's/,//g'`
71 newfs $newfs_flags -n md$u2 > /dev/null
73 [ -d /usr/include/sys ] && cp -r /usr/include/sys $mp2
83 timeout 5m fsck_ffs -fy $1 > $log 2>&1
85 if grep -qiE "super-?block.*failed" $log; then
89 fsck_ffs -b $b -fy $1 > $log 2>&1
91 grep -qiE "super-?block.*failed" $log ||
98 LANG=C egrep -q "[A-Z][A-Z]" $log && clean=0
99 grep -Eq "IS CLEAN|MARKED CLEAN" $log && clean=1
102 grep -Eq "WAS MODIFIED" $log && rerun=1
103 grep -q RERUN $log && rerun=1
104 grep -q "NO WRITE ACCESS" $log && waccess=1
105 [ $r -ne 0 -a $clean -eq 1 ] && echo "Exit code $r w/ clean == 1"
112 while [ $((`date +%s` - start)) -lt 300 ]; do
114 ls -lR $mp2 > /dev/null || { s=102; echo "ls failed"; break; }
115 touch $mp2/`jot -rc 8 a z | tr -d '\n'`
116 while mount | grep -q "on $mp2 "; do umount $mp2; done
117 echo * | grep -q core && break
119 mdconfig -d -u $u2
121 /tmp/flip -n 5 -s $(((64 + 8) * 1024)) $diskimage
124 if [ `stat -f%z $diskimage` -gt $max ]; then
125 ls -lh $diskimage
126 truncate -s $max $diskimage
134 [ $i -gt 2 ] && echo "fsck run #$i"
136 [ $rerun -eq 1 ] && { reruns=$((reruns + 1)); continue; }
137 [ $clean -eq 1 ] && { cleans=$((cleans + 1)); break; }
138 [ -f fsck_ffs.core ] &&
139 { cp -v $diskimage \
142 [ $clean -ne 1 ] && break
143 mdconfig -a -t vnode -f $diskimage -u $u2
144 [ $r -ne 0 -a $clean -eq 1 ] &&
146 [ $clean -eq 1 ] && continue
147 [ $usedasb -eq 1 ] && { echo "Alt. SB failed"; s=104; }
148 [ $waccess -eq 1 ] && { echo "No write access"; s=105; }
152 [ -c /dev/md$u2 ] && r1=1 || r1=0
154 mount | grep -q "on $mp2 " || break
158 mdconfig -d -u $u2 2>/dev/null # XXX when mount fails
161 if [ $clean -ne 1 ]; then
166 cp -v $log /tmp
167 [ $s -eq 0 ] && s=106
169 echo * | grep -q core && { ls -l *.core; cp -v $log /tmp; exit 106; } ||
170 rm -f $backup
171 [ $s -eq 101 ] && rm -f $backup # mount error breakout
177 mdconfig -d -u $u1
178 rm -f /tmp/flip