Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b56ab837 authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs: avoid mark_inode_dirty



Let's check inode's dirtiness before calling mark_inode_dirty.

Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent a2ee0a30
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -384,7 +384,7 @@ int f2fs_init_acl(struct inode *inode, struct inode *dir, struct page *ipage,
	if (error)
		return error;

	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);

	if (default_acl) {
		error = __f2fs_set_acl(inode, ACL_TYPE_DEFAULT, default_acl,
+3 −3
Original line number Diff line number Diff line
@@ -300,7 +300,7 @@ void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de,
	set_page_dirty(page);

	dir->i_mtime = dir->i_ctime = CURRENT_TIME;
	mark_inode_dirty_sync(dir);
	f2fs_mark_inode_dirty_sync(dir);
	f2fs_put_page(page, 1);
}

@@ -452,7 +452,7 @@ void update_parent_metadata(struct inode *dir, struct inode *inode,
		clear_inode_flag(inode, FI_NEW_INODE);
	}
	dir->i_mtime = dir->i_ctime = CURRENT_TIME;
	mark_inode_dirty_sync(dir);
	f2fs_mark_inode_dirty_sync(dir);

	if (F2FS_I(dir)->i_current_depth != current_depth)
		f2fs_i_depth_write(dir, current_depth);
@@ -704,7 +704,7 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
	set_page_dirty(page);

	dir->i_ctime = dir->i_mtime = CURRENT_TIME;
	mark_inode_dirty_sync(dir);
	f2fs_mark_inode_dirty_sync(dir);

	if (inode)
		f2fs_drop_nlink(dir, inode);
+1 −1
Original line number Diff line number Diff line
@@ -172,7 +172,7 @@ static void __drop_largest_extent(struct inode *inode,

	if (fofs < largest->fofs + largest->len && fofs + len > largest->fofs) {
		largest->len = 0;
		mark_inode_dirty_sync(inode);
		f2fs_mark_inode_dirty_sync(inode);
	}
}

+13 −11
Original line number Diff line number Diff line
@@ -506,12 +506,13 @@ static inline bool __is_front_mergeable(struct extent_info *cur,
	return __is_extent_mergeable(cur, front);
}

extern void f2fs_mark_inode_dirty_sync(struct inode *);
static inline void __try_update_largest_extent(struct inode *inode,
			struct extent_tree *et, struct extent_node *en)
{
	if (en->ei.len > et->largest.len) {
		et->largest = en->ei;
		mark_inode_dirty_sync(inode);
		f2fs_mark_inode_dirty_sync(inode);
	}
}

@@ -1551,7 +1552,7 @@ static inline void __mark_inode_dirty_flag(struct inode *inode,
			return;
	case FI_DATA_EXIST:
	case FI_INLINE_DOTS:
		mark_inode_dirty_sync(inode);
		f2fs_mark_inode_dirty_sync(inode);
	}
}

@@ -1578,7 +1579,7 @@ static inline void set_acl_inode(struct inode *inode, umode_t mode)
{
	F2FS_I(inode)->i_acl_mode = mode;
	set_inode_flag(inode, FI_ACL_MODE);
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
}

static inline void f2fs_i_links_write(struct inode *inode, bool inc)
@@ -1587,7 +1588,7 @@ static inline void f2fs_i_links_write(struct inode *inode, bool inc)
		inc_nlink(inode);
	else
		drop_nlink(inode);
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
}

static inline void f2fs_i_blocks_write(struct inode *inode,
@@ -1598,7 +1599,7 @@ static inline void f2fs_i_blocks_write(struct inode *inode,

	inode->i_blocks = add ? inode->i_blocks + diff :
				inode->i_blocks - diff;
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
	if (clean || recover)
		set_inode_flag(inode, FI_AUTO_RECOVER);
}
@@ -1612,7 +1613,7 @@ static inline void f2fs_i_size_write(struct inode *inode, loff_t i_size)
		return;

	i_size_write(inode, i_size);
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
	if (clean || recover)
		set_inode_flag(inode, FI_AUTO_RECOVER);
}
@@ -1627,19 +1628,19 @@ static inline bool f2fs_skip_inode_update(struct inode *inode)
static inline void f2fs_i_depth_write(struct inode *inode, unsigned int depth)
{
	F2FS_I(inode)->i_current_depth = depth;
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
}

static inline void f2fs_i_xnid_write(struct inode *inode, nid_t xnid)
{
	F2FS_I(inode)->i_xattr_nid = xnid;
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
}

static inline void f2fs_i_pino_write(struct inode *inode, nid_t pino)
{
	F2FS_I(inode)->i_pino = pino;
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
}

static inline void get_inline_info(struct inode *inode, struct f2fs_inode *ri)
@@ -1767,13 +1768,13 @@ static inline int is_file(struct inode *inode, int type)
static inline void set_file(struct inode *inode, int type)
{
	F2FS_I(inode)->i_advise |= type;
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
}

static inline void clear_file(struct inode *inode, int type)
{
	F2FS_I(inode)->i_advise &= ~type;
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
}

static inline int f2fs_readonly(struct super_block *sb)
@@ -1920,6 +1921,7 @@ static inline int f2fs_add_link(struct dentry *dentry, struct inode *inode)
/*
 * super.c
 */
int f2fs_inode_dirtied(struct inode *);
void f2fs_inode_synced(struct inode *);
int f2fs_commit_super(struct f2fs_sb_info *, bool);
int f2fs_sync_fs(struct super_block *, int);
+4 −4
Original line number Diff line number Diff line
@@ -263,7 +263,7 @@ static int f2fs_do_sync_file(struct file *file, loff_t start, loff_t end,
	}

	if (need_inode_block_update(sbi, ino)) {
		mark_inode_dirty_sync(inode);
		f2fs_mark_inode_dirty_sync(inode);
		f2fs_write_inode(inode, NULL);
		goto sync_nodes;
	}
@@ -631,7 +631,7 @@ int f2fs_truncate(struct inode *inode)
		return err;

	inode->i_mtime = inode->i_ctime = CURRENT_TIME;
	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
	return 0;
}

@@ -721,7 +721,7 @@ int f2fs_setattr(struct dentry *dentry, struct iattr *attr)
		}
	}

	mark_inode_dirty_sync(inode);
	f2fs_mark_inode_dirty_sync(inode);
	return err;
}

@@ -1276,7 +1276,7 @@ static long f2fs_fallocate(struct file *file, int mode,

	if (!ret) {
		inode->i_mtime = inode->i_ctime = CURRENT_TIME;
		mark_inode_dirty_sync(inode);
		f2fs_mark_inode_dirty_sync(inode);
		f2fs_update_time(F2FS_I_SB(inode), REQ_TIME);
	}

Loading