lkml.org 
[lkml]   [2012]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] UDF: During mount free lvid_bh before rescanning with different blocksize
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@gmail.com>
> Signed-off-by: Namjae Jeon <linkinjeon@gmail.com>
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@suse.cz>
SUSE Labs, CR


\
 
 \ /
  Last update: 2012-08-14 16:22    [W:0.066 / U:0.380 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site