Re: [PATCH 2/2] Fix possible leakage of blocks in UDF

From: Jan Kara
Date: Fri Jun 01 2007 - 16:58:47 EST


On Wed 30-05-07 16:46:28, Eric Sandeen wrote:
> Jan Kara wrote:
> > Hello,
> >
> > On Thu 24-05-07 19:05:54, Jan Kara wrote:
> >> Hello,
> >>
> >> attached is a patch that fixes possible leakage of free blocks / use of
> >> free blocks in UDF (which spilled nice assertion failures I've added in my
> >> first round of patches). More details in the changelog. Andrew, please apply.
> >> Both changes have survived some time of fsx and fsstress testing so they
> >> should be reasonably safe.
> > Sorry for replying to myself but this patch had a minor problem of
> > printing some bogus warnings when directories were deleted (I wonder why
> > fsstress didn't find it). Attached is a new version of the patch without
> > this problem.
>
> Jan, something seems busted here. I'm getting lockups when testing udf
> on a single cpu with this last patch in place...
Hmm, strange, I was also testing on UP and without problems. And I didn't
change any locking...

> I think it's the BKL stumbling on itself.
>
> for example...
>
> static int udf_symlink(struct inode * dir, struct dentry * dentry, const
> char * symname)
> {
> ...
> lock_kernel();
> ...
> out:
> unlock_kernel();
> return err;
>
> out_no_entry:
> inode_dec_link_count(inode);
> iput(inode);
> goto out;
> }
>
> but iput goes
> iput->iput_final->drop_inode->udf_drop_inode->lock_kernel() again
As Andrew already wrote, BKL is free to recurse...

> looking for the right way around it but figured I'd ping you early :)
Thanks for info - I'm now mostly out of email for a few days but I'll
have a look at it as soon as I return.

Honza
--
Jan Kara <jack@xxxxxxx>
SuSE CR Labs
-
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/