From: Greg Kroah-Hartman Date: Fri, 9 Mar 2018 22:17:22 +0000 (-0800) Subject: 4.4-stable patches X-Git-Tag: v3.18.99~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=39fabb89ea67f42e050cf3d40866cdff3031c949;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch --- diff --git a/queue-4.4/dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch b/queue-4.4/dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch new file mode 100644 index 00000000000..ca2ae9333bf --- /dev/null +++ b/queue-4.4/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 +@@ -300,6 +300,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-4.4/series b/queue-4.4/series index a935c537265..51232dbe8c0 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -31,3 +31,4 @@ s390-qeth-fix-ipa-command-submission-race.patch sctp-verify-size-of-a-new-chunk-in-_sctp_make_chunk.patch net-mpls-pull-common-label-check-into-helper.patch mpls-nospec-sanitize-array-index-in-mpls_label_ok.patch +dm-io-fix-duplicate-bio-completion-due-to-missing-ref-count.patch