block: drop custom queue draining used by scsi_transport_{iscsi|fc}
authorTejun Heo <tj@kernel.org>
Tue, 5 Jun 2012 03:40:54 +0000 (20:40 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 25 Jun 2012 09:53:48 +0000 (11:53 +0200)
commit86072d8112595ea1b6beeb33f578e7c2839e014e
treead49aefc355232e099c07c4a371b437e5241981f
parenta91a5ac6858fbf7477131e1210cb3e897b668e6f
block: drop custom queue draining used by scsi_transport_{iscsi|fc}

iscsi_remove_host() uses bsg_remove_queue() which implements custom
queue draining.  fc_bsg_remove() open-codes mostly identical logic.

The draining logic isn't correct in that blk_stop_queue() doesn't
prevent new requests from being queued - it just stops processing, so
nothing prevents new requests to be queued after the logic determines
that the queue is drained.

blk_cleanup_queue() now implements proper queue draining and these
custom draining logics aren't necessary.  Drop them and use
bsg_unregister_queue() + blk_cleanup_queue() instead.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: James Smart <james.smart@emulex.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bsg-lib.c
drivers/scsi/scsi_transport_fc.c
drivers/scsi/scsi_transport_iscsi.c
include/linux/bsg-lib.h