diff options
author | Jan Kara <jack@suse.cz> | 2019-11-05 17:44:10 +0100 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2019-11-05 12:13:25 -0500 |
commit | a9e26328adfa82b1f3c941bc6e3daea47631abce (patch) | |
tree | 513d3ce18d0d70a055489a29dcd44bbc4dd01e16 /fs/ext4/namei.c | |
parent | b90bfdf581194a0fa5f6c26fef1e522f15f6212e (diff) | |
download | linux-a9e26328adfa82b1f3c941bc6e3daea47631abce.tar.gz linux-a9e26328adfa82b1f3c941bc6e3daea47631abce.tar.bz2 linux-a9e26328adfa82b1f3c941bc6e3daea47631abce.zip |
ext4: Move marking of handle as sync to ext4_add_nondir()
Every caller of ext4_add_nondir() marks handle as sync if directory has
DIRSYNC set. Move this marking to ext4_add_nondir() so reduce some
duplication.
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20191105164437.32602-4-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/namei.c')
-rw-r--r-- | fs/ext4/namei.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index a427d2031a8d..97cf1c8b56b2 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -2550,9 +2550,12 @@ static void ext4_dec_count(handle_t *handle, struct inode *inode) static int ext4_add_nondir(handle_t *handle, struct dentry *dentry, struct inode *inode) { + struct inode *dir = d_inode(dentry->d_parent); int err = ext4_add_entry(handle, dentry, inode); if (!err) { ext4_mark_inode_dirty(handle, inode); + if (IS_DIRSYNC(dir)) + ext4_handle_sync(handle); d_instantiate_new(dentry, inode); return 0; } @@ -2593,8 +2596,6 @@ retry: inode->i_fop = &ext4_file_operations; ext4_set_aops(inode); err = ext4_add_nondir(handle, dentry, inode); - if (!err && IS_DIRSYNC(dir)) - ext4_handle_sync(handle); } if (handle) ext4_journal_stop(handle); @@ -2625,8 +2626,6 @@ retry: init_special_inode(inode, inode->i_mode, rdev); inode->i_op = &ext4_special_inode_operations; err = ext4_add_nondir(handle, dentry, inode); - if (!err && IS_DIRSYNC(dir)) - ext4_handle_sync(handle); } if (handle) ext4_journal_stop(handle); @@ -3329,9 +3328,6 @@ static int ext4_symlink(struct inode *dir, } EXT4_I(inode)->i_disksize = inode->i_size; err = ext4_add_nondir(handle, dentry, inode); - if (!err && IS_DIRSYNC(dir)) - ext4_handle_sync(handle); - if (handle) ext4_journal_stop(handle); goto out_free_encrypted_link; |