Re: [PATCH v2 2/2] common/rc: improve block size support for bcachefs

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]




On Wed 17 Jan 2024 at 12:55, Brian Foster <bfoster@xxxxxxxxxx> wrote:

On Wed, Jan 17, 2024 at 05:23:09PM +0800, Su Yue wrote:
For bcachefs, def_blksz is never assigned even MKFS_OPTIONS contains option '--block_size'. So block size of bcachefs on scratch dev is always 4096
if _scratch_mkfs_sized is called without second parameter.

Add the pattern to set def_blksz if '--block_size' is given in MKFS_OPTIONS.

Signed-off-by: Su Yue <glass.su@xxxxxxxx>
---
changelog:
v2:
    Born.
---
 common/rc | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/common/rc b/common/rc
index 31c21d2a8360..6a01de69cf05 100644
--- a/common/rc
+++ b/common/rc
@@ -950,6 +950,9 @@ _scratch_mkfs_sized()
 	jfs)
 		def_blksz=4096
 		;;
+	bcachefs)
+ def_blksz=`echo $MKFS_OPTIONS | sed -rn 's/.*(--block_size)[ =]?+([0-9]+).*/\2/p'`
+		;;

So if the default bcachefs block size is 512b, I wonder if this should
do something like what the udf branch does a few lines above and

mkfs.bcachefs decides block size by querying statbuf.st_blksize or
BLKPBSZGET from the device if the option is not given.

override the hardcoded default of 4k. ISTM this whole thing would be more robust if it just elided the param in the default cases and let the associated mkfs tool use its own default, but that's probably a separate
issue. Hm?

Since there is no default block size of bcachefs, maybe we can let
mkfs.bcachefs decide on its own but it will make chaos when somebody
reports an unreproducible BUG due to the different block_size even
we have same local.config. It just happened...
So for now, I think 4096 is a resonable value of bcachefs block size.

--
Su

Brian

 	esac

 	[ -n "$def_blksz" ] && blocksize=$def_blksz
--
2.43.0





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux