aboutsummaryrefslogtreecommitdiff
path: root/fs/ext4
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-06-29 13:23:08 +0400
committerMoyster <oysterized@gmail.com>2019-05-02 15:50:47 +0200
commit31ac5eeaf0a60910c149731deb4b568b384d7e63 (patch)
tree14503415e288aef146c133faee543815fe2ec3ab /fs/ext4
parentdbd2f75b2a4aa2cb9607d38c9e266d196e81cb99 (diff)
ext4: ->tmpfile() support
very similar to ext3 counterpart... Change-Id: Ibb9de458c172ad50c4c202b971cb7243c8e43c82 Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/namei.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index fc92c7274..945ca454e 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -2504,7 +2504,6 @@ retry:
return err;
}
-#if 0
static int ext4_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode)
{
handle_t *handle;
@@ -2525,11 +2524,11 @@ retry:
inode->i_op = &ext4_file_inode_operations;
inode->i_fop = &ext4_file_operations;
ext4_set_aops(inode);
- d_tmpfile(dentry, inode);
err = ext4_orphan_add(handle, inode);
if (err)
- goto err_unlock_inode;
+ goto err_drop_inode;
mark_inode_dirty(inode);
+ d_tmpfile(dentry, inode);
unlock_new_inode(inode);
}
if (handle)
@@ -2537,12 +2536,12 @@ retry:
if (err == -ENOSPC && ext4_should_retry_alloc(dir->i_sb, &retries))
goto retry;
return err;
-err_unlock_inode:
+err_drop_inode:
ext4_journal_stop(handle);
unlock_new_inode(inode);
+ iput(inode);
return err;
}
-#endif
struct ext4_dir_entry_2 *ext4_init_dot_dotdot(struct inode *inode,
struct ext4_dir_entry_2 *de,