#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved. # # FS QA Test No. 111 # # Infinite xfs_bulkstat bad-inode loop case from Roger Willcocks. # . ./common/preamble _begin_fstest ioctl # Import common functions. . ./common/filter # real QA test starts here _supported_fs xfs _require_scratch [ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found" # real QA test starts here _scratch_unmount 2>/dev/null MKFS_OPTIONS="-bsize=4096" MOUNT_OPTIONS="-o noatime" _scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs _scratch_mount echo Create some files I=0 while [ $I -lt 1000 ] do $XFS_IO_PROG -f -c "pwrite 0 512" $SCRATCH_MNT/${I} > /dev/null let I=$I+1 done # Roughly the middle of the created inodes INO=`ls -i $SCRATCH_MNT/512 | awk '{print $1}'` _scratch_unmount # Figure out where that middle inode starts BYTE=`_scratch_xfs_db -c "convert inode $INO byte" \ | awk '{print $2}' | sed s/[\(\)]//g` echo Blat inode clusters $here/src/itrash $SCRATCH_DEV $BYTE _try_scratch_mount || _fail "Couldn't mount after itrash" echo Attempting bulkstat #$here/src/bstat -q $SCRATCH_MNT $XFS_FSR_PROG -g $SCRATCH_MNT | _filter_scratch # Fix up intentional corruption so test can pass _scratch_unmount _scratch_xfs_repair >> $seqres.full 2>&1 status=0 exit