2011-04-24 06:36:48

by Robin Dong

[permalink] [raw]
Subject: [PATCH] ext2: fix error msg when mounting fs with too-large blocksize

From: Robin Dong <[email protected]>

When ext2 mounts a filesystem, it attempts to set the block device
blocksize with a call to sb_set_blocksize, which can fail for
several reasons. The current failure message in ext2 prints:

EXT2-fs (loop1): error: blocksize is too small

which is not correct in all cases. This can be demonstrated
by creating a filesystem with

# mkfs.ext2 -b 8192

on a 4k page system, and attempting to mount it.

Change the error message to a more generic:

EXT2-fs (loop1): bad blocksize 8192

to match the error message in ext3.

Signed-off-by: Robin Dong <[email protected]>
---
fs/ext2/super.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 0a78dae..1dd62ed 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -898,7 +898,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
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



2011-04-24 06:48:00

by Coly Li

[permalink] [raw]
Subject: Re: [PATCH] ext2: fix error msg when mounting fs with too-large blocksize

On 2011年04月24日 14:36, Robin Dong Wrote:
> From: Robin Dong <[email protected]>
>
> When ext2 mounts a filesystem, it attempts to set the block device
> blocksize with a call to sb_set_blocksize, which can fail for
> several reasons. The current failure message in ext2 prints:
>
> EXT2-fs (loop1): error: blocksize is too small
>
> which is not correct in all cases. This can be demonstrated
> by creating a filesystem with
>
> # mkfs.ext2 -b 8192
>
> on a 4k page system, and attempting to mount it.
>
> Change the error message to a more generic:
>
> EXT2-fs (loop1): bad blocksize 8192
>
> to match the error message in ext3.
>

Reviewed-by: Coly Li <[email protected]>


> Signed-off-by: Robin Dong <[email protected]>
> ---
> fs/ext2/super.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext2/super.c b/fs/ext2/super.c
> index 0a78dae..1dd62ed 100644
> --- a/fs/ext2/super.c
> +++ b/fs/ext2/super.c
> @@ -898,7 +898,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
> 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;
> }
>

2011-04-25 15:11:33

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] ext2: fix error msg when mounting fs with too-large blocksize

On 4/24/11 1:36 AM, Robin Dong wrote:
> From: Robin Dong <[email protected]>
>
> When ext2 mounts a filesystem, it attempts to set the block device
> blocksize with a call to sb_set_blocksize, which can fail for
> several reasons. The current failure message in ext2 prints:
>
> EXT2-fs (loop1): error: blocksize is too small
>
> which is not correct in all cases. This can be demonstrated
> by creating a filesystem with
>
> # mkfs.ext2 -b 8192
>
> on a 4k page system, and attempting to mount it.
>
> Change the error message to a more generic:
>
> EXT2-fs (loop1): bad blocksize 8192
>
> to match the error message in ext3.

I couldn't have said it better myself :) As long as you're ok with not having the extra error message you originally had, for now ...

Reviewed-by: Eric Sandeen <[email protected]>

> Signed-off-by: Robin Dong <[email protected]>
> ---
> fs/ext2/super.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext2/super.c b/fs/ext2/super.c
> index 0a78dae..1dd62ed 100644
> --- a/fs/ext2/super.c
> +++ b/fs/ext2/super.c
> @@ -898,7 +898,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
> 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;
> }
>