From: Michael Rubin <mrubin@google.com>
To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-mm@kvack.org
Cc: fengguang.wu@intel.com, jack@suse.cz, riel@redhat.com,
akpm@linux-foundation.org, david@fromorbit.com,
kosaki.motohiro@jp.fujitsu.com, npiggin@kernel.dk, hch@lst.de,
axboe@kernel.dk, Michael Rubin <mrubin@google.com>
Subject: [PATCH 1/4] mm: exporting account_page_dirty
Date: Fri, 27 Aug 2010 19:40:24 -0700 [thread overview]
Message-ID: <1282963227-31867-2-git-send-email-mrubin@google.com> (raw)
In-Reply-To: <1282963227-31867-1-git-send-email-mrubin@google.com>
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.
Modified cephs to use the interface.
Signed-off-by: Michael Rubin <mrubin@google.com>
Reviewed-by: Wu Fengguang <fengguang.wu@intel.com>
---
fs/ceph/addr.c | 8 +-------
mm/page-writeback.c | 1 +
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index 5598a0d..420d469 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -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);
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 7262aac..9d07a8d 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -1131,6 +1131,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
--
1.7.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-08-28 2:40 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-28 2:40 [PATCH 0/4] writeback: kernel visibility Michael Rubin
2010-08-28 2:40 ` Michael Rubin [this message]
2010-08-28 22:11 ` [PATCH 1/4] mm: exporting account_page_dirty Sage Weil
2010-08-28 2:40 ` [PATCH 2/4] mm: account_page_writeback added Michael Rubin
2010-08-28 2:40 ` [PATCH 3/4] writeback: nr_dirtied and nr_cleaned in /proc/vmstat Michael Rubin
2010-08-28 23:50 ` Wu Fengguang
2010-08-31 6:09 ` Michael Rubin
2010-08-31 7:48 ` Wu Fengguang
2010-09-05 14:17 ` Wu Fengguang
2010-09-06 1:00 ` KOSAKI Motohiro
2010-09-06 1:34 ` Wu Fengguang
2010-08-28 2:40 ` [PATCH 4/4] writeback: Reporting dirty thresholds " Michael Rubin
2010-08-30 0:28 ` KOSAKI Motohiro
2010-08-30 16:25 ` Michael Rubin
2010-08-31 1:07 ` KOSAKI Motohiro
2010-08-31 1:32 ` Wu Fengguang
-- strict thread matches above, loose matches on Subject: below --
2010-08-20 9:31 [PATCH 0/4] writeback: kernel visibility Michael Rubin
2010-08-20 9:31 ` [PATCH 1/4] mm: exporting account_page_dirty Michael Rubin
2010-08-20 9:39 ` Wu Fengguang
2010-08-20 15:37 ` Sage Weil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1282963227-31867-2-git-send-email-mrubin@google.com \
--to=mrubin@google.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=david@fromorbit.com \
--cc=fengguang.wu@intel.com \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npiggin@kernel.dk \
--cc=riel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).