aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page-writeback.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r--mm/page-writeback.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 5c1a3279e63f..337c6afb3345 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -2502,13 +2502,13 @@ void account_page_redirty(struct page *page)
2502 if (mapping && mapping_cap_account_dirty(mapping)) { 2502 if (mapping && mapping_cap_account_dirty(mapping)) {
2503 struct inode *inode = mapping->host; 2503 struct inode *inode = mapping->host;
2504 struct bdi_writeback *wb; 2504 struct bdi_writeback *wb;
2505 bool locked; 2505 struct wb_lock_cookie cookie = {};
2506 2506
2507 wb = unlocked_inode_to_wb_begin(inode, &locked); 2507 wb = unlocked_inode_to_wb_begin(inode, &cookie);
2508 current->nr_dirtied--; 2508 current->nr_dirtied--;
2509 dec_node_page_state(page, NR_DIRTIED); 2509 dec_node_page_state(page, NR_DIRTIED);
2510 dec_wb_stat(wb, WB_DIRTIED); 2510 dec_wb_stat(wb, WB_DIRTIED);
2511 unlocked_inode_to_wb_end(inode, locked); 2511 unlocked_inode_to_wb_end(inode, &cookie);
2512 } 2512 }
2513} 2513}
2514EXPORT_SYMBOL(account_page_redirty); 2514EXPORT_SYMBOL(account_page_redirty);
@@ -2614,15 +2614,15 @@ void __cancel_dirty_page(struct page *page)
2614 if (mapping_cap_account_dirty(mapping)) { 2614 if (mapping_cap_account_dirty(mapping)) {
2615 struct inode *inode = mapping->host; 2615 struct inode *inode = mapping->host;
2616 struct bdi_writeback *wb; 2616 struct bdi_writeback *wb;
2617 bool locked; 2617 struct wb_lock_cookie cookie = {};
2618 2618
2619 lock_page_memcg(page); 2619 lock_page_memcg(page);
2620 wb = unlocked_inode_to_wb_begin(inode, &locked); 2620 wb = unlocked_inode_to_wb_begin(inode, &cookie);
2621 2621
2622 if (TestClearPageDirty(page)) 2622 if (TestClearPageDirty(page))
2623 account_page_cleaned(page, mapping, wb); 2623 account_page_cleaned(page, mapping, wb);
2624 2624
2625 unlocked_inode_to_wb_end(inode, locked); 2625 unlocked_inode_to_wb_end(inode, &cookie);
2626 unlock_page_memcg(page); 2626 unlock_page_memcg(page);
2627 } else { 2627 } else {
2628 ClearPageDirty(page); 2628 ClearPageDirty(page);
@@ -2654,7 +2654,7 @@ int clear_page_dirty_for_io(struct page *page)
2654 if (mapping && mapping_cap_account_dirty(mapping)) { 2654 if (mapping && mapping_cap_account_dirty(mapping)) {
2655 struct inode *inode = mapping->host; 2655 struct inode *inode = mapping->host;
2656 struct bdi_writeback *wb; 2656 struct bdi_writeback *wb;
2657 bool locked; 2657 struct wb_lock_cookie cookie = {};
2658 2658
2659 /* 2659 /*
2660 * Yes, Virginia, this is indeed insane. 2660 * Yes, Virginia, this is indeed insane.
@@ -2691,14 +2691,14 @@ int clear_page_dirty_for_io(struct page *page)
2691 * always locked coming in here, so we get the desired 2691 * always locked coming in here, so we get the desired
2692 * exclusion. 2692 * exclusion.
2693 */ 2693 */
2694 wb = unlocked_inode_to_wb_begin(inode, &locked); 2694 wb = unlocked_inode_to_wb_begin(inode, &cookie);
2695 if (TestClearPageDirty(page)) { 2695 if (TestClearPageDirty(page)) {
2696 dec_lruvec_page_state(page, NR_FILE_DIRTY); 2696 dec_lruvec_page_state(page, NR_FILE_DIRTY);
2697 dec_zone_page_state(page, NR_ZONE_WRITE_PENDING); 2697 dec_zone_page_state(page, NR_ZONE_WRITE_PENDING);
2698 dec_wb_stat(wb, WB_RECLAIMABLE); 2698 dec_wb_stat(wb, WB_RECLAIMABLE);
2699 ret = 1; 2699 ret = 1;
2700 } 2700 }
2701 unlocked_inode_to_wb_end(inode, locked); 2701 unlocked_inode_to_wb_end(inode, &cookie);
2702 return ret; 2702 return ret;
2703 } 2703 }
2704 return TestClearPageDirty(page); 2704 return TestClearPageDirty(page);