On Tue, Jul 12, 2011 at 5:56 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > Alas, no. d_materialize_unique() aside (we have a couple of bugs in > there), ->d_lock handling is fscked up. Ok, I misread your previous email, and read it as if the problem you were discussing was __d_unalias(), and then mis-read the newer email as a result. I now see what you're saying. Without having thought very deeply about this, I would suggest that we aim for entirely getting rid of anything that holds two d_lock's at the same time. There may be cases where we do end up having both "dentry" and the immediate parent, and in that case maybe we can have that direct relationship act as a ordering requirement, but yes, we should definitely aim to get rid of the whole "if ancestor do one ordering, otherwise base it on pointer ordering". Some of the things that take both locks make me go "do we really need to hold those locks at the same time?" IOW, maybe the locking could be simply sequential. Some of that pain may be simply unnecessary. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html