|  | #! /bin/bash | 
|  | # SPDX-License-Identifier: GPL-2.0 | 
|  | # Copyright (c) 2005 Silicon Graphics, Inc.  All Rights Reserved. | 
|  | # | 
|  | # FS QA Test No. 117 | 
|  | # | 
|  | # Attempt to cause filesystem corruption with serial fsstresses doing | 
|  | # extended attributes writes - pv 940655 | 
|  | # | 
|  | . ./common/preamble | 
|  | _begin_fstest attr auto quick | 
|  |  | 
|  | # seed and options for fsstress known to cause curruptions | 
|  | seed=1122413794 | 
|  | fss_ops=" -z \ | 
|  | -f attr_remove=100 \ | 
|  | -f attr_set=100 \ | 
|  | -f chown=3 \ | 
|  | -f creat=4 \ | 
|  | -f dread=4 \ | 
|  | -f dwrite=4 \ | 
|  | -f fdatasync=1 \ | 
|  | -f fsync=1 \ | 
|  | -f getdents=1 \ | 
|  | -f link=1 \ | 
|  | -f mkdir=2 \ | 
|  | -f mknod=2 \ | 
|  | -f read=1 \ | 
|  | -f readlink=1 \ | 
|  | -f rename=2 \ | 
|  | -f rmdir=1 \ | 
|  | -f setxattr=1 \ | 
|  | -f stat=1 \ | 
|  | -f symlink=2 \ | 
|  | -f sync=1 \ | 
|  | -f truncate=2 \ | 
|  | -f unlink=1 \ | 
|  | -f write=4 \ | 
|  | -s $seed \ | 
|  | -m 31 -n 1000 -p 1" | 
|  |  | 
|  | ITERATIONS=10 | 
|  |  | 
|  | # Import common functions. | 
|  | . ./common/filter | 
|  | . ./common/attr | 
|  |  | 
|  |  | 
|  | _require_scratch | 
|  | _require_attrs | 
|  |  | 
|  | _scratch_unmount >/dev/null 2>&1 | 
|  | echo "*** MKFS ***"                         >>$seqres.full | 
|  | echo ""                                     >>$seqres.full | 
|  | _scratch_mkfs                               >>$seqres.full 2>&1 \ | 
|  | || _fail "mkfs failed" | 
|  | _scratch_mount | 
|  |  | 
|  | mkdir -p $SCRATCH_MNT/fsstress | 
|  |  | 
|  | echo | 
|  | echo Running fsstress in serial: | 
|  | i=0 | 
|  | while [ $i -lt $ITERATIONS ]; do | 
|  | echo fsstress iteration: $i | tee -a $seqres.full | 
|  | $FSSTRESS_PROG \ | 
|  | -d $SCRATCH_MNT/fsstress \ | 
|  | $fss_ops -S c >>$seqres.full 2>&1 | 
|  |  | 
|  | let i=$i+1 | 
|  | done | 
|  |  | 
|  | cd / | 
|  | _scratch_unmount | 
|  | echo | 
|  | echo Checking filesystem | 
|  |  | 
|  | status=$? | 
|  | exit |