Merge tag 'tags/mvebu_fixes_for_v3.8-rc6' into mvebu/boards
[firefly-linux-kernel-4.4.55.git] / fs / btrfs / inode.c
index ca7ace7b7b520899a73c2266b508e4a07a32e9a7..cc93b23ca3520c9ad7bf2919e77f61cf400c2e4c 100644 (file)
@@ -4311,16 +4311,7 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry)
        if (dentry->d_name.len > BTRFS_NAME_LEN)
                return ERR_PTR(-ENAMETOOLONG);
 
-       if (unlikely(d_need_lookup(dentry))) {
-               memcpy(&location, dentry->d_fsdata, sizeof(struct btrfs_key));
-               kfree(dentry->d_fsdata);
-               dentry->d_fsdata = NULL;
-               /* This thing is hashed, drop it for now */
-               d_drop(dentry);
-       } else {
-               ret = btrfs_inode_by_name(dir, dentry, &location);
-       }
-
+       ret = btrfs_inode_by_name(dir, dentry, &location);
        if (ret < 0)
                return ERR_PTR(ret);
 
@@ -4390,11 +4381,6 @@ static struct dentry *btrfs_lookup(struct inode *dir, struct dentry *dentry,
        struct dentry *ret;
 
        ret = d_splice_alias(btrfs_lookup_dentry(dir, dentry), dentry);
-       if (unlikely(d_need_lookup(dentry))) {
-               spin_lock(&dentry->d_lock);
-               dentry->d_flags &= ~DCACHE_NEED_LOOKUP;
-               spin_unlock(&dentry->d_lock);
-       }
        return ret;
 }