Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
block: Don't access request after it might be freed
After we've done __elv_add_request() and __blk_run_queue() in blk_execute_rq_nowait(), the request might finish and be freed immediately. Therefore checking if the type is REQ_TYPE_PM_RESUME isn't safe afterwards, because if it isn't, rq might be gone. Instead, check beforehand and stash the result in a temporary. This fixes crashes in blk_execute_rq_nowait() I get occasionally when running with lots of memory debugging options enabled -- I think this race is usually harmless because the window for rq to be reallocated is so small. Signed-off-by: Roland Dreier <[email protected]> Cc: [email protected] Signed-off-by: Jens Axboe <[email protected]>
- Loading branch information