block: get rid of QUEUE_FLAG_REENTER
authorJens Axboe <jaxboe@fusionio.com>
Tue, 19 Apr 2011 11:32:46 +0000 (13:32 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Tue, 19 Apr 2011 11:32:46 +0000 (13:32 +0200)
commitc21e6beba8835d09bb80e34961430b13e60381c5
treecdf6f6d40130b95e641ab5db1de0f6ecc179054a
parent5f45c69589b7d2953584e6cd0b31e35dbe960ad0
block: get rid of QUEUE_FLAG_REENTER

We are currently using this flag to check whether it's safe
to call into ->request_fn(). If it is set, we punt to kblockd.
But we get a lot of false positives and excessive punts to
kblockd, which hurts performance.

The only real abuser of this infrastructure is SCSI. So export
the async queue run and convert SCSI over to use that. There's
room for improvement in that SCSI need not always use the async
call, but this fixes our performance issue and they can fix that
up in due time.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/blk-core.c
block/blk.h
drivers/scsi/scsi_lib.c
drivers/scsi/scsi_transport_fc.c
include/linux/blkdev.h