diff --git a/[refs] b/[refs] index b3965a99c46d..a7883bdb1092 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 15d2bace5ec907530a3d0e0cf4bb1bd29f3ad7b7 +refs/heads/master: f12ec44070f6b4d1a3911fcf9917cf8f872a4daf diff --git a/trunk/fs/fuse/dir.c b/trunk/fs/fuse/dir.c index 29f1e9f6e85c..70dba721acab 100644 --- a/trunk/fs/fuse/dir.c +++ b/trunk/fs/fuse/dir.c @@ -741,13 +741,14 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry, if (inode && S_ISDIR(inode->i_mode)) { /* Don't allow creating an alias to a directory */ struct dentry *alias = d_find_alias(inode); - if (alias && !(alias->d_flags & DCACHE_DISCONNECTED)) { + if (alias) { dput(alias); iput(inode); return ERR_PTR(-EIO); } } - return d_splice_alias(inode, entry); + d_add(entry, inode); + return NULL; } static int fuse_setxattr(struct dentry *entry, const char *name,