X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=mm%2Fswap_state.c;fp=mm%2Fswap_state.c;h=db8a3d3e163651c7c3baa85cd1c82434db177ae8;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=5f7cf2a4cb55f8e9a106776b8d45ec5433c6991e;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/mm/swap_state.c b/mm/swap_state.c index 5f7cf2a4c..db8a3d3e1 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -15,7 +15,6 @@ #include #include #include -#include #include @@ -24,7 +23,7 @@ * vmscan's shrink_list, to make sync_page look nicer, and to allow * future use of radix_tree tags in the swap cache. */ -static const struct address_space_operations swap_aops = { +static struct address_space_operations swap_aops = { .writepage = swap_writepage, .sync_page = block_sync_page, .set_page_dirty = __set_page_dirty_nobuffers, @@ -38,7 +37,7 @@ static struct backing_dev_info swap_backing_dev_info = { struct address_space swapper_space = { .page_tree = RADIX_TREE_INIT(GFP_ATOMIC|__GFP_NOWARN), - .tree_lock = __RW_LOCK_UNLOCKED(swapper_space.tree_lock), + .tree_lock = RW_LOCK_UNLOCKED, .a_ops = &swap_aops, .i_mmap_nonlinear = LIST_HEAD_INIT(swapper_space.i_mmap_nonlinear), .backing_dev_info = &swap_backing_dev_info, @@ -87,7 +86,7 @@ static int __add_to_swap_cache(struct page *page, swp_entry_t entry, SetPageSwapCache(page); set_page_private(page, entry.val); total_swapcache_pages++; - __inc_zone_page_state(page, NR_FILE_PAGES); + pagecache_acct(1); } write_unlock_irq(&swapper_space.tree_lock); radix_tree_preload_end(); @@ -132,7 +131,7 @@ void __delete_from_swap_cache(struct page *page) set_page_private(page, 0); ClearPageSwapCache(page); total_swapcache_pages--; - __dec_zone_page_state(page, NR_FILE_PAGES); + pagecache_acct(-1); INC_CACHE_INFO(del_total); } @@ -148,7 +147,8 @@ int add_to_swap(struct page * page, gfp_t gfp_mask) swp_entry_t entry; int err; - BUG_ON(!PageLocked(page)); + if (!PageLocked(page)) + BUG(); for (;;) { entry = get_swap_page();