Merge tag 'for-6.1-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
[sfrench/cifs-2.6.git] / fs / btrfs / inode.c
index d70f85b73169bff9ef9c0b5b3fa84288d74c248f..0e516aefbf51b8c31ed7e3fa6c56a8ac179c41eb 100644 (file)
@@ -10026,7 +10026,7 @@ static int btrfs_permission(struct user_namespace *mnt_userns,
 }
 
 static int btrfs_tmpfile(struct user_namespace *mnt_userns, struct inode *dir,
-                        struct dentry *dentry, umode_t mode)
+                        struct file *file, umode_t mode)
 {
        struct btrfs_fs_info *fs_info = btrfs_sb(dir->i_sb);
        struct btrfs_trans_handle *trans;
@@ -10034,7 +10034,7 @@ static int btrfs_tmpfile(struct user_namespace *mnt_userns, struct inode *dir,
        struct inode *inode;
        struct btrfs_new_inode_args new_inode_args = {
                .dir = dir,
-               .dentry = dentry,
+               .dentry = file->f_path.dentry,
                .orphan = true,
        };
        unsigned int trans_num_items;
@@ -10071,7 +10071,7 @@ static int btrfs_tmpfile(struct user_namespace *mnt_userns, struct inode *dir,
        set_nlink(inode, 1);
 
        if (!ret) {
-               d_tmpfile(dentry, inode);
+               d_tmpfile(file, inode);
                unlock_new_inode(inode);
                mark_inode_dirty(inode);
        }
@@ -10083,7 +10083,7 @@ out_new_inode_args:
 out_inode:
        if (ret)
                iput(inode);
-       return ret;
+       return finish_open_simple(file, ret);
 }
 
 void btrfs_set_range_writeback(struct btrfs_inode *inode, u64 start, u64 end)