Lines Matching refs:req

58 void io_msg_ring_cleanup(struct io_kiocb *req)
60 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
76 static int io_msg_exec_remote(struct io_kiocb *req, task_work_func_t func)
78 struct io_ring_ctx *ctx = req->file->private_data;
79 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
95 struct io_kiocb *req = cmd_to_io_kiocb(msg);
96 struct io_ring_ctx *target_ctx = req->file->private_data;
122 req_set_fail(req);
123 io_req_queue_tw_complete(req, ret);
126 static int io_msg_ring_data(struct io_kiocb *req, unsigned int issue_flags)
128 struct io_ring_ctx *target_ctx = req->file->private_data;
129 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
141 return io_msg_exec_remote(req, io_msg_tw_complete);
160 static struct file *io_msg_grab_file(struct io_kiocb *req, unsigned int issue_flags)
162 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
163 struct io_ring_ctx *ctx = req->ctx;
178 static int io_msg_install_complete(struct io_kiocb *req, unsigned int issue_flags)
180 struct io_ring_ctx *target_ctx = req->file->private_data;
181 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
193 req->flags &= ~REQ_F_NEED_CLEANUP;
213 struct io_kiocb *req = cmd_to_io_kiocb(msg);
217 ret = io_msg_install_complete(req, IO_URING_F_UNLOCKED);
219 req_set_fail(req);
220 io_req_queue_tw_complete(req, ret);
223 static int io_msg_send_fd(struct io_kiocb *req, unsigned int issue_flags)
225 struct io_ring_ctx *target_ctx = req->file->private_data;
226 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
227 struct io_ring_ctx *ctx = req->ctx;
237 src_file = io_msg_grab_file(req, issue_flags);
241 req->flags |= REQ_F_NEED_CLEANUP;
245 return io_msg_exec_remote(req, io_msg_tw_fd_complete);
246 return io_msg_install_complete(req, issue_flags);
249 int io_msg_ring_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
251 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
269 int io_msg_ring(struct io_kiocb *req, unsigned int issue_flags)
271 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);
275 if (!io_is_uring_fops(req->file))
280 ret = io_msg_ring_data(req, issue_flags);
283 ret = io_msg_send_fd(req, issue_flags);
294 req_set_fail(req);
296 io_req_set_res(req, ret, 0);