Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7652113c authored by Mike Christie's avatar Mike Christie Committed by Jens Axboe
Browse files

If the queue is dying then we only call the rq->end_io callout.


This leaves bios setup on the request, because the caller assumes when
the blk_execute_rq_nowait/blk_execute_rq call has completed that
the rq->bios have been cleaned up.

This patch has blk_execute_rq_nowait use __blk_end_request_all
to free bios and also call rq->end_io.

Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent adbe6991
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -68,9 +68,9 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk,
	spin_lock_irq(q->queue_lock);
	spin_lock_irq(q->queue_lock);


	if (unlikely(blk_queue_dying(q))) {
	if (unlikely(blk_queue_dying(q))) {
		rq->cmd_flags |= REQ_QUIET; 
		rq->errors = -ENXIO;
		rq->errors = -ENXIO;
		if (rq->end_io)
		__blk_end_request_all(rq, rq->errors);
			rq->end_io(rq, rq->errors);
		spin_unlock_irq(q->queue_lock);
		spin_unlock_irq(q->queue_lock);
		return;
		return;
	}
	}