Commit 230d50d
committed
io_uring: move reissue into regular IO path
It's non-obvious how retry is done for block backed files, when it happens
off the kiocb done path. It also makes it tricky to deal with the iov_iter
handling.
Just mark the req as needing a reissue, and handling it from the
submission path instead. This makes it directly obvious that we're not
re-importing the iovec from userspace past the submit point, and it means
that we can just reuse our usual -EAGAIN retry path from the read/write
handling.
At some point in the future, we'll gain the ability to always reliably
return -EAGAIN through the stack. A previous attempt on the block side
didn't pan out and got reverted, hence the need to check for this
information out-of-band right now.
Signed-off-by: Jens Axboe <axboe@kernel.dk>1 parent 07204f2 commit 230d50d
1 file changed
+13
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
697 | 697 | | |
698 | 698 | | |
699 | 699 | | |
| 700 | + | |
700 | 701 | | |
701 | 702 | | |
702 | 703 | | |
| |||
740 | 741 | | |
741 | 742 | | |
742 | 743 | | |
| 744 | + | |
| 745 | + | |
743 | 746 | | |
744 | 747 | | |
745 | 748 | | |
| |||
2503 | 2506 | | |
2504 | 2507 | | |
2505 | 2508 | | |
2506 | | - | |
| 2509 | + | |
| 2510 | + | |
2507 | 2511 | | |
| 2512 | + | |
2508 | 2513 | | |
2509 | 2514 | | |
2510 | 2515 | | |
| |||
3283 | 3288 | | |
3284 | 3289 | | |
3285 | 3290 | | |
3286 | | - | |
3287 | | - | |
3288 | | - | |
| 3291 | + | |
3289 | 3292 | | |
3290 | 3293 | | |
3291 | 3294 | | |
| |||
3295 | 3298 | | |
3296 | 3299 | | |
3297 | 3300 | | |
| 3301 | + | |
| 3302 | + | |
3298 | 3303 | | |
3299 | 3304 | | |
3300 | 3305 | | |
| |||
3407 | 3412 | | |
3408 | 3413 | | |
3409 | 3414 | | |
| 3415 | + | |
| 3416 | + | |
| 3417 | + | |
3410 | 3418 | | |
3411 | 3419 | | |
3412 | 3420 | | |
| |||
6160 | 6168 | | |
6161 | 6169 | | |
6162 | 6170 | | |
| 6171 | + | |
6163 | 6172 | | |
6164 | 6173 | | |
6165 | 6174 | | |
| |||
0 commit comments