#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2010 Christoph Hellwig. All Rights Reserved. # Copyright (c) 2010 Silicon Graphics, Inc. All Rights Reserved. # # FS QA Test No. 221 # # Check for file corruption when using the extent size hint on # the normal data subvolume. # # http://oss.sgi.com/bugzilla/show_bug.cgi?id=874 # # Based on a bug report and testcase from Geoffrey Wehrman . # seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! _cleanup() { rm -rf ${TDIR} } trap "_cleanup ; exit \$status" 0 1 2 3 15 # get standard environment, filters and checks . ./common/rc # real QA test starts here _supported_fs xfs _require_test _require_fs_space $TEST_DIR 3200000 TDIR="${TEST_DIR}/t_holes" NFILES="10" EXTSIZE="256k" _xfs_force_bdev data $TEST_DIR # Create the test directory mkdir ${TDIR} # Set the test directory extsize $XFS_IO_PROG -c "extsize ${EXTSIZE}" ${TDIR} # Create a set of holey files echo "generating ${NFILES} files" for i in $(seq 0 ${NFILES}); do $here/src/t_holes ${TDIR}/${i} done # Compare the files echo "comparing files" errcnt=0 j=0 for i in $(seq 0 ${NFILES}); do let j=$i+1 while [ ${j} -lt ${NFILES} ] ; do if ! cmp ${TDIR}/${i} ${TDIR}/${j} ; then let errcnt=$errcnt+1 fi let j=$j+1 done done echo "got ${errcnt} errors" status=$errcnt exit $status