]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Aug 2018 17:03:51 +0000 (10:03 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Aug 2018 17:03:51 +0000 (10:03 -0700)
added patches:
ext4-reset-error-code-in-ext4_find_entry-in-fallback.patch
s390-kvm-fix-deadlock-when-killed-by-oom.patch

queue-3.18/ext4-reset-error-code-in-ext4_find_entry-in-fallback.patch [new file with mode: 0644]
queue-3.18/s390-kvm-fix-deadlock-when-killed-by-oom.patch [new file with mode: 0644]
queue-3.18/series

diff --git a/queue-3.18/ext4-reset-error-code-in-ext4_find_entry-in-fallback.patch b/queue-3.18/ext4-reset-error-code-in-ext4_find_entry-in-fallback.patch
new file mode 100644 (file)
index 0000000..9c8dde9
--- /dev/null
@@ -0,0 +1,37 @@
+From f39b3f45dbcb0343822cce31ea7636ad66e60bc2 Mon Sep 17 00:00:00 2001
+From: Eric Sandeen <sandeen@redhat.com>
+Date: Sun, 29 Jul 2018 17:13:42 -0400
+Subject: ext4: reset error code in ext4_find_entry in fallback
+
+From: Eric Sandeen <sandeen@redhat.com>
+
+commit f39b3f45dbcb0343822cce31ea7636ad66e60bc2 upstream.
+
+When ext4_find_entry() falls back to "searching the old fashioned
+way" due to a corrupt dx dir, it needs to reset the error code
+to NULL so that the nonstandard ERR_BAD_DX_DIR code isn't returned
+to userspace.
+
+https://bugzilla.kernel.org/show_bug.cgi?id=199947
+
+Reported-by: Anatoly Trosinenko <anatoly.trosinenko@yandex.com>
+Reviewed-by: Andreas Dilger <adilger@dilger.ca>
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+Signed-off-by: Theodore Ts'o <tytso@mit.edu>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext4/namei.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/fs/ext4/namei.c
++++ b/fs/ext4/namei.c
+@@ -1242,6 +1242,7 @@ static struct buffer_head * ext4_find_en
+                       return bh;
+               dxtrace(printk(KERN_DEBUG "ext4_find_entry: dx failed, "
+                              "falling back\n"));
++              ret = NULL;
+       }
+       nblocks = dir->i_size >> EXT4_BLOCK_SIZE_BITS(sb);
+       if (!nblocks) {
diff --git a/queue-3.18/s390-kvm-fix-deadlock-when-killed-by-oom.patch b/queue-3.18/s390-kvm-fix-deadlock-when-killed-by-oom.patch
new file mode 100644 (file)
index 0000000..4d0eeec
--- /dev/null
@@ -0,0 +1,40 @@
+From 306d6c49ac9ded11114cb53b0925da52f2c2ada1 Mon Sep 17 00:00:00 2001
+From: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
+Date: Mon, 16 Jul 2018 10:38:57 +0200
+Subject: s390/kvm: fix deadlock when killed by oom
+
+From: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
+
+commit 306d6c49ac9ded11114cb53b0925da52f2c2ada1 upstream.
+
+When the oom killer kills a userspace process in the page fault handler
+while in guest context, the fault handler fails to release the mm_sem
+if the FAULT_FLAG_RETRY_NOWAIT option is set. This leads to a deadlock
+when tearing down the mm when the process terminates. This bug can only
+happen when pfault is enabled, so only KVM clients are affected.
+
+The problem arises in the rare cases in which handle_mm_fault does not
+release the mm_sem. This patch fixes the issue by manually releasing
+the mm_sem when needed.
+
+Fixes: 24eb3a824c4f3 ("KVM: s390: Add FAULT_FLAG_RETRY_NOWAIT for guest fault")
+Cc: <stable@vger.kernel.org> # 3.15+
+Signed-off-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/s390/mm/fault.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/s390/mm/fault.c
++++ b/arch/s390/mm/fault.c
+@@ -494,6 +494,8 @@ retry:
+       /* No reason to continue if interrupted by SIGKILL. */
+       if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) {
+               fault = VM_FAULT_SIGNAL;
++              if (flags & FAULT_FLAG_RETRY_NOWAIT)
++                      goto out_up;
+               goto out;
+       }
+       if (unlikely(fault & VM_FAULT_ERROR))
index 249978fea3bb524a9e5a53993532aa9037903a6b..13208416233c3e9e5f4c3ff682895fb2c3c3f833 100644 (file)
@@ -34,3 +34,5 @@ scsi-fcoe-drop-frames-in-els-logo-error-path.patch
 scsi-vmw_pvscsi-return-did_reset-for-status-sam_stat_command_terminated.patch
 mm-memory.c-check-return-value-of-ioremap_prot.patch
 btrfs-don-t-leak-ret-from-do_chunk_alloc.patch
+s390-kvm-fix-deadlock-when-killed-by-oom.patch
+ext4-reset-error-code-in-ext4_find_entry-in-fallback.patch