From: Greg Kroah-Hartman Date: Sat, 1 Aug 2020 11:33:42 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v5.7.13~61 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3d44b22ec8bec1ea799a7d262e437c851264b574;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: mm-filemap.c-don-t-bother-dropping-mmap_sem-for-zero-size-readahead.patch --- diff --git a/queue-5.4/mm-filemap.c-don-t-bother-dropping-mmap_sem-for-zero-size-readahead.patch b/queue-5.4/mm-filemap.c-don-t-bother-dropping-mmap_sem-for-zero-size-readahead.patch new file mode 100644 index 00000000000..a2f997c60fc --- /dev/null +++ b/queue-5.4/mm-filemap.c-don-t-bother-dropping-mmap_sem-for-zero-size-readahead.patch @@ -0,0 +1,42 @@ +From 5c72feee3e45b40a3c96c7145ec422899d0e8964 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Wed, 1 Apr 2020 21:04:40 -0700 +Subject: mm/filemap.c: don't bother dropping mmap_sem for zero size readahead + +From: Jan Kara + +commit 5c72feee3e45b40a3c96c7145ec422899d0e8964 upstream. + +When handling a page fault, we drop mmap_sem to start async readahead so +that we don't block on IO submission with mmap_sem held. However there's +no point to drop mmap_sem in case readahead is disabled. Handle that case +to avoid pointless dropping of mmap_sem and retrying the fault. This was +actually reported to block mlockall(MCL_CURRENT) indefinitely. + +Fixes: 6b4c9f446981 ("filemap: drop the mmap_sem for all blocking operations") +Reported-by: Minchan Kim +Reported-by: Robert Stupp +Signed-off-by: Jan Kara +Signed-off-by: Andrew Morton +Reviewed-by: Josef Bacik +Reviewed-by: Minchan Kim +Link: http://lkml.kernel.org/r/20200212101356.30759-1-jack@suse.cz +Signed-off-by: Linus Torvalds +Cc: SeongJae Park +Signed-off-by: Greg Kroah-Hartman + +--- + mm/filemap.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/mm/filemap.c ++++ b/mm/filemap.c +@@ -2438,7 +2438,7 @@ static struct file *do_async_mmap_readah + pgoff_t offset = vmf->pgoff; + + /* If we don't want any read-ahead, don't bother */ +- if (vmf->vma->vm_flags & VM_RAND_READ) ++ if (vmf->vma->vm_flags & VM_RAND_READ || !ra->ra_pages) + return fpin; + if (ra->mmap_miss > 0) + ra->mmap_miss--; diff --git a/queue-5.4/series b/queue-5.4/series index f171aab408e..8dced404617 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -3,3 +3,4 @@ media-rc-prevent-memory-leak-in-cx23888_ir_probe.patch sunrpc-check-that-domain-table-is-empty-at-module-un.patch ath10k-enable-transmit-data-ack-rssi-for-qca9884.patch pci-aspm-disable-aspm-on-asmedia-asm1083-1085-pcie-to-pci-bridge.patch +mm-filemap.c-don-t-bother-dropping-mmap_sem-for-zero-size-readahead.patch