@@ -3188,6 +3188,41 @@ _require_scratch_dax()
_scratch_unmount
}
+_require_scratch_dax_mountopt()
+{
+ local mountopt=$1
+ local output
+
+ _require_scratch
+ _scratch_mkfs > /dev/null 2>&1
+ _try_scratch_mount -o "$mountopt" || \
+ _notrun "mount $SCRATCH_DEV with $mountopt failed"
+
+ output=$(_fs_options $SCRATCH_DEV)
+
+ # For new dax mount option, /proc/mounts shows different outputs if we
+ # mount with -o dax=inode on ext4 and xfs so skip checking it.
+ # /proc/mounts shows 'dax=inode' on ext4 but shows nothing on xfs.
+ if [ "$mountopt" != "dax=inode" ]; then
+ echo $output | grep -qw "$mountopt" || \
+ _notrun "$SCRATCH_DEV $FSTYP does not support -o $mountopt"
+ fi
+
+ # For new dax mount option, /proc/mounts shows "dax=never" if we
+ # mount with -o dax on xfs and underlying device doesn't support dax.
+ if [ "$mountopt" = "dax" ]; then
+ echo $output | grep -qw "dax=never" && \
+ _notrun "$SCRATCH_DEV $FSTYP does not support -o $mountopt"
+ fi
+
+ _scratch_unmount
+}
+
+_require_scratch_dax_iflag()
+{
+ _require_xfs_io_command "chattr" "x"
+}
+
# Does norecovery support by this fs?
_require_norecovery()
{