Some devices report an optimal_io_size of 512 instead of 0 when it's not larger than the minimum_io_size. Currently mkfs.gfs2 uses the non-zero value to choose the block size, which is almost certainly not what we want when it's 512. Update the suitability check for optimal_io_size to avoid using it when it's the same as minimum_io_size. The effect is that we fall back to using the default block size, 4096.
Resolves: rhbz#1839219 Signed-off-by: Andrew Price <anpr...@redhat.com> --- gfs2/mkfs/main_mkfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c index 846b341f..8b97f3d2 100644 --- a/gfs2/mkfs/main_mkfs.c +++ b/gfs2/mkfs/main_mkfs.c @@ -505,7 +505,7 @@ static unsigned choose_blocksize(struct mkfs_opts *opts) } if (!opts->got_bsize && got_topol) { if (dev->optimal_io_size <= getpagesize() && - dev->optimal_io_size >= dev->minimum_io_size) + dev->optimal_io_size > dev->minimum_io_size) bsize = dev->optimal_io_size; else if (dev->physical_sector_size <= getpagesize() && dev->physical_sector_size >= GFS2_DEFAULT_BSIZE) -- 2.26.2