* [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG for bcachefs
@ 2024-01-29 14:00 Su Yue
2024-01-29 14:00 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Su Yue @ 2024-01-29 14:00 UTC (permalink / raw)
To: fstests; +Cc: linux-bcachefs, l, bfoster, Su Yue
From: Su Yue <glass.su@suse.com>
mkfs.bcachefs supports force overwrite when option '-f' is given:
$ mkfs.bcachefs --help | grep force
-f, --force
There are some tests which call _scratch_mkfs multiple times
e.g. tests/generic/171. Without '-f' in MKFS_OPTIONS,
these tests just hang in overwrite confirmation.
After this commit, MKFS_BCACHEFS_PROG will contains ' -f' so
we don't have to add '-f' to MKFS_OPTIONS manually to make
these tests pass.
It also fixes generic/466 which unsets MKFS_OPTIONS causing
that test hangs in mfks.bcachefs waiting for confirmation of
the force overwrite.
Signed-off-by: Su Yue <glass.su@suse.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
---
changelog:
v3:
Add Brian's Reviewed-by.
v2:
Add more details about why MKFS_BCACHEFS_PROG should contain '-f'.
common/config | 3 ++-
common/rc | 12 +++++++++---
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/common/config b/common/config
index c9771ff934cb..1f9edceec57a 100644
--- a/common/config
+++ b/common/config
@@ -105,7 +105,7 @@ set_mkfs_prog_path_with_opts()
# Note: mkfs.f2fs doesn't support the --help option yet, but it doesn't
# matter since it also prints the help when an invalid option is given.
if [ "$p" != "" ] && \
- $p --help |& grep -q "[[:space:]]-f[[:space:]|]"; then
+ $p --help |& grep -q "[[:space:]]-f[[:space:]|,]"; then
echo "$p -f"
else
echo $p
@@ -313,6 +313,7 @@ export MKFS_REISER4_PROG=$(type -P mkfs.reiser4)
export E2FSCK_PROG=$(type -P e2fsck)
export TUNE2FS_PROG=$(type -P tune2fs)
export FSCK_OVERLAY_PROG=$(type -P fsck.overlay)
+export MKFS_BCACHEFS_PROG=$(set_mkfs_prog_path_with_opts bcachefs)
# SELinux adds extra xattrs which can mess up our expected output.
# So, mount with a context, and they won't be created.
diff --git a/common/rc b/common/rc
index 524ffa02aa6a..31c21d2a8360 100644
--- a/common/rc
+++ b/common/rc
@@ -611,6 +611,9 @@ _test_mkfs()
xfs)
$MKFS_PROG -t $FSTYP -- -f $MKFS_OPTIONS $* $TEST_DEV
;;
+ bcachefs)
+ $MKFS_BCACHEFS_PROG $MKFS_OPTIONS $* $TEST_DEV > /dev/null
+ ;;
*)
yes | $MKFS_PROG -t $FSTYP -- $MKFS_OPTIONS $* $TEST_DEV
;;
@@ -753,6 +756,10 @@ _scratch_mkfs()
mkfs_cmd="yes | $MKFS_PROG -t $FSTYP --"
mkfs_filter="grep -v -e ^mkfs\.ocfs2"
;;
+ bcachefs)
+ mkfs_cmd="$MKFS_BCACHEFS_PROG"
+ mkfs_filter="cat"
+ ;;
*)
mkfs_cmd="yes | $MKFS_PROG -t $FSTYP --"
mkfs_filter="cat"
@@ -1044,7 +1051,7 @@ _scratch_mkfs_sized()
export MOUNT_OPTIONS="-o size=$fssize $TMPFS_MOUNT_OPTIONS"
;;
bcachefs)
- $MKFS_PROG -t $FSTYP -- $MKFS_OPTIONS --fs_size=$fssize --block_size=$blocksize $SCRATCH_DEV
+ $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize --block_size=$blocksize $SCRATCH_DEV
;;
*)
_notrun "Filesystem $FSTYP not supported in _scratch_mkfs_sized"
@@ -1128,8 +1135,7 @@ _scratch_mkfs_blocksized()
-C $blocksize $SCRATCH_DEV
;;
bcachefs)
- ${MKFS_PROG} -t $FSTYP $MKFS_OPTIONS --block_size=$blocksize \
- $SCRATCH_DEV
+ _scratch_mkfs --block_size=$blocksize
;;
udf)
_scratch_mkfs -b $blocksize
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 2/2] common/rc: improve block_size support for bcachefs
2024-01-29 14:00 [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG for bcachefs Su Yue
@ 2024-01-29 14:00 ` Su Yue
2024-01-29 14:01 ` [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG " Su Yue
2024-01-29 14:01 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
2 siblings, 0 replies; 6+ messages in thread
From: Su Yue @ 2024-01-29 14:00 UTC (permalink / raw)
To: fstests; +Cc: linux-bcachefs, l, bfoster, Su Yue
From: Su Yue <glass.su@suse.com>
mkfs.bcachefs now supports option '--block_size' to allow
custom block_size.
Add the pattern to set def_blksz if MKFS_OPTIONS contains the
option in _scratch_mkfs_sized.
Also let mkfs.bcachefs decide blocksize if no option is given in
local.config or _scratch_mkfs_sized parameter.
Signed-off-by: Su Yue <glass.su@suse.com>
---
changelog:
v3:
Add logic to Let mkfs.bcachefs decide blocksize if no option is given in
local.config or _scratch_mkfs_sized parameter.
v2:
Born.
---
common/rc | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/common/rc b/common/rc
index 31c21d2a8360..315a2413f963 100644
--- a/common/rc
+++ b/common/rc
@@ -930,6 +930,7 @@ _scratch_mkfs_sized()
local fssize=$1
local blocksize=$2
local def_blksz
+ local blocksize_opt
case $FSTYP in
xfs)
@@ -950,6 +951,13 @@ _scratch_mkfs_sized()
jfs)
def_blksz=4096
;;
+ bcachefs)
+ def_blksz=`echo $MKFS_OPTIONS | sed -rn 's/.*(--block_size)[ =]?+([0-9]+).*/\2/p'`
+ [ -n "$def_blksize" ] && blocksize_opt="--block_size=$def_blksize"
+ [ -n "$blocksize" ] && blocksize_opt="--block_size=$blocksize"
+ # If no block size is given by local.confg or parameter, blocksize_opt is empty.
+ # Let MKFS_BCACHEFS_PROG decide block size on its own.
+ ;;
esac
[ -n "$def_blksz" ] && blocksize=$def_blksz
@@ -1051,7 +1059,7 @@ _scratch_mkfs_sized()
export MOUNT_OPTIONS="-o size=$fssize $TMPFS_MOUNT_OPTIONS"
;;
bcachefs)
- $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize --block_size=$blocksize $SCRATCH_DEV
+ $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize $blocksize_opt $SCRATCH_DEV
;;
*)
_notrun "Filesystem $FSTYP not supported in _scratch_mkfs_sized"
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG for bcachefs
2024-01-29 14:00 [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG for bcachefs Su Yue
2024-01-29 14:00 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
@ 2024-01-29 14:01 ` Su Yue
2024-01-29 14:01 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
2 siblings, 0 replies; 6+ messages in thread
From: Su Yue @ 2024-01-29 14:01 UTC (permalink / raw)
To: fstests; +Cc: linux-bcachefs, l, bfoster, Su Yue
From: Su Yue <glass.su@suse.com>
mkfs.bcachefs supports force overwrite when option '-f' is given:
$ mkfs.bcachefs --help | grep force
-f, --force
There are some tests which call _scratch_mkfs multiple times
e.g. tests/generic/171. Without '-f' in MKFS_OPTIONS,
these tests just hang in overwrite confirmation.
After this commit, MKFS_BCACHEFS_PROG will contains ' -f' so
we don't have to add '-f' to MKFS_OPTIONS manually to make
these tests pass.
It also fixes generic/466 which unsets MKFS_OPTIONS causing
that test hangs in mfks.bcachefs waiting for confirmation of
the force overwrite.
Signed-off-by: Su Yue <glass.su@suse.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
---
changelog:
v3:
Add Brian's Reviewed-by.
v2:
Add more details about why MKFS_BCACHEFS_PROG should contain '-f'.
common/config | 3 ++-
common/rc | 12 +++++++++---
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/common/config b/common/config
index c9771ff934cb..1f9edceec57a 100644
--- a/common/config
+++ b/common/config
@@ -105,7 +105,7 @@ set_mkfs_prog_path_with_opts()
# Note: mkfs.f2fs doesn't support the --help option yet, but it doesn't
# matter since it also prints the help when an invalid option is given.
if [ "$p" != "" ] && \
- $p --help |& grep -q "[[:space:]]-f[[:space:]|]"; then
+ $p --help |& grep -q "[[:space:]]-f[[:space:]|,]"; then
echo "$p -f"
else
echo $p
@@ -313,6 +313,7 @@ export MKFS_REISER4_PROG=$(type -P mkfs.reiser4)
export E2FSCK_PROG=$(type -P e2fsck)
export TUNE2FS_PROG=$(type -P tune2fs)
export FSCK_OVERLAY_PROG=$(type -P fsck.overlay)
+export MKFS_BCACHEFS_PROG=$(set_mkfs_prog_path_with_opts bcachefs)
# SELinux adds extra xattrs which can mess up our expected output.
# So, mount with a context, and they won't be created.
diff --git a/common/rc b/common/rc
index 524ffa02aa6a..31c21d2a8360 100644
--- a/common/rc
+++ b/common/rc
@@ -611,6 +611,9 @@ _test_mkfs()
xfs)
$MKFS_PROG -t $FSTYP -- -f $MKFS_OPTIONS $* $TEST_DEV
;;
+ bcachefs)
+ $MKFS_BCACHEFS_PROG $MKFS_OPTIONS $* $TEST_DEV > /dev/null
+ ;;
*)
yes | $MKFS_PROG -t $FSTYP -- $MKFS_OPTIONS $* $TEST_DEV
;;
@@ -753,6 +756,10 @@ _scratch_mkfs()
mkfs_cmd="yes | $MKFS_PROG -t $FSTYP --"
mkfs_filter="grep -v -e ^mkfs\.ocfs2"
;;
+ bcachefs)
+ mkfs_cmd="$MKFS_BCACHEFS_PROG"
+ mkfs_filter="cat"
+ ;;
*)
mkfs_cmd="yes | $MKFS_PROG -t $FSTYP --"
mkfs_filter="cat"
@@ -1044,7 +1051,7 @@ _scratch_mkfs_sized()
export MOUNT_OPTIONS="-o size=$fssize $TMPFS_MOUNT_OPTIONS"
;;
bcachefs)
- $MKFS_PROG -t $FSTYP -- $MKFS_OPTIONS --fs_size=$fssize --block_size=$blocksize $SCRATCH_DEV
+ $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize --block_size=$blocksize $SCRATCH_DEV
;;
*)
_notrun "Filesystem $FSTYP not supported in _scratch_mkfs_sized"
@@ -1128,8 +1135,7 @@ _scratch_mkfs_blocksized()
-C $blocksize $SCRATCH_DEV
;;
bcachefs)
- ${MKFS_PROG} -t $FSTYP $MKFS_OPTIONS --block_size=$blocksize \
- $SCRATCH_DEV
+ _scratch_mkfs --block_size=$blocksize
;;
udf)
_scratch_mkfs -b $blocksize
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 2/2] common/rc: improve block_size support for bcachefs
2024-01-29 14:00 [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG for bcachefs Su Yue
2024-01-29 14:00 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
2024-01-29 14:01 ` [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG " Su Yue
@ 2024-01-29 14:01 ` Su Yue
2024-01-29 15:44 ` Brian Foster
2 siblings, 1 reply; 6+ messages in thread
From: Su Yue @ 2024-01-29 14:01 UTC (permalink / raw)
To: fstests; +Cc: linux-bcachefs, l, bfoster, Su Yue
From: Su Yue <glass.su@suse.com>
mkfs.bcachefs now supports option '--block_size' to allow
custom block_size.
Add the pattern to set def_blksz if MKFS_OPTIONS contains the
option in _scratch_mkfs_sized.
Also let mkfs.bcachefs decide blocksize if no option is given in
local.config or _scratch_mkfs_sized parameter.
Signed-off-by: Su Yue <glass.su@suse.com>
---
changelog:
v3:
Add logic to Let mkfs.bcachefs decide blocksize if no option is given in
local.config or _scratch_mkfs_sized parameter.
v2:
Born.
---
common/rc | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/common/rc b/common/rc
index 31c21d2a8360..315a2413f963 100644
--- a/common/rc
+++ b/common/rc
@@ -930,6 +930,7 @@ _scratch_mkfs_sized()
local fssize=$1
local blocksize=$2
local def_blksz
+ local blocksize_opt
case $FSTYP in
xfs)
@@ -950,6 +951,13 @@ _scratch_mkfs_sized()
jfs)
def_blksz=4096
;;
+ bcachefs)
+ def_blksz=`echo $MKFS_OPTIONS | sed -rn 's/.*(--block_size)[ =]?+([0-9]+).*/\2/p'`
+ [ -n "$def_blksize" ] && blocksize_opt="--block_size=$def_blksize"
+ [ -n "$blocksize" ] && blocksize_opt="--block_size=$blocksize"
+ # If no block size is given by local.confg or parameter, blocksize_opt is empty.
+ # Let MKFS_BCACHEFS_PROG decide block size on its own.
+ ;;
esac
[ -n "$def_blksz" ] && blocksize=$def_blksz
@@ -1051,7 +1059,7 @@ _scratch_mkfs_sized()
export MOUNT_OPTIONS="-o size=$fssize $TMPFS_MOUNT_OPTIONS"
;;
bcachefs)
- $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize --block_size=$blocksize $SCRATCH_DEV
+ $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize $blocksize_opt $SCRATCH_DEV
;;
*)
_notrun "Filesystem $FSTYP not supported in _scratch_mkfs_sized"
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] common/rc: improve block_size support for bcachefs
2024-01-29 14:01 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
@ 2024-01-29 15:44 ` Brian Foster
2024-01-29 23:44 ` Su Yue
0 siblings, 1 reply; 6+ messages in thread
From: Brian Foster @ 2024-01-29 15:44 UTC (permalink / raw)
To: Su Yue; +Cc: fstests, linux-bcachefs, l
On Mon, Jan 29, 2024 at 10:01:01PM +0800, Su Yue wrote:
> From: Su Yue <glass.su@suse.com>
>
> mkfs.bcachefs now supports option '--block_size' to allow
> custom block_size.
>
> Add the pattern to set def_blksz if MKFS_OPTIONS contains the
> option in _scratch_mkfs_sized.
> Also let mkfs.bcachefs decide blocksize if no option is given in
> local.config or _scratch_mkfs_sized parameter.
>
> Signed-off-by: Su Yue <glass.su@suse.com>
> ---
> changelog:
> v3:
> Add logic to Let mkfs.bcachefs decide blocksize if no option is given in
> local.config or _scratch_mkfs_sized parameter.
> v2:
> Born.
> ---
Looks like the series duplicates the patches for some reason..
> common/rc | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/common/rc b/common/rc
> index 31c21d2a8360..315a2413f963 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -930,6 +930,7 @@ _scratch_mkfs_sized()
> local fssize=$1
> local blocksize=$2
> local def_blksz
> + local blocksize_opt
>
> case $FSTYP in
> xfs)
> @@ -950,6 +951,13 @@ _scratch_mkfs_sized()
> jfs)
> def_blksz=4096
> ;;
> + bcachefs)
> + def_blksz=`echo $MKFS_OPTIONS | sed -rn 's/.*(--block_size)[ =]?+([0-9]+).*/\2/p'`
> + [ -n "$def_blksize" ] && blocksize_opt="--block_size=$def_blksize"
> + [ -n "$blocksize" ] && blocksize_opt="--block_size=$blocksize"
This seems reasonable to me, but if I follow this function correctly the
behavior when both the param ($blocksize) and MKFS_OPTIONS specify a
block size is that MKFS_OPTIONS overrides the former. For bcachefs it
looks like the above does the opposite. Should we switch around the
above two statements?
Brian
> + # If no block size is given by local.confg or parameter, blocksize_opt is empty.
> + # Let MKFS_BCACHEFS_PROG decide block size on its own.
> + ;;
> esac
>
> [ -n "$def_blksz" ] && blocksize=$def_blksz
> @@ -1051,7 +1059,7 @@ _scratch_mkfs_sized()
> export MOUNT_OPTIONS="-o size=$fssize $TMPFS_MOUNT_OPTIONS"
> ;;
> bcachefs)
> - $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize --block_size=$blocksize $SCRATCH_DEV
> + $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize $blocksize_opt $SCRATCH_DEV
> ;;
> *)
> _notrun "Filesystem $FSTYP not supported in _scratch_mkfs_sized"
> --
> 2.43.0
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] common/rc: improve block_size support for bcachefs
2024-01-29 15:44 ` Brian Foster
@ 2024-01-29 23:44 ` Su Yue
0 siblings, 0 replies; 6+ messages in thread
From: Su Yue @ 2024-01-29 23:44 UTC (permalink / raw)
To: Brian Foster; +Cc: Su Yue, fstests, linux-bcachefs, l
On Mon 29 Jan 2024 at 10:44, Brian Foster <bfoster@redhat.com>
wrote:
> On Mon, Jan 29, 2024 at 10:01:01PM +0800, Su Yue wrote:
>> From: Su Yue <glass.su@suse.com>
>>
>> mkfs.bcachefs now supports option '--block_size' to allow
>> custom block_size.
>>
>> Add the pattern to set def_blksz if MKFS_OPTIONS contains the
>> option in _scratch_mkfs_sized.
>> Also let mkfs.bcachefs decide blocksize if no option is given
>> in
>> local.config or _scratch_mkfs_sized parameter.
>>
>> Signed-off-by: Su Yue <glass.su@suse.com>
>> ---
>> changelog:
>> v3:
>> Add logic to Let mkfs.bcachefs decide blocksize if no
>> option is given in
>> local.config or _scratch_mkfs_sized parameter.
>> v2:
>> Born.
>> ---
>
> Looks like the series duplicates the patches for some reason..
>
Yeah..I sent two patches but 4 patches in
https://lore.kernel.org/fstests/20240129140101.4259-3-l@damenly.org/T/#t
>
>> common/rc | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/common/rc b/common/rc
>> index 31c21d2a8360..315a2413f963 100644
>> --- a/common/rc
>> +++ b/common/rc
>> @@ -930,6 +930,7 @@ _scratch_mkfs_sized()
>> local fssize=$1
>> local blocksize=$2
>> local def_blksz
>> + local blocksize_opt
>>
>> case $FSTYP in
>> xfs)
>> @@ -950,6 +951,13 @@ _scratch_mkfs_sized()
>> jfs)
>> def_blksz=4096
>> ;;
>> + bcachefs)
>> + def_blksz=`echo $MKFS_OPTIONS | sed -rn
>> 's/.*(--block_size)[ =]?+([0-9]+).*/\2/p'`
>> + [ -n "$def_blksize" ] &&
>> blocksize_opt="--block_size=$def_blksize"
>> + [ -n "$blocksize" ] &&
>> blocksize_opt="--block_size=$blocksize"
>
> This seems reasonable to me, but if I follow this function
> correctly the
> behavior when both the param ($blocksize) and MKFS_OPTIONS
> specify a
> block size is that MKFS_OPTIONS overrides the former. For
> bcachefs it
> looks like the above does the opposite. Should we switch around
> the
> above two statements?
>
Thanks for the catch. Nights turned my brain to mush.
V4 was sent.
--
Su
> Brian
>
>> + # If no block size is given by local.confg or
>> parameter, blocksize_opt is empty.
>> + # Let MKFS_BCACHEFS_PROG decide block size on its own.
>> + ;;
>> esac
>>
>> [ -n "$def_blksz" ] && blocksize=$def_blksz
>> @@ -1051,7 +1059,7 @@ _scratch_mkfs_sized()
>> export MOUNT_OPTIONS="-o size=$fssize
>> $TMPFS_MOUNT_OPTIONS"
>> ;;
>> bcachefs)
>> - $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize
>> --block_size=$blocksize $SCRATCH_DEV
>> + $MKFS_BCACHEFS_PROG $MKFS_OPTIONS --fs_size=$fssize
>> $blocksize_opt $SCRATCH_DEV
>> ;;
>> *)
>> _notrun "Filesystem $FSTYP not supported in
>> _scratch_mkfs_sized"
>> --
>> 2.43.0
>>
>>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-01-29 23:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-29 14:00 [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG for bcachefs Su Yue
2024-01-29 14:00 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
2024-01-29 14:01 ` [PATCH v3 1/2] fstests: introduce MKFS_BCACHEFS_PROG " Su Yue
2024-01-29 14:01 ` [PATCH v3 2/2] common/rc: improve block_size support " Su Yue
2024-01-29 15:44 ` Brian Foster
2024-01-29 23:44 ` Su Yue
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).