aboutsummaryrefslogtreecommitdiff
path: root/block/blk-exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/blk-exec.c')
-rw-r--r--block/blk-exec.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/block/blk-exec.c b/block/blk-exec.c
index c3edf9dff56..f4d27b12c90 100644
--- a/block/blk-exec.c
+++ b/block/blk-exec.c
@@ -60,8 +60,12 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk,
rq->rq_disk = bd_disk;
rq->end_io = done;
+ /*
+ * don't check dying flag for MQ because the request won't
+ * be resued after dying flag is set
+ */
if (q->mq_ops) {
- blk_mq_insert_request(q, rq, true);
+ blk_mq_insert_request(rq, at_head, true, false);
return;
}
@@ -128,6 +132,11 @@ int blk_execute_rq(struct request_queue *q, struct gendisk *bd_disk,
if (rq->errors)
err = -EIO;
+ if (rq->sense == sense) {
+ rq->sense = NULL;
+ rq->sense_len = 0;
+ }
+
return err;
}
EXPORT_SYMBOL(blk_execute_rq);