untangling do_lookup() - merge d_alloc_and_lookup() callers

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/fs/namei.c b/fs/namei.c
index a0f9a02..1d60fdf 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1188,12 +1188,12 @@
 				}
 				if (!d_invalidate(dentry)) {
 					dput(dentry);
-					dentry = d_alloc_and_lookup(parent, name, nd);
+					dentry = NULL;
 				}
 			}
-		} else if (!dentry) {
-			dentry = d_alloc_and_lookup(parent, name, nd);
 		}
+		if (!dentry)
+			dentry = d_alloc_and_lookup(parent, name, nd);
 	l:
 		mutex_unlock(&dir->i_mutex);
 		if (IS_ERR(dentry))