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 |
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 --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
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(-)