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

Commit 1fe54f9d authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs: clean up redundant function call



This patch integrates inode_[inc|dec]_dirty_dents with inc_page_count to remove
redundant calls.

Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
parent 203681f6
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -508,7 +508,6 @@ void set_dirty_dir_page(struct inode *inode, struct page *page)
	if (__add_dirty_inode(inode, new))
		kmem_cache_free(inode_entry_slab, new);

	inc_page_count(sbi, F2FS_DIRTY_DENTS);
	inode_inc_dirty_dents(inode);
	SetPagePrivate(page);
	spin_unlock(&sbi->dir_inode_lock);
+2 −9
Original line number Diff line number Diff line
@@ -799,10 +799,7 @@ static int f2fs_write_data_page(struct page *page,
	 */
	offset = i_size & (PAGE_CACHE_SIZE - 1);
	if ((page->index >= end_index + 1) || !offset) {
		if (S_ISDIR(inode->i_mode)) {
			dec_page_count(sbi, F2FS_DIRTY_DENTS);
		inode_dec_dirty_dents(inode);
		}
		goto out;
	}

@@ -815,7 +812,6 @@ static int f2fs_write_data_page(struct page *page,

	/* Dentry blocks are controlled by checkpoint */
	if (S_ISDIR(inode->i_mode)) {
		dec_page_count(sbi, F2FS_DIRTY_DENTS);
		inode_dec_dirty_dents(inode);
		err = do_write_data_page(page, &fio);
	} else {
@@ -1033,11 +1029,8 @@ static void f2fs_invalidate_data_page(struct page *page, unsigned int offset,
				      unsigned int length)
{
	struct inode *inode = page->mapping->host;
	struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
	if (S_ISDIR(inode->i_mode) && PageDirty(page)) {
		dec_page_count(sbi, F2FS_DIRTY_DENTS);
	if (PageDirty(page))
		inode_dec_dirty_dents(inode);
	}
	ClearPagePrivate(page);
}

+2 −2
Original line number Diff line number Diff line
@@ -532,7 +532,6 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
	unsigned int bit_pos;
	struct address_space *mapping = page->mapping;
	struct inode *dir = mapping->host;
	struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb);
	int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len));
	void *kaddr = page_address(page);
	int i;
@@ -555,6 +554,8 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
	dir->i_ctime = dir->i_mtime = CURRENT_TIME;

	if (inode) {
		struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb);

		if (S_ISDIR(inode->i_mode)) {
			drop_nlink(dir);
			update_inode_page(dir);
@@ -577,7 +578,6 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
		truncate_hole(dir, page->index, page->index + 1);
		clear_page_dirty_for_io(page);
		ClearPageUptodate(page);
		dec_page_count(sbi, F2FS_DIRTY_DENTS);
		inode_dec_dirty_dents(dir);
	}
	f2fs_put_page(page, 1);
+5 −0
Original line number Diff line number Diff line
@@ -662,6 +662,7 @@ static inline void inc_page_count(struct f2fs_sb_info *sbi, int count_type)

static inline void inode_inc_dirty_dents(struct inode *inode)
{
	inc_page_count(F2FS_SB(inode->i_sb), F2FS_DIRTY_DENTS);
	atomic_inc(&F2FS_I(inode)->dirty_dents);
}

@@ -672,6 +673,10 @@ static inline void dec_page_count(struct f2fs_sb_info *sbi, int count_type)

static inline void inode_dec_dirty_dents(struct inode *inode)
{
	if (!S_ISDIR(inode->i_mode))
		return;

	dec_page_count(F2FS_SB(inode->i_sb), F2FS_DIRTY_DENTS);
	atomic_dec(&F2FS_I(inode)->dirty_dents);
}

+1 −6
Original line number Diff line number Diff line
@@ -531,15 +531,10 @@ static void move_data_page(struct inode *inode, struct page *page, int gc_type)
		set_page_dirty(page);
		set_cold_data(page);
	} else {
		struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);

		f2fs_wait_on_page_writeback(page, DATA);

		if (clear_page_dirty_for_io(page) &&
			S_ISDIR(inode->i_mode)) {
			dec_page_count(sbi, F2FS_DIRTY_DENTS);
		if (clear_page_dirty_for_io(page))
			inode_dec_dirty_dents(inode);
		}
		set_cold_data(page);
		do_write_data_page(page, &fio);
		clear_cold_data(page);