To prepare for adding post-mkfs operations support for Btrfs, streamline the mkfs command functions. Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx> --- common/btrfs | 21 +++++++++++++++++++++ common/rc | 13 ++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/common/btrfs b/common/btrfs index c9903a413cb0..798c899f6233 100644 --- a/common/btrfs +++ b/common/btrfs @@ -689,3 +689,24 @@ _require_btrfs_scratch_logical_resolve_v2() fi _scratch_unmount } + +_scratch_mkfs_retry_btrfs() +{ + # _scratch_do_mkfs() may retry mkfs without $MKFS_OPTIONS + _scratch_do_mkfs "$MKFS_BTRFS_PROG" "cat" $* + + return $? +} + +_scratch_mkfs_btrfs() +{ + $MKFS_BTRFS_PROG $MKFS_OPTIONS $mixed_opt -b $fssize $SCRATCH_DEV + return $? +} + +_scratch_pool_mkfs_btrfs() +{ + $MKFS_BTRFS_PROG $MKFS_OPTIONS $* $SCRATCH_DEV_POOL + + return $? +} diff --git a/common/rc b/common/rc index a438a8de1461..2e602caa2f3b 100644 --- a/common/rc +++ b/common/rc @@ -729,8 +729,8 @@ _scratch_mkfs() mkfs_filter="cat" ;; btrfs) - mkfs_cmd="$MKFS_BTRFS_PROG" - mkfs_filter="cat" + _scratch_mkfs_retry_btrfs $* + return $? ;; ext3) mkfs_cmd="$MKFS_PROG -t $FSTYP -- -F" @@ -881,7 +881,7 @@ _scratch_pool_mkfs() { case $FSTYP in btrfs) - $MKFS_BTRFS_PROG $MKFS_OPTIONS $* $SCRATCH_DEV_POOL > /dev/null + _scratch_pool_mkfs_btrfs $* ;; *) echo "_scratch_pool_mkfs is not implemented for $FSTYP" 1>&2 @@ -1018,7 +1018,10 @@ _scratch_mkfs_sized() # the device is not zoned. Ref: btrfs-progs: btrfs_min_dev_size() (( fssize < $((256 * 1024 * 1024)) )) && ! _scratch_btrfs_is_zoned && mixed_opt='--mixed' - $MKFS_BTRFS_PROG $MKFS_OPTIONS $mixed_opt -b $fssize $SCRATCH_DEV + + # _scratch_mkfs_btrfs appends $MKFS_OPTIONS and ends with + # $SCRATCH_DEV + _scratch_mkfs_btrfs $mixed_opt -b $fssize ;; jfs) ${MKFS_PROG} -t $FSTYP $MKFS_OPTIONS $SCRATCH_DEV $blocks @@ -1112,7 +1115,7 @@ _scratch_mkfs_blocksized() grep -wq $blocksize /sys/fs/btrfs/features/supported_sectorsizes || \ _notrun "$FSTYP does not support sectorsize=$blocksize yet" - _scratch_mkfs --sectorsize=$blocksize + _scratch_mkfs_retry_btrfs --sectorsize=$blocksize ;; xfs) _scratch_mkfs_xfs $MKFS_OPTIONS -b size=$blocksize -- 2.39.3