Commit a9e26328 authored by Jan Kara's avatar Jan Kara Committed by Theodore Ts'o
Browse files

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: default avatarJan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20191105164437.32602-4-jack@suse.cz


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent b90bfdf5
Loading
Loading
Loading
Loading
+3 −7
Original line number Original line Diff line number Diff line
@@ -2550,9 +2550,12 @@ static void ext4_dec_count(handle_t *handle, struct inode *inode)
static int ext4_add_nondir(handle_t *handle,
static int ext4_add_nondir(handle_t *handle,
		struct dentry *dentry, struct inode *inode)
		struct dentry *dentry, struct inode *inode)
{
{
	struct inode *dir = d_inode(dentry->d_parent);
	int err = ext4_add_entry(handle, dentry, inode);
	int err = ext4_add_entry(handle, dentry, inode);
	if (!err) {
	if (!err) {
		ext4_mark_inode_dirty(handle, inode);
		ext4_mark_inode_dirty(handle, inode);
		if (IS_DIRSYNC(dir))
			ext4_handle_sync(handle);
		d_instantiate_new(dentry, inode);
		d_instantiate_new(dentry, inode);
		return 0;
		return 0;
	}
	}
@@ -2593,8 +2596,6 @@ retry:
		inode->i_fop = &ext4_file_operations;
		inode->i_fop = &ext4_file_operations;
		ext4_set_aops(inode);
		ext4_set_aops(inode);
		err = ext4_add_nondir(handle, dentry, inode);
		err = ext4_add_nondir(handle, dentry, inode);
		if (!err && IS_DIRSYNC(dir))
			ext4_handle_sync(handle);
	}
	}
	if (handle)
	if (handle)
		ext4_journal_stop(handle);
		ext4_journal_stop(handle);
@@ -2625,8 +2626,6 @@ retry:
		init_special_inode(inode, inode->i_mode, rdev);
		init_special_inode(inode, inode->i_mode, rdev);
		inode->i_op = &ext4_special_inode_operations;
		inode->i_op = &ext4_special_inode_operations;
		err = ext4_add_nondir(handle, dentry, inode);
		err = ext4_add_nondir(handle, dentry, inode);
		if (!err && IS_DIRSYNC(dir))
			ext4_handle_sync(handle);
	}
	}
	if (handle)
	if (handle)
		ext4_journal_stop(handle);
		ext4_journal_stop(handle);
@@ -3329,9 +3328,6 @@ static int ext4_symlink(struct inode *dir,
	}
	}
	EXT4_I(inode)->i_disksize = inode->i_size;
	EXT4_I(inode)->i_disksize = inode->i_size;
	err = ext4_add_nondir(handle, dentry, inode);
	err = ext4_add_nondir(handle, dentry, inode);
	if (!err && IS_DIRSYNC(dir))
		ext4_handle_sync(handle);

	if (handle)
	if (handle)
		ext4_journal_stop(handle);
		ext4_journal_stop(handle);
	goto out_free_encrypted_link;
	goto out_free_encrypted_link;