aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-12-13 16:11:15 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-13 16:11:15 -0500
commitf6e858a00af788bab0fd4c0b7f5cd788000edc18 (patch)
treef9403ca3671be9821dbf83e726e61dbe75fbca6b /fs
parent193c0d682525987db59ac3a24531a77e4947aa95 (diff)
parent98870901cce098bbe94d90d2c41d8d1fa8d94392 (diff)
Merge branch 'akpm' (Andrew's patch-bomb)
Merge misc VM changes from Andrew Morton: "The rest of most-of-MM. The other MM bits await a slab merge. This patch includes the addition of a huge zero_page. Not a performance boost but it an save large amounts of physical memory in some situations. Also a bunch of Fujitsu engineers are working on memory hotplug. Which, as it turns out, was badly broken. About half of their patches are included here; the remainder are 3.8 material." However, this merge disables CONFIG_MOVABLE_NODE, which was totally broken. We don't add new features with "default y", nor do we add Kconfig questions that are incomprehensible to most people without any help text. Does the feature even make sense without compaction or memory hotplug? * akpm: (54 commits) mm/bootmem.c: remove unused wrapper function reserve_bootmem_generic() mm/memory.c: remove unused code from do_wp_page() asm-generic, mm: pgtable: consolidate zero page helpers mm/hugetlb.c: fix warning on freeing hwpoisoned hugepage hwpoison, hugetlbfs: fix RSS-counter warning hwpoison, hugetlbfs: fix "bad pmd" warning in unmapping hwpoisoned hugepage mm: protect against concurrent vma expansion memcg: do not check for mm in __mem_cgroup_count_vm_event tmpfs: support SEEK_DATA and SEEK_HOLE (reprise) mm: provide more accurate estimation of pages occupied by memmap fs/buffer.c: remove redundant initialization in alloc_page_buffers() fs/buffer.c: do not inline exported function writeback: fix a typo in comment mm: introduce new field "managed_pages" to struct zone mm, oom: remove statically defined arch functions of same name mm, oom: remove redundant sleep in pagefault oom handler mm, oom: cleanup pagefault oom handler memory_hotplug: allow online/offline memory to result movable node numa: add CONFIG_MOVABLE_NODE for movable-dedicated node mm, memcg: avoid unnecessary function call when memcg is disabled ...
Diffstat (limited to 'fs')
-rw-r--r--fs/buffer.c6
-rw-r--r--fs/fs-writeback.c2
-rw-r--r--fs/proc/kcore.c2
-rw-r--r--fs/proc/task_mmu.c6
4 files changed, 6 insertions, 10 deletions
diff --git a/fs/buffer.c b/fs/buffer.c
index 6e9ed48064fc..c017a2dfb909 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -46,8 +46,7 @@ static int fsync_buffers_list(spinlock_t *lock, struct list_head *list);
46 46
47#define BH_ENTRY(list) list_entry((list), struct buffer_head, b_assoc_buffers) 47#define BH_ENTRY(list) list_entry((list), struct buffer_head, b_assoc_buffers)
48 48
49inline void 49void init_buffer(struct buffer_head *bh, bh_end_io_t *handler, void *private)
50init_buffer(struct buffer_head *bh, bh_end_io_t *handler, void *private)
51{ 50{
52 bh->b_end_io = handler; 51 bh->b_end_io = handler;
53 bh->b_private = private; 52 bh->b_private = private;
@@ -850,13 +849,10 @@ try_again:
850 if (!bh) 849 if (!bh)
851 goto no_grow; 850 goto no_grow;
852 851
853 bh->b_bdev = NULL;
854 bh->b_this_page = head; 852 bh->b_this_page = head;
855 bh->b_blocknr = -1; 853 bh->b_blocknr = -1;
856 head = bh; 854 head = bh;
857 855
858 bh->b_state = 0;
859 atomic_set(&bh->b_count, 0);
860 bh->b_size = size; 856 bh->b_size = size;
861 857
862 /* Link the buffer to its page */ 858 /* Link the buffer to its page */
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 3e3422f7f0a4..310972b72a66 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -1034,7 +1034,7 @@ int bdi_writeback_thread(void *data)
1034 while (!kthread_freezable_should_stop(NULL)) { 1034 while (!kthread_freezable_should_stop(NULL)) {
1035 /* 1035 /*
1036 * Remove own delayed wake-up timer, since we are already awake 1036 * Remove own delayed wake-up timer, since we are already awake
1037 * and we'll take care of the preriodic write-back. 1037 * and we'll take care of the periodic write-back.
1038 */ 1038 */
1039 del_timer(&wb->wakeup_timer); 1039 del_timer(&wb->wakeup_timer);
1040 1040
diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
index 86c67eee439f..e96d4f18ca3a 100644
--- a/fs/proc/kcore.c
+++ b/fs/proc/kcore.c
@@ -249,7 +249,7 @@ static int kcore_update_ram(void)
249 /* Not inialized....update now */ 249 /* Not inialized....update now */
250 /* find out "max pfn" */ 250 /* find out "max pfn" */
251 end_pfn = 0; 251 end_pfn = 0;
252 for_each_node_state(nid, N_HIGH_MEMORY) { 252 for_each_node_state(nid, N_MEMORY) {
253 unsigned long node_end; 253 unsigned long node_end;
254 node_end = NODE_DATA(nid)->node_start_pfn + 254 node_end = NODE_DATA(nid)->node_start_pfn +
255 NODE_DATA(nid)->node_spanned_pages; 255 NODE_DATA(nid)->node_spanned_pages;
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 90c63f9392a5..48775628abbf 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -643,7 +643,7 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr,
643 spinlock_t *ptl; 643 spinlock_t *ptl;
644 struct page *page; 644 struct page *page;
645 645
646 split_huge_page_pmd(walk->mm, pmd); 646 split_huge_page_pmd(vma, addr, pmd);
647 if (pmd_trans_unstable(pmd)) 647 if (pmd_trans_unstable(pmd))
648 return 0; 648 return 0;
649 649
@@ -1126,7 +1126,7 @@ static struct page *can_gather_numa_stats(pte_t pte, struct vm_area_struct *vma,
1126 return NULL; 1126 return NULL;
1127 1127
1128 nid = page_to_nid(page); 1128 nid = page_to_nid(page);
1129 if (!node_isset(nid, node_states[N_HIGH_MEMORY])) 1129 if (!node_isset(nid, node_states[N_MEMORY]))
1130 return NULL; 1130 return NULL;
1131 1131
1132 return page; 1132 return page;
@@ -1279,7 +1279,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
1279 if (md->writeback) 1279 if (md->writeback)
1280 seq_printf(m, " writeback=%lu", md->writeback); 1280 seq_printf(m, " writeback=%lu", md->writeback);
1281 1281
1282 for_each_node_state(n, N_HIGH_MEMORY) 1282 for_each_node_state(n, N_MEMORY)
1283 if (md->node[n]) 1283 if (md->node[n])
1284 seq_printf(m, " N%d=%lu", n, md->node[n]); 1284 seq_printf(m, " N%d=%lu", n, md->node[n]);
1285out: 1285out: