1e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#!/bin/sh 2e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 3e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallresize_test () { 4e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 5e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrm -f $TMPFILE 6e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralltouch $TMPFILE 7e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 8e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall# Verify that the $TMP filesystem handles $SIZE_2 sparse files. 9e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall# If that fails, try the local filesystem instead. 10e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then 11e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall > $TMPFILE 12e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallelse 13e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall rm $TMPFILE 14e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall export TMPFILE=$(TMPDIR=. mktemp -t $test_name.XXXXXX.tmp) 15e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall touch $TMPFILE 16e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall if ! truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then 17e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall rm $TMPFILE 18e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 111 19e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall fi 20e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 21e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 22e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 > $LOG 23e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall$MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG 24e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 25e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP AbgrallOUT_TMP=$(mktemp -t csum-tmp.XXXXXX) 26e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 27e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgralldate > $OUT_TMP 28e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallcat $E2FSCK >> $OUT_TMP 29e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $CRCSUM $OUT_TMP >> $LOG 2>&1 30e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP AbgrallCSUM_1=$($CRCSUM $OUT_TMP) 31e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho Checksum is $CSUM_1 >> $LOG 32e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 33e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho Setting up file system >> $LOG 34e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall$DEBUGFS -w $TMPFILE >> $LOG 2>&1 << EOF 35e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallmkdir test 36e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallcd test 37e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallwrite $OUT_TMP e2fsck 38e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallls /test 39e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallstat /test/e2fsck 40e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallquit 41e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP AbgrallEOF 42e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho " " >> $LOG 43e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 44e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrm -f $OUT_TMP 45e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 46e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $FSCK -fy $TMPFILE >> $LOG 2>&1 47e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall$FSCK -fy $TMPFILE >> $LOG 2>&1 48e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 49e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $RESIZE2FS $RESIZE2FS_OPTS -d 31 $TMPFILE $SIZE_2 >> $LOG 2>&1 50e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 $TMPFILE $SIZE_2 >> $LOG 2>&1 51e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 52e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 53e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 54e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 55e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $FSCK -fp $TMPFILE >> $LOG 2>&1 56e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $FSCK -fp $TMPFILE >> $LOG 2>&1 57e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 58e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall dumpe2fs $TMPFILE >> $LOG 59e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 60e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 61e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 62e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 63e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 64e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 65e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $CRCSUM $OUT_TMP >> $LOG 2>&1 66e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP AbgrallCSUM_2=$($CRCSUM $OUT_TMP) 67e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho Checksum is $CSUM_2 >> $LOG 68e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 69e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif test "$CSUM_1" != "$CSUM_2" 70e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 71e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 72e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 73e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 74e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1 75e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1 76e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 77e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 78e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 79e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 80e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $FSCK -fp $TMPFILE >> $LOG 2>&1 81e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $FSCK -fp $TMPFILE >> $LOG 2>&1 82e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 83e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall dumpe2fs $TMPFILE >> $LOG 84e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 85e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 86e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 87e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 88e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 89e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 90e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $CRCSUM $OUT_TMP >> $LOG 2>&1 91e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP AbgrallCSUM_2=$($CRCSUM $OUT_TMP) 92e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho Checksum is $CSUM_2 >> $LOG 93e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 94e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif test "$CSUM_1" != "$CSUM_2" 95e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 96e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 97e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 98e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 99e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1 100e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1 101e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 102e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 103e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 104e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 105e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $FSCK -fp $TMPFILE >> $LOG 2>&1 106e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $FSCK -fp $TMPFILE >> $LOG 2>&1 107e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 108e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall dumpe2fs $TMPFILE >> $LOG 109e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 110e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 111e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 112e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 113e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 114e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 115e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $CRCSUM $OUT_TMP >> $LOG 2>&1 116e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP AbgrallCSUM_2=$($CRCSUM $OUT_TMP) 117e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho Checksum is $CSUM_2 >> $LOG 118e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 119e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif test "$CSUM_1" != "$CSUM_2" 120e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 121e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 122e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 123e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 124e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1 125e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1 126e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 127e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 128e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 129e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 130e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $FSCK -fp $TMPFILE >> $LOG 2>&1 131e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif ! $FSCK -fp $TMPFILE >> $LOG 2>&1 132e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 133e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall dumpe2fs $TMPFILE >> $LOG 134e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 135e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 136e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 137e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 138e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1 139e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 140e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho $CRCSUM $OUT_TMP >> $LOG 2>&1 141e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP AbgrallCSUM_2=$($CRCSUM $OUT_TMP) 142e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallecho Checksum is $CSUM_2 >> $LOG 143e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 144e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrm $OUT_TMP 145e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallunset OUT_TMP 146e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 147e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallif test "$CSUM_1" != "$CSUM_2" 148e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallthen 149e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return 1 150e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallfi 151e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 152e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallrm $TMPFILE 153e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrallreturn 0 154e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall 155e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall} 156