_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 649b1cf..0ec7fe1 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
-               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