Re: linux-next: reiserfs lockout with xattr ?

From: Frederic Weisbecker
Date: Thu Aug 20 2009 - 10:32:21 EST


On Mon, Aug 10, 2009 at 10:08:26PM +0200, Laurent Riffard wrote:
> Le 10/08/2009 01:33, Frederic Weisbecker a écrit :
> >
> > Thanks a lot for this report. Reiserfs xattrs are definetly paths I
> > haven't tested deeply.
> >
> > I'm trying to reproduce these issues and will let you know once I get
> > a fix.
> >
> > (Btw, if you're still running this tree, you should update with the
> > latest patch I just pushed, it's a very important fix).
> >
> > Thanks,
> >
> > Frederic.
>
> I tried with your lastest patch (git head is at "kill-the-bkl/reiserfs:
> fix early readdir offset increment"), and the lockout still happens.
>
> ~~
> laurent


Ok, it looks like the last two patches in my tree have introduced a locking
inversion dependency between the reiserfs write lock and mm->mmap_sem.

In filldir, we take the reiserfs lock and we might take mm->mmap_sem if
we fault while copying the dir entry to the user.

In mmap, the mm->mmap_sem is taken before the call to the fs mmap callback
and there we take the reiserfs lock.

Locking inversion: AB - BA

What is really sad here is that I have no choice: I can't take the reiserfs lock
while filling a dir entry to the user.
This part, introduced in the last two patches of the tree optimized a lot
the throughput, and now I have to revert them :-(

--
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/