Commit 3e3876d3 authored by Ming Lei's avatar Ming Lei Committed by Jens Axboe

block: null_blk: end timed out poll request

When poll request is timed out, it is removed from the poll list,
but not completed, so the request is leaked, and never get chance
to complete.

Fix the issue by ending it in timeout handler.

Fixes: 0a593fbb ("null_blk: poll queue support")
Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20220413084836.1571995-1-ming.lei@redhat.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 8535c018
...@@ -1600,7 +1600,7 @@ static enum blk_eh_timer_return null_timeout_rq(struct request *rq, bool res) ...@@ -1600,7 +1600,7 @@ static enum blk_eh_timer_return null_timeout_rq(struct request *rq, bool res)
* Only fake timeouts need to execute blk_mq_complete_request() here. * Only fake timeouts need to execute blk_mq_complete_request() here.
*/ */
cmd->error = BLK_STS_TIMEOUT; cmd->error = BLK_STS_TIMEOUT;
if (cmd->fake_timeout) if (cmd->fake_timeout || hctx->type == HCTX_TYPE_POLL)
blk_mq_complete_request(rq); blk_mq_complete_request(rq);
return BLK_EH_DONE; return BLK_EH_DONE;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment