We won't have valid ring_fd, ring_file in task work. Grab files early.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
if (!sqe)
return 0;
- if (for_async || (req->flags & REQ_F_WORK_INITIALIZED)) {
+ if (io_op_defs[req->opcode].file_table) {
io_req_init_async(req);
+ ret = io_grab_files(req);
+ if (unlikely(ret))
+ return ret;
+ }
- if (io_op_defs[req->opcode].file_table) {
- ret = io_grab_files(req);
- if (unlikely(ret))
- return ret;
- }
-
+ if (for_async || (req->flags & REQ_F_WORK_INITIALIZED)) {
+ io_req_init_async(req);
io_req_work_grab_env(req, &io_op_defs[req->opcode]);
}