lkml.org 
[lkml]   [2010]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/4] mm: exporting account_page_dirty
    Date
    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>
    ---
    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


    \
     
     \ /
      Last update: 2010-08-20 11:35    [W:0.022 / U:0.428 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site