Re: [PATCH] cowlinks v2

Andrew Morton
2004-03-20T19:28:32Z

Jörn Engel <joern@wohnheim.fh-wedel.de> wrote:
>
> > i_lock is an innermost lock. No locks should be taken inside i_lock.
> >
> > Here, not only is inode_lock being taken inside i_lock but ->dirty_inode
> > may be called as well, and dirty_inode() may not be called under any
> > spinlock.
>
> Is it enough to move the mark_inode_dirty outside of i_lock?

yup. Now you're using i_lock to protect i_flags (which seems reasonable)
you'll need to hnt down all the other i_flags users and make them use
i_lock too. Currently they appear to be using i_sem.