projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] oom: handle oom_disable exiting
[linux-2.6-microblaze.git]
/
mm
/
swap_state.c
diff --git
a/mm/swap_state.c
b/mm/swap_state.c
index
db8a3d3
..
5f7cf2a
100644
(file)
--- a/
mm/swap_state.c
+++ b/
mm/swap_state.c
@@
-15,6
+15,7
@@
#include <linux/buffer_head.h>
#include <linux/backing-dev.h>
#include <linux/pagevec.h>
#include <linux/buffer_head.h>
#include <linux/backing-dev.h>
#include <linux/pagevec.h>
+#include <linux/migrate.h>
#include <asm/pgtable.h>
#include <asm/pgtable.h>
@@
-23,7
+24,7
@@
* vmscan's shrink_list, to make sync_page look nicer, and to allow
* future use of radix_tree tags in the swap cache.
*/
* vmscan's shrink_list, to make sync_page look nicer, and to allow
* future use of radix_tree tags in the swap cache.
*/
-static struct address_space_operations swap_aops = {
+static
const
struct address_space_operations swap_aops = {
.writepage = swap_writepage,
.sync_page = block_sync_page,
.set_page_dirty = __set_page_dirty_nobuffers,
.writepage = swap_writepage,
.sync_page = block_sync_page,
.set_page_dirty = __set_page_dirty_nobuffers,
@@
-37,7
+38,7
@@
static struct backing_dev_info swap_backing_dev_info = {
struct address_space swapper_space = {
.page_tree = RADIX_TREE_INIT(GFP_ATOMIC|__GFP_NOWARN),
struct address_space swapper_space = {
.page_tree = RADIX_TREE_INIT(GFP_ATOMIC|__GFP_NOWARN),
- .tree_lock =
RW_LOCK_UNLOCKED
,
+ .tree_lock =
__RW_LOCK_UNLOCKED(swapper_space.tree_lock)
,
.a_ops = &swap_aops,
.i_mmap_nonlinear = LIST_HEAD_INIT(swapper_space.i_mmap_nonlinear),
.backing_dev_info = &swap_backing_dev_info,
.a_ops = &swap_aops,
.i_mmap_nonlinear = LIST_HEAD_INIT(swapper_space.i_mmap_nonlinear),
.backing_dev_info = &swap_backing_dev_info,
@@
-86,7
+87,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++;
SetPageSwapCache(page);
set_page_private(page, entry.val);
total_swapcache_pages++;
-
pagecache_acct(1
);
+
__inc_zone_page_state(page, NR_FILE_PAGES
);
}
write_unlock_irq(&swapper_space.tree_lock);
radix_tree_preload_end();
}
write_unlock_irq(&swapper_space.tree_lock);
radix_tree_preload_end();
@@
-131,7
+132,7
@@
void __delete_from_swap_cache(struct page *page)
set_page_private(page, 0);
ClearPageSwapCache(page);
total_swapcache_pages--;
set_page_private(page, 0);
ClearPageSwapCache(page);
total_swapcache_pages--;
-
pagecache_acct(-1
);
+
__dec_zone_page_state(page, NR_FILE_PAGES
);
INC_CACHE_INFO(del_total);
}
INC_CACHE_INFO(del_total);
}
@@
-147,8
+148,7
@@
int add_to_swap(struct page * page, gfp_t gfp_mask)
swp_entry_t entry;
int err;
swp_entry_t entry;
int err;
- if (!PageLocked(page))
- BUG();
+ BUG_ON(!PageLocked(page));
for (;;) {
entry = get_swap_page();
for (;;) {
entry = get_swap_page();