Re: [PATCH v2] common/defrag: skip defrag tests on DAX-enabled filesystems
Disha Goel <[email protected]>
| Newsgroups | org.kernel.vger.fstests,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-xfs |
|---|---|
| Message-ID | <[email protected]> |
On 04/06/26 8:24 pm, Darrick J. Wong wrote: > On Thu, Jun 04, 2026 at 05:53:05PM +0530, Disha Goel wrote: >> 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. >> >> Signed-off-by: Disha Goel <[email protected]> >> Reviewed-by: Ojaswin Mujoo <[email protected]> >> --- >> Changes in v2: >> - Made the check ext4-specific as XFS defrag works with DAX >> (feedback from Darrick) >> - Use __scratch_uses_fsdax() instead of grepping MOUNT_OPTIONS >> - Removed unnecessary comment as _notrun message is self-explanatory >> >> common/defrag | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/common/defrag b/common/defrag >> index 055d0d0e..f17271cd 100644 >> --- a/common/defrag >> +++ b/common/defrag >> @@ -6,6 +6,10 @@ >> >> _require_defrag() >> { >> + if [ "$FSTYP" = "ext4" ] && __scratch_uses_fsdax; then > > Shouldn't this be: > > ext4) > __scratch_uses_fsdax && _notrun "..." > ;; > > in the case statement below? > > --D Yes, that makes more sense. Keeping the ext4-specific check inside the ext4 case is cleaner and more consistent with the existing structure. I'll send v3 with this change. > >> + _notrun "ext4 online defrag not supported with DAX" >> + fi >> + >> case "$FSTYP" in >> xfs) >> # xfs_fsr does preallocates, require "falloc" >> -- >> 2.45.1 >> -- Regards, Disha