io_uring: don't reuse linked_timeout
[linux-2.6-microblaze.git] / mm / page-writeback.c
index 4e4ddd6..7709f0e 100644 (file)
@@ -1882,7 +1882,7 @@ void balance_dirty_pages_ratelimited(struct address_space *mapping)
        int ratelimit;
        int *p;
 
-       if (!bdi_cap_account_dirty(bdi))
+       if (!(bdi->capabilities & BDI_CAP_WRITEBACK))
                return;
 
        if (inode_cgwb_enabled(inode))
@@ -2423,7 +2423,7 @@ void account_page_dirtied(struct page *page, struct address_space *mapping)
 
        trace_writeback_dirty_page(page, mapping);
 
-       if (mapping_cap_account_dirty(mapping)) {
+       if (mapping_can_writeback(mapping)) {
                struct bdi_writeback *wb;
 
                inode_attach_wb(inode, page);
@@ -2450,7 +2450,7 @@ void account_page_dirtied(struct page *page, struct address_space *mapping)
 void account_page_cleaned(struct page *page, struct address_space *mapping,
                          struct bdi_writeback *wb)
 {
-       if (mapping_cap_account_dirty(mapping)) {
+       if (mapping_can_writeback(mapping)) {
                dec_lruvec_page_state(page, NR_FILE_DIRTY);
                dec_zone_page_state(page, NR_ZONE_WRITE_PENDING);
                dec_wb_stat(wb, WB_RECLAIMABLE);
@@ -2513,7 +2513,7 @@ void account_page_redirty(struct page *page)
 {
        struct address_space *mapping = page->mapping;
 
-       if (mapping && mapping_cap_account_dirty(mapping)) {
+       if (mapping && mapping_can_writeback(mapping)) {
                struct inode *inode = mapping->host;
                struct bdi_writeback *wb;
                struct wb_lock_cookie cookie = {};
@@ -2625,7 +2625,7 @@ void __cancel_dirty_page(struct page *page)
 {
        struct address_space *mapping = page_mapping(page);
 
-       if (mapping_cap_account_dirty(mapping)) {
+       if (mapping_can_writeback(mapping)) {
                struct inode *inode = mapping->host;
                struct bdi_writeback *wb;
                struct wb_lock_cookie cookie = {};
@@ -2665,7 +2665,7 @@ int clear_page_dirty_for_io(struct page *page)
 
        VM_BUG_ON_PAGE(!PageLocked(page), page);
 
-       if (mapping && mapping_cap_account_dirty(mapping)) {
+       if (mapping && mapping_can_writeback(mapping)) {
                struct inode *inode = mapping->host;
                struct bdi_writeback *wb;
                struct wb_lock_cookie cookie = {};
@@ -2738,7 +2738,7 @@ int test_clear_page_writeback(struct page *page)
                if (ret) {
                        __xa_clear_mark(&mapping->i_pages, page_index(page),
                                                PAGECACHE_TAG_WRITEBACK);
-                       if (bdi_cap_account_writeback(bdi)) {
+                       if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT) {
                                struct bdi_writeback *wb = inode_to_wb(inode);
 
                                dec_wb_stat(wb, WB_WRITEBACK);
@@ -2791,7 +2791,7 @@ int __test_set_page_writeback(struct page *page, bool keep_write)
                                                   PAGECACHE_TAG_WRITEBACK);
 
                        xas_set_mark(&xas, PAGECACHE_TAG_WRITEBACK);
-                       if (bdi_cap_account_writeback(bdi))
+                       if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT)
                                inc_wb_stat(inode_to_wb(inode), WB_WRITEBACK);
 
                        /*
@@ -2849,7 +2849,8 @@ EXPORT_SYMBOL_GPL(wait_on_page_writeback);
  */
 void wait_for_stable_page(struct page *page)
 {
-       if (bdi_cap_stable_pages_required(inode_to_bdi(page->mapping->host)))
+       page = thp_head(page);
+       if (page->mapping->host->i_sb->s_iflags & SB_I_STABLE_WRITES)
                wait_on_page_writeback(page);
 }
 EXPORT_SYMBOL_GPL(wait_for_stable_page);