Messages in this thread | | | Date | Thu, 20 Aug 2009 16:32:09 +0200 | From | Frederic Weisbecker <> | Subject | Re: linux-next: reiserfs lockout with xattr ? |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |