diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index 890e23d208a8599ce65dee6e46914ae21d26f4d0..2902f7d50770b0a33ca70cc6bf2976f139974eb0 100644 --- a/fs/f2fs/checkpoint.c +++ b/fs/f2fs/checkpoint.c @@ -174,10 +174,7 @@ static int f2fs_write_meta_page(struct page *page, 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; } diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 45abd60e2bff54323139b037ed1bccd1e534e96e..b5cd6d1c9320376560a1fc102d9936c811f600ac 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -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 @@ static int f2fs_write_data_page(struct page *page, /* 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 @@ static int f2fs_write_data_page(struct page *page, 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; } diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index a161e955c4c808f01ba69b5c93eaf4943344b316..f760793c1a64d2deaad918c3b798e01d2a455360 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -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; }