1) _require_scratch_dax_mountopt() checks both old and new DAX mount option 2) _require_dax_iflag() checks FS_XFLAG_DAX Signed-off-by: Xiao Yang <yangx.jy@xxxxxxxxxxxxxx> --- V5->V6: Simplify _require_scratch_dax_mountopt because it is enough to only check dax/dax=always mount option. See the following reasons: 1) we cannot detect if underlying device supports dax by mounting dax=inode or dax=never. 2) dax=always, dax=inode, dax=never are always introduced together. common/rc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/common/rc b/common/rc index f17b19f2..aeec1f11 100644 --- a/common/rc +++ b/common/rc @@ -3188,6 +3188,28 @@ _require_scratch_dax() _scratch_unmount } +# Only accept dax/dax=always mount option becasue dax=always, dax=inode +# and dax=never are always introduced together. +_require_scratch_dax_mountopt() +{ + local mountopt=$1 + + _require_scratch + _scratch_mkfs > /dev/null 2>&1 + _try_scratch_mount "-o $mountopt" > /dev/null 2>&1 || \ + _notrun "mount $SCRATCH_DEV with $mountopt failed" + + _fs_options $SCRATCH_DEV | egrep -q "dax(=always|,|$)" || \ + _notrun "$SCRATCH_DEV $FSTYP does not support -o $mountopt" + + _scratch_unmount +} + +_require_dax_iflag() +{ + _require_xfs_io_command "chattr" "x" +} + # Does norecovery support by this fs? _require_norecovery() { -- 2.21.0