Messages in this thread | | | Date | Fri, 7 Feb 2014 09:18:27 +0800 | From | Shaohua Li <> | Subject | Re: [PATCH 1/1] block: rework flush sequencing for blk-mq |
| |
On Thu, Jan 30, 2014 at 05:26:30AM -0800, Christoph Hellwig wrote: > Witch to using a preallocated flush_rq for blk-mq similar to what's done > with the old request path. This allows us to set up the request properly > with a tag from the actually allowed range and ->rq_disk as needed by > some drivers. To make life easier we also switch to dynamic allocation > of ->flush_rq for the old path. > > This effectively reverts most of > > "blk-mq: fix for flush deadlock" > > and > > "blk-mq: Don't reserve a tag for flush request"
Reusing the tag for flush request is considered before. The problem is driver need get a request from a tag, reusing tag breaks this. The possible solution is we provide a blk_mq_tag_to_request, and force driver uses it. And in this function, if tag equals to flush_rq tag, we return flush_request.
Thanks, Shaohua
| |