From: Robin Dong <sanbai@xxxxxxxxxx> After "mkfs.ext2 -b 8192" on a new partition, I mount it with a error dmesg: "error: blocksize is too small" That's not correct. Signed-off-by: Robin Dong <sanbai@xxxxxxxxxx> --- fs/ext2/super.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 0a78dae..f3008c1 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c @@ -758,6 +758,7 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) unsigned long def_mount_opts; long ret = -EINVAL; int blocksize = BLOCK_SIZE; + int hblock; int db_count; int i, j; __le32 features; @@ -893,12 +894,25 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) goto failed_mount; } + hblock = bdev_logical_block_size(sb->s_bdev); /* If the blocksize doesn't match, re-read the thing.. */ if (sb->s_blocksize != blocksize) { + /* + * Make sure the blocksize for the filesystem is larger + * than the hardware sectorsize for the machine. + */ + if (blocksize < hblock) { + ext2_msg(sb, KERN_ERR, + "error: fsblocksize %d too small for " + "hardware sectorsize %d", blocksize, hblock); + goto failed_mount; + } + brelse(bh); if (!sb_set_blocksize(sb, blocksize)) { - ext2_msg(sb, KERN_ERR, "error: blocksize is too small"); + ext2_msg(sb, KERN_ERR, + "error: bad blocksize %d", blocksize); goto failed_sbi; } -- 1.7.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html