summaryrefslogtreecommitdiff
path: root/block/bsg-lib.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2018-10-26 20:26:25 +0300
committerJens Axboe <axboe@kernel.dk>2018-11-07 23:42:32 +0300
commitaae3b069d5ce865ca5ef2902c2a22cef7ab4f3a2 (patch)
treedd7f00edf9c6503b020b30d6307afec79641af0d /block/bsg-lib.c
parent583d6535cb9dadfd2678acfad27231076eeccf8e (diff)
downloadlinux-aae3b069d5ce865ca5ef2902c2a22cef7ab4f3a2.tar.xz
bsg: pass in desired timeout handler
This will ease in the conversion to blk-mq, where we can't set a timeout handler after queue init. Cc: Johannes Thumshirn <jthumshirn@suse.de> Cc: linux-scsi@vger.kernel.org Reviewed-by: Hannes Reinecke <hare@suse.com> Tested-by: Benjamin Block <bblock@linux.vnet.ibm.com> Tested-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/bsg-lib.c')
-rw-r--r--block/bsg-lib.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/block/bsg-lib.c b/block/bsg-lib.c
index f3501cdaf1a6..1da011ec04e6 100644
--- a/block/bsg-lib.c
+++ b/block/bsg-lib.c
@@ -304,7 +304,7 @@ static void bsg_exit_rq(struct request_queue *q, struct request *req)
* @dd_job_size: size of LLD data needed for each job
*/
struct request_queue *bsg_setup_queue(struct device *dev, const char *name,
- bsg_job_fn *job_fn, int dd_job_size)
+ bsg_job_fn *job_fn, rq_timed_out_fn *timeout, int dd_job_size)
{
struct request_queue *q;
int ret;
@@ -327,6 +327,7 @@ struct request_queue *bsg_setup_queue(struct device *dev, const char *name,
blk_queue_flag_set(QUEUE_FLAG_BIDI, q);
blk_queue_softirq_done(q, bsg_softirq_done);
blk_queue_rq_timeout(q, BLK_DEFAULT_SG_TIMEOUT);
+ blk_queue_rq_timed_out(q, timeout);
ret = bsg_register_queue(q, dev, name, &bsg_transport_ops);
if (ret) {