Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm: remove BDI_CAP_WRITEBACK_ACCT

There are no users of BDI_CAP_WRITEBACK_ACCT now that fuse doesn't do
its own writeback accounting. This commit removes
BDI_CAP_WRITEBACK_ACCT.

Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>

authored by

Joanne Koong and committed by
Miklos Szeredi
2841808f 494d2f50

+20 -29
+1 -3
include/linux/backing-dev.h
··· 108 108 * 109 109 * BDI_CAP_WRITEBACK: Supports dirty page writeback, and dirty pages 110 110 * should contribute to accounting 111 - * BDI_CAP_WRITEBACK_ACCT: Automatically account writeback pages 112 111 * BDI_CAP_STRICTLIMIT: Keep number of dirty pages below bdi threshold 113 112 */ 114 113 #define BDI_CAP_WRITEBACK (1 << 0) 115 - #define BDI_CAP_WRITEBACK_ACCT (1 << 1) 116 - #define BDI_CAP_STRICTLIMIT (1 << 2) 114 + #define BDI_CAP_STRICTLIMIT (1 << 1) 117 115 118 116 extern struct backing_dev_info noop_backing_dev_info; 119 117
+1 -1
mm/backing-dev.c
··· 1026 1026 kfree(bdi); 1027 1027 return NULL; 1028 1028 } 1029 - bdi->capabilities = BDI_CAP_WRITEBACK | BDI_CAP_WRITEBACK_ACCT; 1029 + bdi->capabilities = BDI_CAP_WRITEBACK; 1030 1030 bdi->ra_pages = VM_READAHEAD_PAGES; 1031 1031 bdi->io_pages = VM_READAHEAD_PAGES; 1032 1032 timer_setup(&bdi->laptop_mode_wb_timer, laptop_mode_timer_fn, 0);
+18 -25
mm/page-writeback.c
··· 3014 3014 3015 3015 if (mapping && mapping_use_writeback_tags(mapping)) { 3016 3016 struct inode *inode = mapping->host; 3017 - struct backing_dev_info *bdi = inode_to_bdi(inode); 3017 + struct bdi_writeback *wb = inode_to_wb(inode); 3018 3018 unsigned long flags; 3019 3019 3020 3020 xa_lock_irqsave(&mapping->i_pages, flags); 3021 3021 ret = folio_xor_flags_has_waiters(folio, 1 << PG_writeback); 3022 3022 __xa_clear_mark(&mapping->i_pages, folio_index(folio), 3023 3023 PAGECACHE_TAG_WRITEBACK); 3024 - if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT) { 3025 - struct bdi_writeback *wb = inode_to_wb(inode); 3026 3024 3027 - wb_stat_mod(wb, WB_WRITEBACK, -nr); 3028 - __wb_writeout_add(wb, nr); 3029 - if (!mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) 3030 - wb_inode_writeback_end(wb); 3025 + wb_stat_mod(wb, WB_WRITEBACK, -nr); 3026 + __wb_writeout_add(wb, nr); 3027 + if (!mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) { 3028 + wb_inode_writeback_end(wb); 3029 + if (mapping->host) 3030 + sb_clear_inode_writeback(mapping->host); 3031 3031 } 3032 - 3033 - if (mapping->host && !mapping_tagged(mapping, 3034 - PAGECACHE_TAG_WRITEBACK)) 3035 - sb_clear_inode_writeback(mapping->host); 3036 3032 3037 3033 xa_unlock_irqrestore(&mapping->i_pages, flags); 3038 3034 } else { ··· 3054 3058 if (mapping && mapping_use_writeback_tags(mapping)) { 3055 3059 XA_STATE(xas, &mapping->i_pages, folio_index(folio)); 3056 3060 struct inode *inode = mapping->host; 3057 - struct backing_dev_info *bdi = inode_to_bdi(inode); 3061 + struct bdi_writeback *wb = inode_to_wb(inode); 3058 3062 unsigned long flags; 3059 3063 bool on_wblist; 3060 3064 ··· 3065 3069 on_wblist = mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK); 3066 3070 3067 3071 xas_set_mark(&xas, PAGECACHE_TAG_WRITEBACK); 3068 - if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT) { 3069 - struct bdi_writeback *wb = inode_to_wb(inode); 3070 - 3071 - wb_stat_mod(wb, WB_WRITEBACK, nr); 3072 - if (!on_wblist) 3073 - wb_inode_writeback_start(wb); 3072 + wb_stat_mod(wb, WB_WRITEBACK, nr); 3073 + if (!on_wblist) { 3074 + wb_inode_writeback_start(wb); 3075 + /* 3076 + * We can come through here when swapping anonymous 3077 + * folios, so we don't necessarily have an inode to 3078 + * track for sync. 3079 + */ 3080 + if (mapping->host) 3081 + sb_mark_inode_writeback(mapping->host); 3074 3082 } 3075 3083 3076 - /* 3077 - * We can come through here when swapping anonymous 3078 - * folios, so we don't necessarily have an inode to 3079 - * track for sync. 3080 - */ 3081 - if (mapping->host && !on_wblist) 3082 - sb_mark_inode_writeback(mapping->host); 3083 3084 if (!folio_test_dirty(folio)) 3084 3085 xas_clear_mark(&xas, PAGECACHE_TAG_DIRTY); 3085 3086 if (!keep_write)