Lines Matching full:msg

59 	struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg);  in io_msg_ring_cleanup()  local
61 if (WARN_ON_ONCE(!msg->src_file)) in io_msg_ring_cleanup()
64 fput(msg->src_file); in io_msg_ring_cleanup()
65 msg->src_file = NULL; in io_msg_ring_cleanup()
97 const struct io_msg *msg, u32 *flags) in io_msg_ring_cqe_flags() argument
101 if (!(msg->flags & IORING_MSG_RING_FLAGS_PASS)) in io_msg_ring_cqe_flags()
104 *flags = msg->cqe_flags; in io_msg_ring_cqe_flags()
114 struct io_msg *msg) in io_msg_data_remote() argument
120 ret = io_msg_ring_cqe_flags(target_ctx, msg, &flags); in io_msg_data_remote()
128 io_msg_remote_post(target_ctx, target, msg->len, flags, msg->user_data); in io_msg_data_remote()
133 struct io_msg *msg, unsigned int issue_flags) in __io_msg_ring_data() argument
138 if (msg->src_fd || msg->flags & ~IORING_MSG_RING_FLAGS_PASS) in __io_msg_ring_data()
140 if (!(msg->flags & IORING_MSG_RING_FLAGS_PASS) && msg->dst_fd) in __io_msg_ring_data()
150 return io_msg_data_remote(target_ctx, msg); in __io_msg_ring_data()
152 ret = io_msg_ring_cqe_flags(target_ctx, msg, &flags); in __io_msg_ring_data()
161 if (io_post_aux_cqe(target_ctx, msg->user_data, msg->len, flags)) in __io_msg_ring_data()
171 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg); in io_msg_ring_data() local
173 return __io_msg_ring_data(target_ctx, msg, issue_flags); in io_msg_ring_data()
178 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg); in io_msg_grab_file() local
184 node = io_rsrc_node_lookup(&ctx->file_table.data, msg->src_fd); in io_msg_grab_file()
186 msg->src_file = io_slot_file(node); in io_msg_grab_file()
187 if (msg->src_file) in io_msg_grab_file()
188 get_file(msg->src_file); in io_msg_grab_file()
199 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg); in io_msg_install_complete() local
200 struct file *src_file = msg->src_file; in io_msg_install_complete()
206 ret = __io_fixed_fd_install(target_ctx, src_file, msg->dst_fd); in io_msg_install_complete()
210 msg->src_file = NULL; in io_msg_install_complete()
213 if (msg->flags & IORING_MSG_RING_CQE_SKIP) in io_msg_install_complete()
221 if (!io_post_aux_cqe(target_ctx, msg->user_data, ret, 0)) in io_msg_install_complete()
230 struct io_msg *msg = container_of(head, struct io_msg, tw); in io_msg_tw_fd_complete() local
231 struct io_kiocb *req = cmd_to_io_kiocb(msg); in io_msg_tw_fd_complete()
244 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg); in io_msg_fd_remote() local
247 init_task_work(&msg->tw, io_msg_tw_fd_complete); in io_msg_fd_remote()
248 if (task_work_add(task, &msg->tw, TWA_SIGNAL)) in io_msg_fd_remote()
257 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg); in io_msg_send_fd() local
260 if (msg->len) in io_msg_send_fd()
270 if (!msg->src_file) { in io_msg_send_fd()
281 static int __io_msg_ring_prep(struct io_msg *msg, const struct io_uring_sqe *sqe) in __io_msg_ring_prep() argument
286 msg->src_file = NULL; in __io_msg_ring_prep()
287 msg->user_data = READ_ONCE(sqe->off); in __io_msg_ring_prep()
288 msg->len = READ_ONCE(sqe->len); in __io_msg_ring_prep()
289 msg->cmd = READ_ONCE(sqe->addr); in __io_msg_ring_prep()
290 msg->src_fd = READ_ONCE(sqe->addr3); in __io_msg_ring_prep()
291 msg->dst_fd = READ_ONCE(sqe->file_index); in __io_msg_ring_prep()
292 msg->flags = READ_ONCE(sqe->msg_ring_flags); in __io_msg_ring_prep()
293 if (msg->flags & ~IORING_MSG_RING_MASK) in __io_msg_ring_prep()
306 struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg); in io_msg_ring() local
313 switch (msg->cmd) { in io_msg_ring()