aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-06-02 09:44:15 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-02 09:44:15 -0700
commit0938a8f52d10fc917eecc5c1b2fb7d3a7dedfa41 (patch)
tree5fc6b86ed716987c2c6817447314b2890d68629c
parent0512e0134582ef85dee77d51aae77dcd1edec495 (diff)
parent145e1a71e090575c74969e3daa8136d1e5b99fc8 (diff)
downloadlinux-security-0938a8f52d10fc917eecc5c1b2fb7d3a7dedfa41.tar.gz
Merge branch 'akpm' (patches from Andrew)
Merge two fixes from Andrew Morton. * emailed patches from Andrew Morton <akpm@linux-foundation.org>: mm: fix the NULL mapping case in __isolate_lru_page() mm/huge_memory.c: __split_huge_page() use atomic ClearPageDirty()
-rw-r--r--mm/huge_memory.c2
-rw-r--r--mm/vmscan.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index a3a1815f8e1181..b9f3dbd885bda5 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2431,7 +2431,7 @@ static void __split_huge_page(struct page *page, struct list_head *list,
__split_huge_page_tail(head, i, lruvec, list);
/* Some pages can be beyond i_size: drop them from page cache */
if (head[i].index >= end) {
- __ClearPageDirty(head + i);
+ ClearPageDirty(head + i);
__delete_from_page_cache(head + i, NULL);
if (IS_ENABLED(CONFIG_SHMEM) && PageSwapBacked(head))
shmem_uncharge(head->mapping->host, 1);
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 9b697323a88c98..9270a4370d542b 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1418,7 +1418,7 @@ int __isolate_lru_page(struct page *page, isolate_mode_t mode)
return ret;
mapping = page_mapping(page);
- migrate_dirty = mapping && mapping->a_ops->migratepage;
+ migrate_dirty = !mapping || mapping->a_ops->migratepage;
unlock_page(page);
if (!migrate_dirty)
return ret;