Re: [PATCH] UDF: During mount free lvid_bh before rescanning withdifferent blocksize

From: Jan Kara
Date: Tue Aug 14 2012 - 09:25:04 EST


On Sat 21-07-12 16:35:17, Ashish Sangwan wrote:
> If s_lvid_bh is not freed and set to NULL before re-scanning partition
> with default block size, we might end up using wrong lvid in case
> s_lvid_bh is not updated in udf_load_logicalvolint during rescan.
>
> Signed-off-by: Ashish Sangwan <ashish.sangwan2@xxxxxxxxx>
> Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxx>
Yeah, I don't think this happens in practice but in theory it could. BTW,
did you check whether we don't need to free other information (like VAT
inode etc.) when rescanning the filesystem? I think we do but currently I'm
catching up after a long vacation and this doesn't have high priority.

Anyway, I've added your patch to my tree. Thanks.

Honza
>
> ---
> fs/udf/super.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/fs/udf/super.c b/fs/udf/super.c
> index ac8a348..4a95c56 100644
> --- a/fs/udf/super.c
> +++ b/fs/udf/super.c
> @@ -1961,6 +1961,8 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
> if (!silent)
> pr_notice("Rescanning with blocksize %d\n",
> UDF_DEFAULT_BLOCKSIZE);
> + brelse(sbi->s_lvid_bh);
> + sbi->s_lvid_bh = NULL;
> uopt.blocksize = UDF_DEFAULT_BLOCKSIZE;
> ret = udf_load_vrs(sb, &uopt, silent, &fileset);
> }
> --
> 1.7.2.3
>
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/