mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfs: filter out mount options that don't work on v4 filesystems
A few tests require v4 filesystems and enforce this by disabling crc's in the _scratch_mkfs call. However, if the user specified MOUNT_OPTIONS that only work with v5 filesystems, these tests fail. If we detect a test creating a v4 scratch filesystem, filter out incompatible mount options that don't work on v4, such as simultaneous group/project quota. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
committed by
Eryu Guan
parent
b0415daaa9
commit
3a2aed3ae4
+24
@@ -89,6 +89,7 @@ _scratch_mkfs_xfs()
|
||||
_scratch_do_mkfs "$mkfs_cmd" "$mkfs_filter" $* 2>$tmp.mkfserr 1>$tmp.mkfsstd
|
||||
mkfs_status=$?
|
||||
|
||||
grep -q crc=0 $tmp.mkfsstd && _force_xfsv4_mount_options
|
||||
|
||||
if [ $mkfs_status -eq 0 -a "$LARGE_SCRATCH_DEV" = yes ]; then
|
||||
# manually parse the mkfs output to get the fs size in bytes
|
||||
@@ -789,3 +790,26 @@ _scratch_get_bmx_prefix() {
|
||||
_scratch_xfs_db -c "inode ${ino}" -c 'p' >> $seqres.full
|
||||
return 1
|
||||
}
|
||||
|
||||
#
|
||||
# Ensures that we don't pass any mount options incompatible with XFS v4
|
||||
#
|
||||
_force_xfsv4_mount_options()
|
||||
{
|
||||
local gquota=0
|
||||
local pquota=0
|
||||
|
||||
# Can't have group and project quotas in XFS v4
|
||||
echo "$MOUNT_OPTIONS" | egrep -q "(gquota|grpquota|grpjquota=|gqnoenforce)" && gquota=1
|
||||
echo "$MOUNT_OPTIONS" | egrep -q "(\bpquota|prjquota|pqnoenforce)" && pquota=1
|
||||
|
||||
if [ $gquota -gt 0 ] && [ $pquota -gt 0 ]; then
|
||||
export MOUNT_OPTIONS=$(echo $MOUNT_OPTIONS \
|
||||
| sed -e 's/gquota/QUOTA/g' \
|
||||
-e 's/grpquota/QUOTA/g' \
|
||||
-e 's/grpjquota=[^, ]/QUOTA/g' \
|
||||
-e 's/gqnoenforce/QUOTA/g' \
|
||||
-e "s/QUOTA/defaults/g")
|
||||
fi
|
||||
echo "MOUNT_OPTIONS = $MOUNT_OPTIONS" >>$seqres.full
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user