This is a regression test case to verify whether the CP_TRIMMED_FLAG is properly set after performing the following steps: 1. mount the f2fs filesystem 2. create a file, write data to it, then delete the file 3. unmount the filesystem 4. verify that the 'trimmed' flag is set in the checkpoint state
We should apply the commit ("f2fs: fix missing discard for active segments") to resolve the issue where the 'trimmed' flag is missing. Signed-off-by: Chunhai Guo <guochun...@vivo.com> --- v2: - Skip this test case if discard is not supported. - Renumber this test case from 012 to 014. v1: https://lore.kernel.org/linux-f2fs-devel/20250521064952.1373690-1-guochun...@vivo.com/ --- tests/f2fs/014 | 41 +++++++++++++++++++++++++++++++++++++++++ tests/f2fs/014.out | 2 ++ 2 files changed, 43 insertions(+) create mode 100755 tests/f2fs/014 create mode 100644 tests/f2fs/014.out diff --git a/tests/f2fs/014 b/tests/f2fs/014 new file mode 100755 index 000000000000..f72d53e65292 --- /dev/null +++ b/tests/f2fs/014 @@ -0,0 +1,41 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2025 Guo Chunhai. All Rights Reserved. +# +# FS QA Test No. f2fs/014 +# +# This is a regression test case to verify whether the CP_TRIMMED_FLAG is +# properly set after performing the following steps: +# 1. mount the f2fs filesystem +# 2. create a file, write data to it, then delete the file +# 3. unmount the filesystem +# 4. verify that the 'trimmed' flag is set in the checkpoint state +# We should apply the commit ("f2fs: fix missing discard for active +# segments") to resolve the issue where the 'trimmed' flag is missing. +# +. ./common/preamble +_begin_fstest auto quick + +_fixed_by_kernel_commit 21263d035ff2 \ + "f2fs: fix missing discard for active segments" + +_require_scratch +_require_xfs_io_command "pwrite" +_require_command "$DUMP_F2FS_PROG" dump.f2fs + +_scratch_mkfs >> $seqres.full +_scratch_mount >> $seqres.full + +_require_batched_discard $SCRATCH_MNT + +foo=$SCRATCH_MNT/foo +$XFS_IO_PROG -c "pwrite 0 1m" -c "fsync" -f $foo >> $seqres.full +sync + +rm $foo +_scratch_unmount >> $seqres.full 2>&1 + +$DUMP_F2FS_PROG $SCRATCH_DEV | grep "checkpoint state" | grep -o trimmed + +status=0 +exit diff --git a/tests/f2fs/014.out b/tests/f2fs/014.out new file mode 100644 index 000000000000..cb0c9447d675 --- /dev/null +++ b/tests/f2fs/014.out @@ -0,0 +1,2 @@ +QA output created by 014 +trimmed -- 2.34.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel