From 508da178f827bdeec63bfc0326928cc8a0be0ec9 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Sun, 30 Oct 2005 15:02:25 -0800 Subject: [PATCH] --- yaml --- r: 11835 b: refs/heads/master c: f12ec44070f6b4d1a3911fcf9917cf8f872a4daf h: refs/heads/master i: 11833: 13a0ca47421afa3f597db37e83737e600896f734 11831: 3b2f0f5d6585ae80f4bf3910098ab7386d279ad0 v: v3 --- [refs] | 2 +- trunk/fs/fuse/dir.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) 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,