_scratch_mkfs_geom(): Filter out 'k' suffix from fs block size
authorChandan Babu R <chandanrlinux@gmail.com>
Tue, 9 Feb 2021 16:12:52 +0000 (21:42 +0530)
committerEryu Guan <guaneryu@gmail.com>
Sun, 28 Feb 2021 13:02:22 +0000 (21:02 +0800)
If the original value of $MKFS_OPTIONS contained a block size value
having 'k' as a suffix (e.g. -b size=4k), then the newly constructed
value of $MKFS_OPTIONS will have 'k' suffixed to the value of
$blocksize.  $blocksize itself is specified in units of bytes. Hence
having 'k' suffixed to this value will result in an incorrect block
size.

This commit fixes the bug by conditionally filtering out the 'k'
suffix from block size option present in the original value of
$MKFS_OPTIONS.

Signed-off-by: Chandan Babu R <chandanrlinux@gmail.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/rc

index 649b1cfd884a267628366b38a55e33f7f08368f5..0ec7fe1a91aeccc980e38c216fc9a16b81db8154 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -1062,7 +1062,7 @@ _scratch_mkfs_geom()
     case $FSTYP in
     xfs)
        if echo "$MKFS_OPTIONS" | egrep -q "b?size="; then
     case $FSTYP in
     xfs)
        if echo "$MKFS_OPTIONS" | egrep -q "b?size="; then
-               MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b?size=)[0-9]+/\1$blocksize/")
+               MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b?size=)[0-9]+k?/\1$blocksize/")
        else
                MKFS_OPTIONS+=" -b size=$blocksize"
        fi
        else
                MKFS_OPTIONS+=" -b size=$blocksize"
        fi