From: Greg Kroah-Hartman Date: Fri, 9 Mar 2018 22:16:47 +0000 (-0800) Subject: 3.18-stable patches X-Git-Tag: v3.18.99~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6cd48dcec3ad877f075c8db8eb5de45f58b6f296;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch --- diff --git a/queue-3.18/dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch b/queue-3.18/dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch new file mode 100644 index 00000000000..e4acc963a10 --- /dev/null +++ b/queue-3.18/dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch @@ -0,0 +1,37 @@ +From feb7695fe9fb83084aa29de0094774f4c9d4c9fc Mon Sep 17 00:00:00 2001 +From: Mike Snitzer +Date: Tue, 20 Jun 2017 19:14:30 -0400 +Subject: dm io: fix duplicate bio completion due to missing ref count + +From: Mike Snitzer + +commit feb7695fe9fb83084aa29de0094774f4c9d4c9fc upstream. + +If only a subset of the devices associated with multiple regions support +a given special operation (eg. DISCARD) then the dec_count() that is +used to set error for the region must increment the io->count. + +Otherwise, when the dec_count() is called it can cause the dm-io +caller's bio to be completed multiple times. As was reported against +the dm-mirror target that had mirror legs with a mix of discard +capabilities. + +Bug: https://bugzilla.kernel.org/show_bug.cgi?id=196077 +Reported-by: Zhang Yi +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-io.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/md/dm-io.c ++++ b/drivers/md/dm-io.c +@@ -299,6 +299,7 @@ static void do_region(int rw, unsigned r + else if (rw & REQ_WRITE_SAME) + special_cmd_max_sectors = q->limits.max_write_same_sectors; + if ((rw & (REQ_DISCARD | REQ_WRITE_SAME)) && special_cmd_max_sectors == 0) { ++ atomic_inc(&io->count); + dec_count(io, region, -EOPNOTSUPP); + return; + } diff --git a/queue-3.18/series b/queue-3.18/series index 6f20a798a67..2c36619d04a 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -18,3 +18,4 @@ s390-qeth-fix-ipa-command-submission-race.patch sctp-verify-size-of-a-new-chunk-in-_sctp_make_chunk.patch net-ipv4-don-t-allow-setting-net.ipv4.route.min_pmtu-below-68.patch fib_semantics-don-t-match-route-with-mismatching-tclassid.patch +dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch diff --git a/queue-4.15/series b/queue-4.15/series new file mode 100644 index 00000000000..482f94862e5 --- /dev/null +++ b/queue-4.15/series @@ -0,0 +1,8 @@ +bpf-fix-mlock-precharge-on-arraymaps.patch +bpf-fix-memory-leak-in-lpm_trie-map_free-callback-function.patch +bpf-fix-rcu-lockdep-warning-for-lpm_trie-map_free-callback.patch +bpf-x64-implement-retpoline-for-tail-call.patch +bpf-arm64-fix-out-of-bounds-access-in-tail-call.patch +bpf-add-schedule-points-in-percpu-arrays-management.patch +bpf-allow-xadd-only-on-aligned-memory.patch +bpf-ppc64-fix-out-of-bounds-access-in-tail-call.patch