Message ID | 3503f837-0958-0a55-ab7b-d4f1c7131179@kernel.dk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
On Tue, May 19, 2020 at 04:16:45PM -0600, Jens Axboe wrote: > > > > -------- Forwarded Message -------- > Subject: [RFC 2/2] io_uring: mark REQ_NOWAIT for a non-mq queue as unspported > Date: Tue, 19 May 2020 14:52:50 -0700 > From: Bijan Mottahedeh <bijan.mottahedeh@oracle.com> > To: axboe@kernel.dk > CC: io-uring@vger.kernel.org > > Mark a REQ_NOWAIT request for a non-mq queue as unspported instead of > retryable since otherwise the io_uring layer will keep resubmitting > the request. Someone needs to audit if this translates into the right errors message for the syscalls, as they eventually need to return -EAGAIN to userspace.
diff --git a/block/blk-core.c b/block/blk-core.c index 5847993..3807140 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -962,14 +962,10 @@ static inline blk_status_t blk_check_zone_append(struct request_queue *q, } /* - * Non-mq queues do not honor REQ_NOWAIT, so complete a bio - * with BLK_STS_AGAIN status in order to catch -EAGAIN and - * to give a chance to the caller to repeat request gracefully. + * Non-mq queues do not honor REQ_NOWAIT, return -EOPNOTSUPP. */ - if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q)) { - status = BLK_STS_AGAIN; - goto end_io; - } + if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q)) + goto not_supported; if (should_fail_bio(bio)) goto end_io;