blk-mq: don't disallow request merges for req->special being set
authorJens Axboe <axboe@kernel.dk>
Tue, 29 Oct 2013 18:11:47 +0000 (12:11 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 29 Oct 2013 18:11:47 +0000 (12:11 -0600)
commite7e245000110a7794de8f925b9edc06a9c852f80
treec774b4b9e7d7cdb59f3b4a237fd12c4e5eb8bc60
parent92f399c72af2d8cbb9d4f60e11d0d67ca738147f
blk-mq: don't disallow request merges for req->special being set

For blk-mq, if a driver has requested per-request payload data
to carry command structures, they are stuffed into req->special.
For an old style request based driver, req->special is used
for the same purpose but indicates that a per-driver request
structure has been prepared for the request already. So for the
old style driver, we do not merge such requests.

As most/all blk-mq drivers will use the payload feature, and
since we have no problem merging on these, make this check
dependent on whether it's a blk-mq enabled driver or not.

Reported-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-merge.c