mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
generic/223: Don't clear MKFS_OPTION before calling _scratch_mkfs_geom()
Current _scratch_mkfs_geom() adds geometry parameters to the end of the MKFS_OPTIONS blindly. ext4 can accept the last one if geometry parameters and original MKFS_OPTION have the same mkfs options but xfs cannot accept them and reports "xxx option is respecified" error. Make _scratch_mkfs_geom() override the same mkfs options in original MKFS_OPTION by geometry parameters. With this change, generic/223 doesn't need to clear original MKFS_OPTION before calling _scratch_mkfs_geom() and can use other mkfs options in original MKFS_OPTION. Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
@@ -1051,7 +1051,19 @@ _scratch_mkfs_geom()
|
||||
|
||||
case $FSTYP in
|
||||
xfs)
|
||||
MKFS_OPTIONS+=" -b size=$blocksize, -d su=$sunit_bytes,sw=$swidth_mult"
|
||||
if echo "$MKFS_OPTIONS" | egrep -q "b?size="; then
|
||||
MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b?size=)[0-9]+/\1$blocksize/")
|
||||
else
|
||||
MKFS_OPTIONS+=" -b size=$blocksize"
|
||||
fi
|
||||
|
||||
if echo "$MKFS_OPTIONS" | egrep -q "(su|sunit|sw|swidth)="; then
|
||||
MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r \
|
||||
-e "s/(su|sunit)=[0-9kmg]+/su=$sunit_bytes/" \
|
||||
-e "s/(sw|swidth)=[0-9kmg]+/sw=$swidth_mult/")
|
||||
else
|
||||
MKFS_OPTIONS+=" -d su=$sunit_bytes,sw=$swidth_mult"
|
||||
fi
|
||||
;;
|
||||
ext4|ext4dev)
|
||||
MKFS_OPTIONS+=" -b $blocksize -E stride=$sunit_blocks,stripe_width=$swidth_blocks"
|
||||
|
||||
@@ -41,7 +41,6 @@ for SUNIT_K in 8 16 32 64 128; do
|
||||
let SUNIT_BLOCKS=$SUNIT_BYTES/$BLOCKSIZE
|
||||
|
||||
echo "=== mkfs with su $SUNIT_BLOCKS blocks x 4 ==="
|
||||
export MKFS_OPTIONS=""
|
||||
_scratch_mkfs_geom $SUNIT_BYTES 4 $BLOCKSIZE >> $seqres.full 2>&1
|
||||
_scratch_mount
|
||||
|
||||
|
||||
Reference in New Issue
Block a user