Keeping i_mutes over do_revalidate seem fine from a first glance, but can you please do it without rearranging the whole code? Something like the tiny untested patch below should archive the same thing: Index: linux-2.6/fs/namei.c =================================================================== --- linux-2.6.orig/fs/namei.c 2009-03-17 09:15:53.430978739 +0100 +++ linux-2.6/fs/namei.c 2009-03-17 09:16:19.553981306 +0100 @@ -512,12 +512,12 @@ out_unlock: * Uhhuh! Nasty case: the cache was re-populated while * we waited on the semaphore. Need to revalidate. */ - mutex_unlock(&dir->i_mutex); if (result->d_op && result->d_op->d_revalidate) { result = do_revalidate(result, nd); if (!result) result = ERR_PTR(-ENOENT); } + mutex_unlock(&dir->i_mutex); return result; } -- 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