From: Tejun Heo Date: Tue, 1 Nov 2005 08:23:49 +0000 (+0900) Subject: [PATCH] blk: fix dangling pointer access in __elv_add_request X-Git-Tag: v2.6.15-rc1~18^2~11 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca23509fbaac0ea662ab0e287bebb72f743f9e1f;p=pandora-kernel.git [PATCH] blk: fix dangling pointer access in __elv_add_request cfq's add_req_fn callback may invoke q->request_fn directly and depending on low-level driver used and timing, a queued request may be finished & deallocated before add_req_fn callback returns. So, __elv_add_request must not access rq after it's passed to add_req_fn callback. This patch moves rq_mergeable test above add_req_fn(). This may result in q->last_merge pointing to REQ_NOMERGE request if add_req_fn callback sets it but as RQ_NOMERGE is checked again when blk layer actually tries to merge requests, this does not cause any problem. Signed-off-by: Tejun Heo Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed