diff options
author | Konstantin Khlebnikov <khlebnikov@yandex-team.ru> | 2020-09-23 16:06:52 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-09-25 08:20:03 -0600 |
commit | 6abc49468eeaad2dd481779906aaa29605139087 (patch) | |
tree | bc4c7489f07e17a9b4328b6c135871811f541027 /drivers/md/dm.c | |
parent | 021a24460dc28e7412aecfae89f60e1847e685c0 (diff) | |
download | linux-6abc49468eeaad2dd481779906aaa29605139087.tar.gz |
dm: add support for REQ_NOWAIT and enable it for linear target
Add DM target feature flag DM_TARGET_NOWAIT which advertises that
target works with REQ_NOWAIT bios.
Add dm_table_supports_nowait() and update dm_table_set_restrictions()
to set/clear QUEUE_FLAG_NOWAIT accordingly.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/md/dm.c')
-rw-r--r-- | drivers/md/dm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 3dedd9cc4fb6..59b0687f9235 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1802,7 +1802,9 @@ static blk_qc_t dm_submit_bio(struct bio *bio) if (unlikely(test_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags))) { dm_put_live_table(md, srcu_idx); - if (!(bio->bi_opf & REQ_RAHEAD)) + if (bio->bi_opf & REQ_NOWAIT) + bio_wouldblock_error(bio); + else if (!(bio->bi_opf & REQ_RAHEAD)) queue_io(md, bio); else bio_io_error(bio); |