Description of problem: xfs文件系统,xfstests下generic/536 File grew from 4096 B to 8192 B when writing to the fallocated range x86和arm均存在该问题 失败几率:50% 有时候连续几次失败,有时候连续几次成功 测试日志: # ./check tests/generic/568 FSTYP -- xfs (non-debug) PLATFORM -- Linux/x86_64 iZ2ze6n8cezigzjqlcfjadZ 4.19.91-26_rc1.an7.x86_64 #1 SMP Mon Apr 25 17:24:24 CST 2022 MKFS_OPTIONS -- -f -bsize=4096 /dev/vdb2 MOUNT_OPTIONS -- /dev/vdb2 /fs/scratch generic/568 0s ... - output mismatch (see /tmp/tone/run/xfstests/results//generic/568.out.bad) --- tests/generic/568.out 2022-04-27 21:06:24.108728363 +0800 +++ /tmp/tone/run/xfstests/results//generic/568.out.bad 2022-05-05 16:04:55.107262457 +0800 @@ -1,4 +1,4 @@ QA output created by 568 wrote 2/2 bytes at offset block_size - 1 XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -OK: File did not grow. +ERROR: File grew from 4096 B to 8192 B when writing to the fallocated range. ... (Run 'diff -u /tmp/tone/run/xfstests/tests/generic/568.out /tmp/tone/run/xfstests/results//generic/568.out.bad' to see the entire diff) Ran: generic/568 Failures: generic/568 Failed 1 of 1 tests Version-Release number of selected component (if applicable): # uname -a Linux iZ2ze6n8cezigzjqlcfjadZ 4.19.91-26_rc1.an7.x86_64 #1 SMP Mon Apr 25 17:24:24 CST 2022 x86_64 x86_64 x86_64 GNU/Linux # uname -a Linux iZ2zebfu2pfe96wy4xb5lsZ 4.19.91-26_rc1.an7.aarch64 #1 SMP Mon Apr 25 17:30:58 CST 2022 aarch64 aarch64 aarch64 GNU/Linux # cat /etc/os-release NAME="Anolis OS" VERSION="7.7" ID="anolis" ID_LIKE="rhel fedora centos" VERSION_ID="7.7" PRETTY_NAME="Anolis OS 7.7" ANSI_COLOR="0;31" HOME_URL="https://openanolis.cn/" BUG_REPORT_URL="https://bugs.openanolis.cn/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" How reproducible: 1. 准备环境 #准备disk1 disk2测试盘 disk1=vdb1 disk2=vdb2 dmsetup remove_all wipefs -a --force /dev/$disk1 wipefs -a --force /dev/$disk2 mkfs -t xfs -L OStest -q -f /dev/$disk1 mkfs -t xfs -L OStest -q -f /dev/$disk2 export TEST_DIR=/fs/$disk1 export TEST_DEV=/dev/$disk1 export FSTYP=xfs export SCRATCH_MNT=/fs/scratch mkdir /fs/$disk1 -p mkdir /fs/scratch -p export SCRATCH_DEV=/dev/$disk2 2. 下载xfstests测试代码 3. 编译测试源码 cd xfstests-dev export CFLAGS="-fcommon" make make install 4.执行测试用例 ./check tests/generic/568 Actual results: Expected results: Additional info: xfsprogs-4.5.0-22.an7.x86_64
upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e093c4be760ebf46c131ae0dd6138865a22f46fa After patching: FSTYP -- xfs (debug) PLATFORM -- Linux/x86_64 e18g06460 4.19.91+ #3 SMP Fri May 6 15:04:57 CST 2022 MKFS_OPTIONS -- -f /dev/loop1 MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch_mnt generic/568 0s Ran: generic/568 Passed all 1 tests
Fixed as in https://gitee.com/anolis/cloud-kernel/pulls/326
RC3 测试通过