On F2FS, generic/064 fails with "extents mismatched before = 1 after = 50" following multiple fcollapse (collapse range) operations.
To ensure crash consistency and checkpoint integrity, F2FS forbids in-place SSR (Summary Standalone Replacement) overwrites on valid checkpointed blocks. When collapse range shifts blocks, F2FS allocates new data pages in LFS mode (out-of-place log writes). As a result, sequential collapse range calls rewrite shifted blocks at new log locations, intentionally leaving the file with 50 extents. Adjust the extent verification in generic/064 to expect exactly 50 extents on F2FS, while preserving the strict 1-extent requirement for all other filesystems. Data integrity continues to be verified via byte comparison. Signed-off-by: Jaegeuk Kim <[email protected]> Signed-off-by: Jan Prusakowski <[email protected]> --- tests/generic/064 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/generic/064 b/tests/generic/064 index aed13970..b77eccb4 100755 --- a/tests/generic/064 +++ b/tests/generic/064 @@ -59,7 +59,13 @@ for (( j=0; j < $(($BLOCKS/2)); j++ )); do done extent_after=`_count_extents $dest` -if [ $extent_before -ne $extent_after ]; then + +if [ "$FSTYP" == "f2fs" ]; +then + if [ $extent_before -ne 1 ] || [ $extent_after -ne 50 ]; then + echo "extents mismatched before = $extent_before after = $extent_after" + fi +elif [ $extent_before -ne $extent_after ]; then echo "extents mismatched before = $extent_before after = $extent_after" fi -- 2.55.0.rc0.786.g65d90a0328-goog _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
