Re: [PATCH] vfs: make real_lookup do dentry revalidation withi_mutex held

From: Christoph Hellwig
Date: Tue Mar 17 2009 - 04:17:50 EST


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