f2fs: clean up redundant function call
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Fri, 7 Feb 2014 01:00:06 +0000 (10:00 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Mon, 17 Feb 2014 05:58:53 +0000 (14:58 +0900)
This patch integrates inode_[inc|dec]_dirty_dents with inc_page_count to remove
redundant calls.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/checkpoint.c
fs/f2fs/data.c
fs/f2fs/dir.c
fs/f2fs/f2fs.h
fs/f2fs/gc.c

index 8f5dff1989a83c382627458a7cb65a825abab371..427dd55cfd5af5189d4100fc8ecafa97ef8700fa 100644 (file)
@@ -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);
index d175ae3b612a426662f9c10508944209867f699c..b401be71ecbd66a00bfb272086ef4322530cb7c5 100644 (file)
@@ -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);
-               }
+               inode_dec_dirty_dents(inode);
                goto out;
        }
 
@@ -815,7 +812,6 @@ write:
 
        /* 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);
 }
 
index 5bbf94c311805bdcd55d327680aea5ba98756fac..d5a2c9ed9aa73d5c118843c91891452e2519af2e 100644 (file)
@@ -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);
index aeff1327f9edfd3b190a18efcea23a22b32bbe8a..4841d1225ea05c667090f57e9831923b146a6117 100644 (file)
@@ -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);
 }
 
index b0f57628fe5564f09e0343067c5b0892bee205cc..b161db4a96a45f76d0af2edc60f588b2c7e72595 100644 (file)
@@ -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);
This page took 0.028606 seconds and 5 git commands to generate.