@@ -1957,9 +1963,11 @@ static struct dentry
*__d_instantiate_anon(struct dentry *dentry,
spin_lock(&dentry->d_lock);
__d_set_inode_and_type(dentry, inode, add_flags);
hlist_add_head(&dentry->d_u.d_alias, &inode->i_dentry);
- hlist_bl_lock(&dentry->d_sb->s_anon);
- hlist_bl_add_head(&dentry->d_hash, &dentry->d_sb->s_anon);
- hlist_bl_unlock(&dentry->d_sb->s_anon);
+ if (!disconnected) {
+ hlist_bl_lock(&dentry->d_sb->s_roots);
+ hlist_bl_add_head(&dentry->d_hash, &dentry->d_sb->s_roots);
+ hlist_bl_unlock(&dentry->d_sb->s_roots);
+ }
spin_unlock(&dentry->d_lock);
spin_unlock(&inode->i_lock);