block: fix intermittent dm timeout based oops
Very rarely under stress testing of dm, oopses are occuring as something tampers with an old stack frame. This has been traced back to blk_abort_queue() leaving a timeout_list pointing to the stack. The reason is that sometimes blk_abort_request() won't delete the timer (if the request is marked as complete but before the timer has been removed, a small race window). Fix this by splicing back from the ususally empty list to the q->timeout_list. Signed-off-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
Showing
想要评论请 注册 或 登录