diff mbox series

_scratch_mkfs_geom: Fix regex used for matching block size option

Message ID 20230925134805.1559201-1-chandanbabu@kernel.org (mailing list archive)
State New, archived
Headers show
Series _scratch_mkfs_geom: Fix regex used for matching block size option | expand

Commit Message

Chandan Babu R Sept. 25, 2023, 1:48 p.m. UTC
The regular expression used by _scratch_mkfs_geom() to match mkfs.xfs' block
size argument interprets the character 'b' as optional. It should actually
interpret whitespace as optional.

This causes generic/223 to fail when testing an XFS filesystem which uses an
external log device along with the -lsize option. In this case, the original
value of -lsize is replaced with the value of $blocksize.

_scratch_mkfs_sized() also uses the same incorrect regex.

Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
---
 common/rc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Darrick J. Wong Sept. 25, 2023, 2:55 p.m. UTC | #1
On Mon, Sep 25, 2023 at 07:18:05PM +0530, Chandan Babu R wrote:
> The regular expression used by _scratch_mkfs_geom() to match mkfs.xfs' block
> size argument interprets the character 'b' as optional. It should actually
> interpret whitespace as optional.
> 
> This causes generic/223 to fail when testing an XFS filesystem which uses an
> external log device along with the -lsize option. In this case, the original
> value of -lsize is replaced with the value of $blocksize.
> 
> _scratch_mkfs_sized() also uses the same incorrect regex.
> 
> Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>

Heh. :(
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  common/rc | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index 5c4429ed..991a5731 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -971,7 +971,7 @@ _scratch_mkfs_sized()
>  	case $FSTYP in
>  	xfs)
>  		# don't override MKFS_OPTIONS that set a block size.
> -		echo $MKFS_OPTIONS |grep -E -q "b?size="
> +		echo $MKFS_OPTIONS |grep -E -q "b\s*size="
>  		if [ $? -eq 0 ]; then
>  			_scratch_mkfs_xfs -d size=$fssize $rt_ops
>  		else
> @@ -1063,8 +1063,8 @@ _scratch_mkfs_geom()
>  
>      case $FSTYP in
>      xfs)
> -	if echo "$MKFS_OPTIONS" | grep -E -q "b?size="; then
> -		MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b?size=)[0-9]+k?/\1$blocksize/")
> +	if echo "$MKFS_OPTIONS" | grep -E -q "b\s*size="; then
> +		MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b\s*size=)[0-9]+k?/\1$blocksize/")
>  	else
>  		MKFS_OPTIONS+=" -b size=$blocksize"
>  	fi
> -- 
> 2.39.1
>
diff mbox series

Patch

diff --git a/common/rc b/common/rc
index 5c4429ed..991a5731 100644
--- a/common/rc
+++ b/common/rc
@@ -971,7 +971,7 @@  _scratch_mkfs_sized()
 	case $FSTYP in
 	xfs)
 		# don't override MKFS_OPTIONS that set a block size.
-		echo $MKFS_OPTIONS |grep -E -q "b?size="
+		echo $MKFS_OPTIONS |grep -E -q "b\s*size="
 		if [ $? -eq 0 ]; then
 			_scratch_mkfs_xfs -d size=$fssize $rt_ops
 		else
@@ -1063,8 +1063,8 @@  _scratch_mkfs_geom()
 
     case $FSTYP in
     xfs)
-	if echo "$MKFS_OPTIONS" | grep -E -q "b?size="; then
-		MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b?size=)[0-9]+k?/\1$blocksize/")
+	if echo "$MKFS_OPTIONS" | grep -E -q "b\s*size="; then
+		MKFS_OPTIONS=$(echo "$MKFS_OPTIONS" | sed -r "s/(b\s*size=)[0-9]+k?/\1$blocksize/")
 	else
 		MKFS_OPTIONS+=" -b size=$blocksize"
 	fi