@@ -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 $?
+}
@@ -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
To prepare for adding post-mkfs operations support for Btrfs, streamline the mkfs command functions. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- common/btrfs | 21 +++++++++++++++++++++ common/rc | 13 ++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-)