diff --git a/fs/dcache.c b/fs/dcache.c
index 36d84ec31d8a0a749cbdde6f628260f1f851427a..22107630fc031be1438f3039c3f81e1986fbcd1d 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -2804,12 +2804,8 @@ struct dentry *d_materialise_unique(struct dentry *dentry, struct inode *inode)
 	actual = __d_instantiate_unique(dentry, inode);
 	if (!actual)
 		actual = dentry;
-	else
-		BUG_ON(!d_unhashed(actual));
 
-	spin_lock(&actual->d_lock);
-	_d_rehash(actual);
-	spin_unlock(&actual->d_lock);
+	d_rehash(actual);
 found:
 	spin_unlock(&inode->i_lock);
 out_nolock: