Skip to content

Commit

Permalink
mm: exporting account_page_dirty
Browse files Browse the repository at this point in the history
This allows code outside of the mm core to safely manipulate page state
and not worry about the other accounting. Not using these routines means
that some code will lose track of the accounting and we get bugs. This
has happened once already.

Signed-off-by: Michael Rubin <mrubin@google.com>
Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Michael Rubin authored and Sage Weil committed Aug 22, 2010
1 parent eb6bb1c commit 679ceac
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 7 deletions.
8 changes: 1 addition & 7 deletions fs/ceph/addr.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,7 @@ static int ceph_set_page_dirty(struct page *page)
spin_lock_irq(&mapping->tree_lock);
if (page->mapping) { /* Race with truncate? */
WARN_ON_ONCE(!PageUptodate(page));

if (mapping_cap_account_dirty(mapping)) {
__inc_zone_page_state(page, NR_FILE_DIRTY);
__inc_bdi_stat(mapping->backing_dev_info,
BDI_RECLAIMABLE);
task_io_account_write(PAGE_CACHE_SIZE);
}
account_page_dirtied(page, page->mapping);
radix_tree_tag_set(&mapping->page_tree,
page_index(page), PAGECACHE_TAG_DIRTY);

Expand Down
1 change: 1 addition & 0 deletions mm/page-writeback.c
Original file line number Diff line number Diff line change
Expand Up @@ -1096,6 +1096,7 @@ void account_page_dirtied(struct page *page, struct address_space *mapping)
task_io_account_write(PAGE_CACHE_SIZE);
}
}
EXPORT_SYMBOL(account_page_dirtied);

/*
* For address_spaces which do not use buffers. Just tag the page as dirty in
Expand Down

0 comments on commit 679ceac

Please sign in to comment.