@@ -1628,7 +1628,6 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
unsigned long def_mount_opts;
struct inode *root;
int blocksize;
- int hblock;
int db_count;
int i;
int needs_recovery;
@@ -1761,20 +1760,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
goto failed_mount;
}
- hblock = bdev_logical_block_size(sb->s_bdev);
if (sb->s_blocksize != blocksize) {
- /*
- * Make sure the blocksize for the filesystem is larger
- * than the hardware sectorsize for the machine.
- */
- if (blocksize < hblock) {
- ext3_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)) {
ext3_msg(sb, KERN_ERR,
"error: bad blocksize %d", blocksize);
The set_blocksize (which is in sb_set_blocksize) will fail if a blocksize is too small: /* Size cannot be smaller than the size supported by the device */ if (size < bdev_logical_block_size(bdev)) return -EINVAL; Therefore remove the checking for small blocksize before "sb_set_blocksize" to make it consistent to ext2. Signed-off-by: Robin Dong <sanbai@taobao.com> --- fs/ext3/super.c | 14 +------------- 1 files changed, 1 insertions(+), 13 deletions(-)