[PATCH] fuse: clean up dead code related to nfs exporting
authorMiklos Szeredi <miklos@szeredi.hu>
Sun, 30 Oct 2005 23:02:25 +0000 (15:02 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 31 Oct 2005 01:37:21 +0000 (17:37 -0800)
Remove last remains of NFS exportability support.

The code is actually buggy (as reported by Akshat Aranya), since 'alias'
will be leaked if it's non-null and alias->d_flags has DCACHE_DISCONNECTED.

This is not an active bug, since there will never be any disconnected
dentries.  But it's better to get rid of the unnecessary complexity anyway.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/fuse/dir.c

index 29f1e9f6e85c3648c8a3deeb7847d078625e9844..70dba721acabe9992416d66bca1d0becd1411f2f 100644 (file)
@@ -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,