f2fs: call redirty_page_for_writepage
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Tue, 15 Apr 2014 07:04:15 +0000 (16:04 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Wed, 7 May 2014 01:21:54 +0000 (10:21 +0900)
This patch replace some general codes with redirty_page_for_writepage, which
can be enabled after consideration on additional procedure like counting dirty
pages appropriately.

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

index 890e23d208a8599ce65dee6e46914ae21d26f4d0..2902f7d50770b0a33ca70cc6bf2976f139974eb0 100644 (file)
@@ -174,10 +174,7 @@ no_write:
        return 0;
 
 redirty_out:
-       dec_page_count(sbi, F2FS_DIRTY_META);
-       wbc->pages_skipped++;
-       account_page_redirty(page);
-       set_page_dirty(page);
+       redirty_page_for_writepage(wbc, page);
        return AOP_WRITEPAGE_ACTIVATE;
 }
 
index 45abd60e2bff54323139b037ed1bccd1e534e96e..b5cd6d1c9320376560a1fc102d9936c811f600ac 100644 (file)
@@ -798,10 +798,8 @@ static int f2fs_write_data_page(struct page *page,
         * this page does not have to be written to disk.
         */
        offset = i_size & (PAGE_CACHE_SIZE - 1);
-       if ((page->index >= end_index + 1) || !offset) {
-               inode_dec_dirty_dents(inode);
+       if ((page->index >= end_index + 1) || !offset)
                goto out;
-       }
 
        zero_user_segment(page, offset, PAGE_CACHE_SIZE);
 write:
@@ -810,7 +808,6 @@ write:
 
        /* Dentry blocks are controlled by checkpoint */
        if (S_ISDIR(inode->i_mode)) {
-               inode_dec_dirty_dents(inode);
                err = do_write_data_page(page, &fio);
                goto done;
        }
@@ -832,15 +829,14 @@ done:
 
        clear_cold_data(page);
 out:
+       inode_dec_dirty_dents(inode);
        unlock_page(page);
        if (need_balance_fs)
                f2fs_balance_fs(sbi);
        return 0;
 
 redirty_out:
-       wbc->pages_skipped++;
-       account_page_redirty(page);
-       set_page_dirty(page);
+       redirty_page_for_writepage(wbc, page);
        return AOP_WRITEPAGE_ACTIVATE;
 }
 
index a161e955c4c808f01ba69b5c93eaf4943344b316..f760793c1a64d2deaad918c3b798e01d2a455360 100644 (file)
@@ -1227,10 +1227,7 @@ static int f2fs_write_node_page(struct page *page,
        return 0;
 
 redirty_out:
-       dec_page_count(sbi, F2FS_DIRTY_NODES);
-       wbc->pages_skipped++;
-       account_page_redirty(page);
-       set_page_dirty(page);
+       redirty_page_for_writepage(wbc, page);
        return AOP_WRITEPAGE_ACTIVATE;
 }