Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 679ceace authored by Michael Rubin's avatar Michael Rubin Committed by Sage Weil
Browse files

mm: exporting account_page_dirty



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: default avatarMichael Rubin <mrubin@google.com>
Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent eb6bb1c5
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -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);

+1 −0
Original line number Diff line number Diff line
@@ -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