summaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2020-11-20 12:03:40 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2020-11-20 12:03:40 -0800
commit4fd84bc9692958cd07b3a3320dba26baa04a17d0 (patch)
treee396840c962259a79e6ffb551a93f41fd60f9804 /drivers/s390
parentfa5fca78bb2fe7a58ae7297407dcda1914ea8353 (diff)
parent45f703a0d4b87f940ea150367dc4f4a9c06fa868 (diff)
downloadlinux-stable-4fd84bc9692958cd07b3a3320dba26baa04a17d0.tar.gz
linux-stable-4fd84bc9692958cd07b3a3320dba26baa04a17d0.tar.bz2
linux-stable-4fd84bc9692958cd07b3a3320dba26baa04a17d0.zip
Merge tag 'block-5.10-2020-11-20' of git://git.kernel.dk/linux-block
Pull block fixes from Jens Axboe: - NVMe pull request from Christoph: - Doorbell Buffer freeing fix (Minwoo Im) - CSE log leak fix (Keith Busch) - blk-cgroup hd_struct leak fix (Christoph) - Flush request state fix (Ming) - dasd NULL deref fix (Stefan) * tag 'block-5.10-2020-11-20' of git://git.kernel.dk/linux-block: s390/dasd: fix null pointer dereference for ERP requests blk-cgroup: fix a hd_struct leak in blkcg_fill_root_iostats nvme: fix memory leak freeing command effects nvme: directly cache command effects log nvme: free sq/cq dbbuf pointers when dbbuf set fails block: mark flush request as IDLE when it is really finished
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/block/dasd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index eb17fea8075c..217a7b84abdf 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -2980,6 +2980,12 @@ static int _dasd_requeue_request(struct dasd_ccw_req *cqr)
if (!block)
return -EINVAL;
+ /*
+ * If the request is an ERP request there is nothing to requeue.
+ * This will be done with the remaining original request.
+ */
+ if (cqr->refers)
+ return 0;
spin_lock_irq(&cqr->dq->lock);
req = (struct request *) cqr->callback_data;
blk_mq_requeue_request(req, false);