Re: [PATCH 2/4] befs: add check for ag_shift in superblock

From: Salah Triki
Date: Thu Aug 11 2016 - 10:59:16 EST


On Tue, Aug 09, 2016 at 11:01:24PM +0100, Luis de Bethencourt wrote:
> ag_shift and blocks_per_ag contain the same information in different ways,
> same as block_shift and block_size do. It is worth checking this two are
> consistent, but since blocks_per_ag isn't documented as mandatory to use
> some implementations of befs don't enforce this, so making it non-fatal if
> they don't match and just having it as a warning.
>
> Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
> ---
> fs/befs/super.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/fs/befs/super.c b/fs/befs/super.c
> index dc13df8..c36745d 100644
> --- a/fs/befs/super.c
> +++ b/fs/befs/super.c
> @@ -103,6 +103,13 @@ befs_check_sb(struct super_block *sb)
> return BEFS_ERR;
> }
>
> +
> + /* ag_shift also encodes the same information as blocks_per_ag in a
> + * different way, non-fatal consistency check
> + */
> + if ((1 << befs_sb->ag_shift) != befs_sb->blocks_per_ag)
> + befs_error(sb, "ag_shift disagrees with blocks_per_ag.");
> +
> if (befs_sb->log_start != befs_sb->log_end || befs_sb->flags == BEFS_DIRTY) {
> befs_error(sb, "Filesystem not clean! There are blocks in the "
> "journal. You must boot into BeOS and mount this volume "
> --
> 2.5.1
>

Signed-off-by: Salah Triki <salah.triki@xxxxxxxxx>

Thanx :)
Salah