[PATCH] fuse: clean up dead code related to nfs exporting
Miklos Szeredi [Sun, 30 Oct 2005 23:02:25 +0000 (15:02 -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 29f1e9f..70dba72 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,