On Tue, Jan 11, 2011 at 8:34 AM, Alex Elder <aelder@xxxxxxx> wrote: > > FYI, when using this code, as merged by Linus, I hit the > BUG_ON() at the beginning of d_set_d_op() when it's called > by autofs4_dir_mkdir(). I managed to work around it by > just commenting out those BUG_ON() calls but it's something > that ought to get addressed properly. Yeah, removing the BUG_ON() isn't the right thing to do - it means that autofs4 is obviously setting the dentry ops twice for the same dentry. Possibly the thing could be relaxed to allow setting the _same_ d_op pointer, ie do something like if (dentry->d_op == op) return; at the top of that function. But looking at it, I don't think that fixes the autofs4 issue. The fact that autofs4 does "d_add()" before it sets the d_ops (or other dentry state, for that matter) looks a bit scary. To me that smells like it might get a dentry lookup hit before it's actually fully done. Does it make any difference if you move the various d_add() calls down to the end of the functions to when the "dentry" has really been instantiated? 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