null_blk: add 'requeue' fault attribute
authorJens Axboe <axboe@kernel.dk>
Wed, 28 Feb 2018 16:18:57 +0000 (09:18 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 28 Feb 2018 19:23:35 +0000 (12:23 -0700)
commit24941b90e639df2bf467531601a15d792eaa6d6b
tree4bbd03d26cd2b5676dc390b9d0ea8abd38b49900
parent4ace53f1ed40a5cfee4bdd7614c8a8b2798227ad
null_blk: add 'requeue' fault attribute

Similarly to the support we have for testing/faking timeouts for
null_blk, this adds support for triggering a requeue condition.
Considering the issues around restart we've been seeing, this should be
a useful addition to the testing arsenal to ensure that we are handling
requeue conditions correctly.

This works for queue mode 1 (legacy request_fn based path) and 2 (blk-mq
path), as there's no good way to do requeue with a bio based driver.
This is similar to the timeout path. For the blk-mq path, we alternate
between passing back BLK_STS_RESOURCE and manually calling
blk_mq_requeue_request() in the driver. The former will hit the core
requeue path, while the latter exercises the IO scheduler requeue
path.

Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/null_blk.c