mm: bdi: add separate writeback accounting capability
Add a new BDI capability flag: BDI_CAP_NO_ACCT_WB. If this flag is set, then don't update the per-bdi writeback stats from test_set_page_writeback() and test_clear_page_writeback(). Misc cleanups: - convert bdi_cap_writeback_dirty() and friends to static inline functions - create a flag that includes all three dirty/writeback related flags, since almst all users will want to have them toghether Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
76f1418b48
commit
e4ad08fe64
@@ -1246,7 +1246,7 @@ int test_clear_page_writeback(struct page *page)
|
||||
radix_tree_tag_clear(&mapping->page_tree,
|
||||
page_index(page),
|
||||
PAGECACHE_TAG_WRITEBACK);
|
||||
if (bdi_cap_writeback_dirty(bdi)) {
|
||||
if (bdi_cap_account_writeback(bdi)) {
|
||||
__dec_bdi_stat(bdi, BDI_WRITEBACK);
|
||||
__bdi_writeout_inc(bdi);
|
||||
}
|
||||
@@ -1275,7 +1275,7 @@ int test_set_page_writeback(struct page *page)
|
||||
radix_tree_tag_set(&mapping->page_tree,
|
||||
page_index(page),
|
||||
PAGECACHE_TAG_WRITEBACK);
|
||||
if (bdi_cap_writeback_dirty(bdi))
|
||||
if (bdi_cap_account_writeback(bdi))
|
||||
__inc_bdi_stat(bdi, BDI_WRITEBACK);
|
||||
}
|
||||
if (!PageDirty(page))
|
||||
|
@@ -201,7 +201,7 @@ static struct vm_operations_struct shmem_vm_ops;
|
||||
|
||||
static struct backing_dev_info shmem_backing_dev_info __read_mostly = {
|
||||
.ra_pages = 0, /* No readahead */
|
||||
.capabilities = BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_WRITEBACK,
|
||||
.capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK,
|
||||
.unplug_io_fn = default_unplug_io_fn,
|
||||
};
|
||||
|
||||
|
@@ -33,7 +33,7 @@ static const struct address_space_operations swap_aops = {
|
||||
};
|
||||
|
||||
static struct backing_dev_info swap_backing_dev_info = {
|
||||
.capabilities = BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_WRITEBACK,
|
||||
.capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK,
|
||||
.unplug_io_fn = swap_unplug_io_fn,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user