On Fri, Jan 12, 2024 at 05:47:43AM +0100, Christoph Hellwig wrote: > Currently the XFS log sector size defaults to the 512 bytes unless > explicitly overriden. Default to the device logical block size queried > by get_topology instead. If that is also 512 nothing changes, and if > the device logical block size is larged this prevents a mkfs failure larger > because the libxfs buffer cache blows up and as we obviously can't > use a smaller than hardware supported sector size. This fixes xfs/157 > with a 4k block size device. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > mkfs/xfs_mkfs.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c > index be65ccc1e..022a11a7f 100644 > --- a/mkfs/xfs_mkfs.c > +++ b/mkfs/xfs_mkfs.c > @@ -2075,7 +2075,8 @@ static void > validate_log_sectorsize( > struct mkfs_params *cfg, > struct cli_params *cli, > - struct mkfs_default_params *dft) > + struct mkfs_default_params *dft, > + struct fs_topology *ft) > { > > if (cli->loginternal && cli->lsectorsize && > @@ -2090,7 +2091,7 @@ _("Can't change sector size on internal log!\n")); > else if (cli->loginternal) > cfg->lsectorsize = cfg->sectorsize; > else > - cfg->lsectorsize = dft->sectorsize; > + cfg->lsectorsize = ft->log.logical_sector_size; Yessssssssss! With the typo fixed, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > cfg->lsectorlog = libxfs_highbit32(cfg->lsectorsize); > > if (cfg->lsectorsize < XFS_MIN_SECTORSIZE || > @@ -4196,7 +4197,7 @@ main( > blocksize = cfg.blocksize; > sectorsize = cfg.sectorsize; > > - validate_log_sectorsize(&cfg, &cli, &dft); > + validate_log_sectorsize(&cfg, &cli, &dft, &ft); > validate_sb_features(&cfg, &cli); > > /* > -- > 2.39.2 > >