]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Jun 2018 20:11:47 +0000 (22:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Jun 2018 20:11:47 +0000 (22:11 +0200)
added patches:
mm-fix-the-null-mapping-case-in-__isolate_lru_page.patch

queue-4.14/mm-fix-the-null-mapping-case-in-__isolate_lru_page.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/mm-fix-the-null-mapping-case-in-__isolate_lru_page.patch b/queue-4.14/mm-fix-the-null-mapping-case-in-__isolate_lru_page.patch
new file mode 100644 (file)
index 0000000..4d94325
--- /dev/null
@@ -0,0 +1,47 @@
+From 145e1a71e090575c74969e3daa8136d1e5b99fc8 Mon Sep 17 00:00:00 2001
+From: Hugh Dickins <hughd@google.com>
+Date: Fri, 1 Jun 2018 16:50:50 -0700
+Subject: mm: fix the NULL mapping case in __isolate_lru_page()
+
+From: Hugh Dickins <hughd@google.com>
+
+commit 145e1a71e090575c74969e3daa8136d1e5b99fc8 upstream.
+
+George Boole would have noticed a slight error in 4.16 commit
+69d763fc6d3a ("mm: pin address_space before dereferencing it while
+isolating an LRU page").  Fix it, to match both the comment above it,
+and the original behaviour.
+
+Although anonymous pages are not marked PageDirty at first, we have an
+old habit of calling SetPageDirty when a page is removed from swap
+cache: so there's a category of ex-swap pages that are easily
+migratable, but were inadvertently excluded from compaction's async
+migration in 4.16.
+
+Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1805302014001.12558@eggly.anvils
+Fixes: 69d763fc6d3a ("mm: pin address_space before dereferencing it while isolating an LRU page")
+Signed-off-by: Hugh Dickins <hughd@google.com>
+Acked-by: Minchan Kim <minchan@kernel.org>
+Acked-by: Mel Gorman <mgorman@techsingularity.net>
+Reported-by:  Ivan Kalvachev <ikalvachev@gmail.com>
+Cc: "Huang, Ying" <ying.huang@intel.com>
+Cc: Jan Kara <jack@suse.cz>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ mm/vmscan.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mm/vmscan.c
++++ b/mm/vmscan.c
+@@ -1451,7 +1451,7 @@ int __isolate_lru_page(struct page *page
+                               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;
index 9956f7538161b192934abfb0f3d51754dfc0bd79..9c9037172646a0ec9bb13a8d640e808829e7f9fa 100644 (file)
@@ -1,4 +1,5 @@
 fix-io_destroy-aio_complete-race.patch
+mm-fix-the-null-mapping-case-in-__isolate_lru_page.patch
 objtool-support-gcc-8-s-cold-subfunctions.patch
 objtool-support-gcc-8-switch-tables.patch
 objtool-detect-rip-relative-switch-table-references.patch