[RFC PATCH v4 03/11] common/defrag: skip defrag tests on DAX-enabled filesystems

Artem Blagodarenko <[email protected]> Mon, 27 Jul 2026 17:13:37 -0400
Newsgroups org.kernel.vger.linux-ext4
Message-ID <[email protected]>
From: Disha Goel <[email protected]>

Online defragmentation is not supported on ext4 DAX-enabled filesystems.
The ext4 defrag ioctl (EXT4_IOC_MOVE_EXT) returns EOPNOTSUPP when used
on DAX files.

Add an ext4-specific check in _require_defrag() to skip tests when DAX
is enabled, avoiding false failures on ext4/301-304, ext4/308, and
generic/018.

XFS defrag works with DAX, so this check is ext4-specific.

Suggested-by: Darrick J. Wong <[email protected]>
Signed-off-by: Disha Goel <[email protected]>
Reviewed-by: Ojaswin Mujoo <[email protected]>
Reviewed-by: Zorro Lang <[email protected]>
Signed-off-by: Zorro Lang <[email protected]>
---
 common/defrag | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/common/defrag b/common/defrag
index 055d0d0e..baf05d94 100644
--- a/common/defrag
+++ b/common/defrag
@@ -13,6 +13,8 @@ _require_defrag()
         DEFRAG_PROG="$XFS_FSR_PROG"
 	;;
     ext4)
+        __scratch_uses_fsdax && _notrun "ext4 online defrag not supported with DAX"
+
 	testfile="$TEST_DIR/$$-test.defrag"
 	donorfile="$TEST_DIR/$$-donor.defrag"
 	bsize=`_get_block_size $TEST_DIR`
-- 
2.43.7