diff --git a/fs/namei.c b/fs/namei.c
index 5f4e5a56f1e960d551a07f1f9c7117945223aaea..93ac080e69ddcd86a54168067363898368ea86c3 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -847,6 +847,7 @@ int path_lookup(const char *name, unsigned int flags, struct nameidata *nd)
 			read_unlock(&current->fs->lock);
 			if (__emul_lookup_dentry(name,nd))
 				return 0;
+			read_lock(&current->fs->lock);
 		}
 		nd->mnt = mntget(current->fs->rootmnt);
 		nd->dentry = dget(current->fs->root);