projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c457eed
)
io_uring/rw: allocate async data in io_prep_rw()
author
Pavel Begunkov
<asml.silence@gmail.com>
Mon, 24 Feb 2025 19:45:03 +0000
(19:45 +0000)
committer
Jens Axboe
<axboe@kernel.dk>
Tue, 25 Feb 2025 14:43:05 +0000
(07:43 -0700)
rw always allocates async_data, so instead of doing that deeper in prep
calls inside of io_prep_rw_setup(), be a bit more explicit and do that
early on in io_prep_rw().
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link:
https://lore.kernel.org/r/5ead621051bc3374d1e8d96f816454906a6afd71.1740425922.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/rw.c
patch
|
blob
|
blame
|
history
diff --git
a/io_uring/rw.c
b/io_uring/rw.c
index 22612a956e75a942193fd30214e22296bfb0a6b5..7efc2337c5a0cb512e2e36696a78b718e398102d 100644
(file)
--- a/
io_uring/rw.c
+++ b/
io_uring/rw.c
@@
-203,9
+203,6
@@
static int io_prep_rw_setup(struct io_kiocb *req, int ddir, bool do_import)
{
struct io_async_rw *rw;
- if (io_rw_alloc_async(req))
- return -ENOMEM;
-
if (!do_import || io_do_buffer_select(req))
return 0;
@@
-262,6
+259,9
@@
static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe,
u64 attr_type_mask;
int ret;
+ if (io_rw_alloc_async(req))
+ return -ENOMEM;
+
rw->kiocb.ki_pos = READ_ONCE(sqe->off);
/* used for fixed read/write too - just read unconditionally */
req->buf_index = READ_ONCE(sqe->buf_index);