diff options
author | Stefan Roesch <shr@fb.com> | 2022-09-12 09:53:25 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-09-13 15:06:39 -0600 |
commit | 56f99b8d06ef1ed1c9730948f9f05ac2b930a20b (patch) | |
tree | a7ccff75d77a9c58846c02a07daa7126bfbdc7bc /block/blk-lib.c | |
parent | 745ed37277c5a7202180aa276c87db1362c90fe5 (diff) | |
download | linux-stable-56f99b8d06ef1ed1c9730948f9f05ac2b930a20b.tar.gz |
block: blk_queue_enter() / __bio_queue_enter() must return -EAGAIN for nowait
Today blk_queue_enter() and __bio_queue_enter() return -EBUSY for the
nowait code path. This is not correct: they should return -EAGAIN
instead.
This problem was detected by fio. The following command exposed the
above problem:
t/io_uring -p0 -d128 -b4096 -s32 -c32 -F1 -B0 -R0 -X1 -n24 -P1 -u1 -O0 /dev/ng0n1
By applying the patch, the retry case is handled correctly in the slow
path.
Signed-off-by: Stefan Roesch <shr@fb.com>
Fixes: bfd343aa1718 ("blk-mq: don't wait in blk_mq_queue_enter() if __GFP_WAIT isn't set")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-lib.c')
0 files changed, 0 insertions, 0 deletions