@@ -1847,3 +1847,19 @@ _require_xfs_nocrc()
_notrun "v4 file systems not supported"
_scratch_unmount
}
+
+# Adjust MKFS_OPTIONS as necessary to avoid having parent pointers formatted
+# onto the filesystem
+_xfs_force_no_pptrs()
+{
+ # Nothing to do if parent pointers aren't supported by mkfs
+ $MKFS_XFS_PROG 2>&1 | grep -q parent=0 || return
+
+ if echo "$MKFS_OPTIONS" | grep -q 'parent='; then
+ MKFS_OPTIONS="$(echo "$MKFS_OPTIONS" | \
+ sed -e 's/parent=[01]/parent=0/g')"
+ return
+ fi
+
+ MKFS_OPTIONS="$MKFS_OPTIONS -n parent=0"
+}
@@ -111,6 +111,10 @@ attr32l="X$attr32k"
attr64k="$attr32k$attr32k"
echo "*** mkfs"
+
+# Parent pointers change the xattr formats sufficiently to break this test.
+# Disable parent pointers if mkfs supports it.
+_xfs_force_no_pptrs
_scratch_mkfs >/dev/null
blk_sz=$(_scratch_xfs_get_sb_field blocksize)
@@ -33,6 +33,9 @@ _fixed_by_kernel_commit 7be3bd8856fb "xfs: empty xattr leaf header blocks are no
_fixed_by_kernel_commit e87021a2bc10 "xfs: use larger in-core attr firstused field and detect overflow"
_fixed_by_git_commit xfsprogs f50d3462c654 "xfs_repair: ignore empty xattr leaf blocks"
+# Parent pointers change the xattr formats sufficiently to break this test.
+# Disable parent pointers if mkfs supports it.
+_xfs_force_no_pptrs
_scratch_mkfs_xfs | _filter_mkfs >$seqres.full 2>$tmp.mkfs
cat $tmp.mkfs >> $seqres.full
source $tmp.mkfs
@@ -19,6 +19,10 @@ _supported_fs xfs
_require_scratch
_require_attrs
+# Parent pointers change the xattr formats sufficiently to break this test.
+# Disable parent pointers if mkfs supports it.
+_xfs_force_no_pptrs
+
# get block size ($dbsize) from the mkfs output
_scratch_mkfs_xfs 2>/dev/null | _filter_mkfs 2>$tmp.mkfs >/dev/null
. $tmp.mkfs