Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'akpm' (incoming from Andrew)

Merge misc fixes from Andrew Morton:
"9 fixes"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
MAINTAINERS: add closing angle bracket to Vince Bridgers' email address
Documentation: fix DOCBOOKS=... building
ocfs2: fix double kmem_cache_destroy in dlm_init
mm/memory-failure.c: fix memory leak by race between poison and unpoison
wait: swap EXIT_ZOMBIE(Z) and EXIT_DEAD(X) chars in TASK_STATE_TO_CHAR_STR
memcg: fix swapcache charge from kernel thread context
mm: madvise: fix MADV_WILLNEED on shmem swapouts
mm/filemap.c: avoid always dirtying mapping->flags on O_DIRECT
hwpoison, hugetlb: lock_page/unlock_page does not match for handling a free hugepage

+38 -28
+1 -1
Documentation/DocBook/media/Makefile
··· 195 195 # 196 196 197 197 install_media_images = \ 198 - $(Q)cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api 198 + $(Q)-cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api 199 199 200 200 $(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64 201 201 $(Q)base64 -d $< >$@
+1 -1
MAINTAINERS
··· 537 537 F: arch/alpha/ 538 538 539 539 ALTERA TRIPLE SPEED ETHERNET DRIVER 540 - M: Vince Bridgers <vbridgers2013@gmail.com 540 + M: Vince Bridgers <vbridgers2013@gmail.com> 541 541 L: netdev@vger.kernel.org 542 542 L: nios2-dev@lists.rocketboards.org (moderated for non-subscribers) 543 543 S: Maintained
+6 -2
fs/ocfs2/dlm/dlmmaster.c
··· 472 472 473 473 void dlm_destroy_master_caches(void) 474 474 { 475 - if (dlm_lockname_cache) 475 + if (dlm_lockname_cache) { 476 476 kmem_cache_destroy(dlm_lockname_cache); 477 + dlm_lockname_cache = NULL; 478 + } 477 479 478 - if (dlm_lockres_cache) 480 + if (dlm_lockres_cache) { 479 481 kmem_cache_destroy(dlm_lockres_cache); 482 + dlm_lockres_cache = NULL; 483 + } 480 484 } 481 485 482 486 static void dlm_lockres_release(struct kref *kref)
+1 -1
include/linux/sched.h
··· 220 220 #define TASK_PARKED 512 221 221 #define TASK_STATE_MAX 1024 222 222 223 - #define TASK_STATE_TO_CHAR_STR "RSDTtZXxKWP" 223 + #define TASK_STATE_TO_CHAR_STR "RSDTtXZxKWP" 224 224 225 225 extern char ___assert_task_state[1 - 2*!!( 226 226 sizeof(TASK_STATE_TO_CHAR_STR)-1 != ilog2(TASK_STATE_MAX)+1)];
+4 -2
mm/filemap.c
··· 257 257 { 258 258 int ret = 0; 259 259 /* Check for outstanding write errors */ 260 - if (test_and_clear_bit(AS_ENOSPC, &mapping->flags)) 260 + if (test_bit(AS_ENOSPC, &mapping->flags) && 261 + test_and_clear_bit(AS_ENOSPC, &mapping->flags)) 261 262 ret = -ENOSPC; 262 - if (test_and_clear_bit(AS_EIO, &mapping->flags)) 263 + if (test_bit(AS_EIO, &mapping->flags) && 264 + test_and_clear_bit(AS_EIO, &mapping->flags)) 263 265 ret = -EIO; 264 266 return ret; 265 267 }
+1 -1
mm/madvise.c
··· 195 195 for (; start < end; start += PAGE_SIZE) { 196 196 index = ((start - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff; 197 197 198 - page = find_get_page(mapping, index); 198 + page = find_get_entry(mapping, index); 199 199 if (!radix_tree_exceptional_entry(page)) { 200 200 if (page) 201 201 page_cache_release(page);
+14 -13
mm/memcontrol.c
··· 1077 1077 1078 1078 rcu_read_lock(); 1079 1079 do { 1080 - memcg = mem_cgroup_from_task(rcu_dereference(mm->owner)); 1081 - if (unlikely(!memcg)) 1080 + /* 1081 + * Page cache insertions can happen withou an 1082 + * actual mm context, e.g. during disk probing 1083 + * on boot, loopback IO, acct() writes etc. 1084 + */ 1085 + if (unlikely(!mm)) 1082 1086 memcg = root_mem_cgroup; 1087 + else { 1088 + memcg = mem_cgroup_from_task(rcu_dereference(mm->owner)); 1089 + if (unlikely(!memcg)) 1090 + memcg = root_mem_cgroup; 1091 + } 1083 1092 } while (!css_tryget(&memcg->css)); 1084 1093 rcu_read_unlock(); 1085 1094 return memcg; ··· 3967 3958 return 0; 3968 3959 } 3969 3960 3970 - /* 3971 - * Page cache insertions can happen without an actual mm 3972 - * context, e.g. during disk probing on boot. 3973 - */ 3974 - if (unlikely(!mm)) 3975 - memcg = root_mem_cgroup; 3976 - else { 3977 - memcg = mem_cgroup_try_charge_mm(mm, gfp_mask, 1, true); 3978 - if (!memcg) 3979 - return -ENOMEM; 3980 - } 3961 + memcg = mem_cgroup_try_charge_mm(mm, gfp_mask, 1, true); 3962 + if (!memcg) 3963 + return -ENOMEM; 3981 3964 __mem_cgroup_commit_charge(memcg, page, 1, type, false); 3982 3965 return 0; 3983 3966 }
+10 -7
mm/memory-failure.c
··· 1081 1081 return 0; 1082 1082 } else if (PageHuge(hpage)) { 1083 1083 /* 1084 - * Check "just unpoisoned", "filter hit", and 1085 - * "race with other subpage." 1084 + * Check "filter hit" and "race with other subpage." 1086 1085 */ 1087 1086 lock_page(hpage); 1088 - if (!PageHWPoison(hpage) 1089 - || (hwpoison_filter(p) && TestClearPageHWPoison(p)) 1090 - || (p != hpage && TestSetPageHWPoison(hpage))) { 1091 - atomic_long_sub(nr_pages, &num_poisoned_pages); 1092 - return 0; 1087 + if (PageHWPoison(hpage)) { 1088 + if ((hwpoison_filter(p) && TestClearPageHWPoison(p)) 1089 + || (p != hpage && TestSetPageHWPoison(hpage))) { 1090 + atomic_long_sub(nr_pages, &num_poisoned_pages); 1091 + unlock_page(hpage); 1092 + return 0; 1093 + } 1093 1094 } 1094 1095 set_page_hwpoison_huge_page(hpage); 1095 1096 res = dequeue_hwpoisoned_huge_page(hpage); ··· 1153 1152 */ 1154 1153 if (!PageHWPoison(p)) { 1155 1154 printk(KERN_ERR "MCE %#lx: just unpoisoned\n", pfn); 1155 + atomic_long_sub(nr_pages, &num_poisoned_pages); 1156 + put_page(hpage); 1156 1157 res = 0; 1157 1158 goto out; 1158 1159 }