Re: [patch] vmfixes-2.4.0-test9-B2

Stephen C. Tweedie
2000-09-24T21:43:03Z

Hi,

On Sun, Sep 24, 2000 at 11:12:39PM +0200, Ingo Molnar wrote:
>
> > ext2_new_block (or whatever that runs getblk with the superlock lock
> > acquired)->getblk->GFP->shrink_dcache_memory->prune_dcache->
> > prune_one_dentry->dput->dentry_iput->iput->inode->i_sb->s_op->
> > put_inode->ext2_discard_prealloc->ext2_free_blocks->lock_super->D
>
> nasty indeed, sigh. Shouldnt ext2_new_block drop the superblock lock in
> places where we might block?

That's only a valid fix if there are no other filesystems, and no
other places in ext2, where we can call GFP with locks which prevent a
put_inode from being incurred. And with the quota case to consider,
you have to avoid calling GFP with a lock against quota file writes
too (and since quota writes may GFP, this would deadlock if there was
any form of serialisation on the quota file). This feels like rather
a lot of new and interesting deadlocks to be introducing so late in
2.4. :-)

Cheers,
Stephen