io_kiocb
struct io_kiocb *head;
struct io_kiocb *last;
struct io_kiocb *req;
static inline struct io_kiocb *cmd_to_io_kiocb(void *ptr)
struct io_kiocb *link;
TP_PROTO(struct io_kiocb *req, int fd),
TP_PROTO(struct io_kiocb *req, bool hashed),
TP_PROTO(struct io_kiocb *req),
TP_PROTO(struct io_kiocb *req, struct io_kiocb *target_req),
TP_PROTO(struct io_kiocb *req, struct io_kiocb *link),
TP_PROTO(struct io_kiocb *req),
TP_PROTO(struct io_kiocb *req, int mask, int events),
TP_PROTO(struct io_kiocb *req, int mask),
TP_PROTO(const struct io_uring_sqe *sqe, struct io_kiocb *req, int error),
int io_madvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_madvise(struct io_kiocb *req, unsigned int issue_flags)
int io_fadvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_fadvise(struct io_kiocb *req, unsigned int issue_flags)
int io_madvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_madvise(struct io_kiocb *req, unsigned int issue_flags);
int io_fadvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_fadvise(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *req)
struct io_kiocb *req)
struct io_kiocb *req)
struct io_kiocb *req)
int __io_uring_run_bpf_filters(struct io_bpf_filter __rcu **filters, struct io_kiocb *req);
int io_async_cancel_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_async_cancel(struct io_kiocb *req, unsigned int issue_flags)
bool (*cancel)(struct io_kiocb *))
struct io_kiocb *req;
bool (*cancel)(struct io_kiocb *))
struct io_kiocb *req;
bool io_cancel_req_match(struct io_kiocb *req, struct io_cancel_data *cd)
static bool io_match_linked(struct io_kiocb *head)
struct io_kiocb *req;
bool io_match_task_safe(struct io_kiocb *head, struct io_uring_task *tctx,
struct io_kiocb *req = container_of(work, struct io_kiocb, work);
struct io_kiocb *req = container_of(work, struct io_kiocb, work);
struct io_kiocb *req = container_of(work, struct io_kiocb, work);
int io_async_cancel_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_async_cancel(struct io_kiocb *req, unsigned int issue_flags);
bool io_cancel_req_match(struct io_kiocb *req, struct io_cancel_data *cd);
bool io_match_task_safe(struct io_kiocb *head, struct io_uring_task *tctx,
bool (*cancel)(struct io_kiocb *));
bool (*cancel)(struct io_kiocb *));
static inline bool io_cancel_match_sequence(struct io_kiocb *req, int sequence)
int io_epoll_ctl_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_epoll_ctl(struct io_kiocb *req, unsigned int issue_flags)
int io_epoll_wait_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_epoll_wait(struct io_kiocb *req, unsigned int issue_flags)
int io_epoll_ctl_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_epoll_ctl(struct io_kiocb *req, unsigned int issue_flags);
int io_epoll_wait_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_epoll_wait(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *req;
int io_fixed_fd_install(struct io_kiocb *req, unsigned int issue_flags,
int io_fixed_fd_install(struct io_kiocb *req, unsigned int issue_flags,
int io_unlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_unlinkat(struct io_kiocb *req, unsigned int issue_flags)
void io_unlinkat_cleanup(struct io_kiocb *req)
int io_mkdirat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_mkdirat(struct io_kiocb *req, unsigned int issue_flags)
void io_mkdirat_cleanup(struct io_kiocb *req)
int io_symlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_symlinkat(struct io_kiocb *req, unsigned int issue_flags)
int io_linkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_linkat(struct io_kiocb *req, unsigned int issue_flags)
void io_link_cleanup(struct io_kiocb *req)
int io_renameat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_renameat(struct io_kiocb *req, unsigned int issue_flags)
void io_renameat_cleanup(struct io_kiocb *req)
int io_mkdirat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_mkdirat(struct io_kiocb *req, unsigned int issue_flags);
void io_mkdirat_cleanup(struct io_kiocb *req);
int io_symlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_symlinkat(struct io_kiocb *req, unsigned int issue_flags);
int io_linkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_linkat(struct io_kiocb *req, unsigned int issue_flags);
void io_link_cleanup(struct io_kiocb *req);
int io_renameat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_renameat(struct io_kiocb *req, unsigned int issue_flags);
void io_renameat_cleanup(struct io_kiocb *req);
int io_unlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_unlinkat(struct io_kiocb *req, unsigned int issue_flags);
void io_unlinkat_cleanup(struct io_kiocb *req);
int io_futex_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
struct io_kiocb *req = q->wake_data;
int io_futexv_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
struct io_kiocb *req = ifd->req;
int io_futexv_wait(struct io_kiocb *req, unsigned int issue_flags)
struct io_kiocb *req;
int io_futex_wait(struct io_kiocb *req, unsigned int issue_flags)
int io_futex_wake(struct io_kiocb *req, unsigned int issue_flags)
struct io_kiocb *req = tw_req.req;
struct io_kiocb *req = tw_req.req;
static bool __io_futex_cancel(struct io_kiocb *req)
int io_futex_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_futexv_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_futex_wait(struct io_kiocb *req, unsigned int issue_flags);
int io_futexv_wait(struct io_kiocb *req, unsigned int issue_flags);
int io_futex_wake(struct io_kiocb *req, unsigned int issue_flags);
__cold void io_free_req(struct io_kiocb *req)
static void __io_req_find_next_prep(struct io_kiocb *req)
static inline struct io_kiocb *io_req_find_next(struct io_kiocb *req)
struct io_kiocb *nxt;
struct io_kiocb *req = tw_req.req;
struct io_kiocb *req = tw_req.req;
void io_req_task_queue_fail(struct io_kiocb *req, int ret)
void io_req_task_queue(struct io_kiocb *req)
void io_queue_next(struct io_kiocb *req)
struct io_kiocb *nxt = io_req_find_next(req);
static inline void io_req_put_rsrc_nodes(struct io_kiocb *req)
struct io_kiocb *req = container_of(node, struct io_kiocb,
struct io_kiocb *req = container_of(node, struct io_kiocb,
static void io_queue_sqe(struct io_kiocb *req, unsigned int extra_flags);
static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags)
struct io_kiocb *list_req;
list_req = list_first_entry(&ctx->iopoll_list, struct io_kiocb, iopoll_node);
static __cold void io_drain_req(struct io_kiocb *req)
static bool io_assign_file(struct io_kiocb *req, const struct io_issue_def *def,
static inline int __io_issue_sqe(struct io_kiocb *req,
struct io_kiocb *link = NULL;
static int io_issue_sqe(struct io_kiocb *req, unsigned int issue_flags)
int io_poll_issue(struct io_kiocb *req, io_tw_token_t tw)
struct io_kiocb *req = container_of(work, struct io_kiocb, work);
struct io_kiocb *nxt = NULL;
struct io_kiocb *req = container_of(work, struct io_kiocb, work);
static void io_poison_cached_req(struct io_kiocb *req)
inline struct file *io_file_get_fixed(struct io_kiocb *req, int fd,
struct file *io_file_get_normal(struct io_kiocb *req, int fd)
static int io_req_sqe_copy(struct io_kiocb *req, unsigned int issue_flags)
static void io_queue_async(struct io_kiocb *req, unsigned int issue_flags, int ret)
void io_poison_req(struct io_kiocb *req)
static inline void io_queue_sqe(struct io_kiocb *req, unsigned int extra_flags)
static void io_queue_sqe_fallback(struct io_kiocb *req)
struct io_kiocb *req,
struct io_kiocb *head = ctx->submit_state.link.head;
static __cold int io_init_fail_req(struct io_kiocb *req, int err)
static inline void req_fail_link_node(struct io_kiocb *req, int res)
static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req,
static inline void io_req_add_to_cache(struct io_kiocb *req, struct io_ring_ctx *ctx)
struct io_kiocb *req, int ret)
struct io_kiocb *head = link->head;
static inline int io_submit_sqe(struct io_ring_ctx *ctx, struct io_kiocb *req,
struct io_kiocb *req;
struct io_kiocb *req;
static void io_clean_op(struct io_kiocb *req)
.useroffset = offsetof(struct io_kiocb, cmd.data),
.usersize = sizeof_field(struct io_kiocb, cmd.data),
.freeptr_offset = offsetof(struct io_kiocb, work),
BUILD_BUG_ON(__REQ_F_LAST_BIT > 8 * sizeof_field(struct io_kiocb, flags));
req_cachep = kmem_cache_create("io_kiocb", sizeof(struct io_kiocb), &kmem_args,
inline void io_req_track_inflight(struct io_kiocb *req)
static struct io_kiocb *__io_prep_linked_timeout(struct io_kiocb *req)
static void io_prep_async_work(struct io_kiocb *req)
static void io_prep_async_link(struct io_kiocb *req)
struct io_kiocb *cur;
static void io_queue_iowq(struct io_kiocb *req)
void io_req_queue_iowq(struct io_kiocb *req)
unsigned io_linked_nr(struct io_kiocb *req)
struct io_kiocb *tmp;
static inline void io_put_task(struct io_kiocb *req)
bool io_req_post_cqe(struct io_kiocb *req, s32 res, u32 cflags)
bool io_req_post_cqe32(struct io_kiocb *req, struct io_uring_cqe cqe[2])
static void io_req_complete_post(struct io_kiocb *req, unsigned issue_flags)
void io_req_defer_failed(struct io_kiocb *req, s32 res)
struct io_kiocb *req;
void io_req_defer_failed(struct io_kiocb *req, s32 res);
bool io_req_post_cqe(struct io_kiocb *req, s32 res, u32 cflags);
bool io_req_post_cqe32(struct io_kiocb *req, struct io_uring_cqe src_cqe[2]);
unsigned io_linked_nr(struct io_kiocb *req);
void io_req_track_inflight(struct io_kiocb *req);
struct file *io_file_get_normal(struct io_kiocb *req, int fd);
struct file *io_file_get_fixed(struct io_kiocb *req, int fd,
void io_req_task_queue(struct io_kiocb *req);
void io_req_task_queue_fail(struct io_kiocb *req, int ret);
void io_req_queue_iowq(struct io_kiocb *req);
int io_poll_issue(struct io_kiocb *req, io_tw_token_t tw);
void io_free_req(struct io_kiocb *req);
void io_queue_next(struct io_kiocb *req);
void io_poison_req(struct io_kiocb *req);
struct io_kiocb *req)
static inline void req_set_fail(struct io_kiocb *req)
static inline void io_req_set_res(struct io_kiocb *req, s32 res, u32 cflags)
static inline void io_req_set_res32(struct io_kiocb *req, s32 res, u32 cflags,
struct io_kiocb *req)
static inline bool req_has_async_data(struct io_kiocb *req)
static inline void io_req_async_data_clear(struct io_kiocb *req,
static inline void io_req_async_data_free(struct io_kiocb *req)
static inline void io_put_file(struct io_kiocb *req)
static inline void io_req_complete_defer(struct io_kiocb *req)
static inline struct io_kiocb *io_extract_req(struct io_ring_ctx *ctx)
struct io_kiocb *req;
req = container_of(ctx->submit_state.free_list.next, struct io_kiocb, comp_list);
static inline bool io_alloc_req(struct io_ring_ctx *ctx, struct io_kiocb **req)
static inline void io_req_queue_tw_complete(struct io_kiocb *req, s32 res)
static inline bool io_file_can_poll(struct io_kiocb *req)
static inline bool io_is_uring_cmd(const struct io_kiocb *req)
bool io_kbuf_recycle_legacy(struct io_kiocb *req, unsigned issue_flags)
static void __user *io_provided_buffer_select(struct io_kiocb *req, size_t *len,
static int io_provided_buffers_select(struct io_kiocb *req, size_t *len,
static bool io_should_commit(struct io_kiocb *req, unsigned int issue_flags)
static struct io_br_sel io_ring_buffer_select(struct io_kiocb *req, size_t *len,
struct io_br_sel io_buffer_select(struct io_kiocb *req, size_t *len,
static int io_ring_buffers_peek(struct io_kiocb *req, struct buf_sel_arg *arg,
int io_buffers_select(struct io_kiocb *req, struct buf_sel_arg *arg,
int io_buffers_peek(struct io_kiocb *req, struct buf_sel_arg *arg,
static inline bool __io_put_kbuf_ring(struct io_kiocb *req,
unsigned int __io_put_kbufs(struct io_kiocb *req, struct io_buffer_list *bl,
int io_remove_buffers_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_provide_buffers_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static int __io_manage_buffers_legacy(struct io_kiocb *req,
int io_manage_buffers_legacy(struct io_kiocb *req, unsigned int issue_flags)
bool io_kbuf_commit(struct io_kiocb *req,
void io_kbuf_drop_legacy(struct io_kiocb *req)
static inline bool io_do_buffer_select(struct io_kiocb *req)
static inline bool io_kbuf_recycle(struct io_kiocb *req, struct io_buffer_list *bl,
static inline unsigned int io_put_kbuf(struct io_kiocb *req, int len,
static inline unsigned int io_put_kbufs(struct io_kiocb *req, int len,
struct io_br_sel io_buffer_select(struct io_kiocb *req, size_t *len,
int io_buffers_select(struct io_kiocb *req, struct buf_sel_arg *arg,
int io_buffers_peek(struct io_kiocb *req, struct buf_sel_arg *arg,
int io_remove_buffers_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_provide_buffers_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_manage_buffers_legacy(struct io_kiocb *req, unsigned int issue_flags);
bool io_kbuf_recycle_legacy(struct io_kiocb *req, unsigned issue_flags);
void io_kbuf_drop_legacy(struct io_kiocb *req);
unsigned int __io_put_kbufs(struct io_kiocb *req, struct io_buffer_list *bl,
bool io_kbuf_commit(struct io_kiocb *req,
static inline bool io_kbuf_recycle_ring(struct io_kiocb *req,
struct io_kiocb *target;
static int io_msg_ring_data(struct io_kiocb *req, unsigned int issue_flags)
static int io_msg_grab_file(struct io_kiocb *req, unsigned int issue_flags)
static int io_msg_install_complete(struct io_kiocb *req, unsigned int issue_flags)
struct io_kiocb *req = cmd_to_io_kiocb(msg);
static int io_msg_fd_remote(struct io_kiocb *req)
static int io_msg_send_fd(struct io_kiocb *req, unsigned int issue_flags)
int io_msg_ring_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_msg_ring(struct io_kiocb *req, unsigned int issue_flags)
void io_msg_ring_cleanup(struct io_kiocb *req)
struct io_kiocb *req = tw_req.req;
static void io_msg_remote_post(struct io_ring_ctx *ctx, struct io_kiocb *req,
int io_msg_ring_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_msg_ring(struct io_kiocb *req, unsigned int issue_flags);
void io_msg_ring_cleanup(struct io_kiocb *req);
static inline void io_napi_add(struct io_kiocb *req)
static inline void io_napi_add(struct io_kiocb *req)
int io_recvmsg(struct io_kiocb *req, unsigned int issue_flags)
static int io_recv_buf_select(struct io_kiocb *req, struct io_async_msghdr *kmsg,
int io_recv(struct io_kiocb *req, unsigned int issue_flags)
int io_shutdown_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_recvzc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_recvzc(struct io_kiocb *req, unsigned int issue_flags)
void io_send_zc_cleanup(struct io_kiocb *req)
int io_shutdown(struct io_kiocb *req, unsigned int issue_flags)
int io_send_zc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
struct io_kiocb *notif;
static int io_send_zc_import(struct io_kiocb *req,
struct io_kiocb *notif = sr->notif;
int io_sendmsg_zc(struct io_kiocb *req, unsigned int issue_flags)
void io_sendrecv_fail(struct io_kiocb *req)
int io_accept_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_accept(struct io_kiocb *req, unsigned int issue_flags)
static void io_netmsg_recycle(struct io_kiocb *req, unsigned int issue_flags)
void io_socket_bpf_populate(struct io_uring_bpf_ctx *bctx, struct io_kiocb *req)
void io_connect_bpf_populate(struct io_uring_bpf_ctx *bctx, struct io_kiocb *req)
int io_socket_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_socket(struct io_kiocb *req, unsigned int issue_flags)
int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_connect(struct io_kiocb *req, unsigned int issue_flags)
static struct io_async_msghdr *io_msg_alloc_async(struct io_kiocb *req)
int io_bind_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_bind(struct io_kiocb *req, unsigned int issue_flags)
int io_listen_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_listen(struct io_kiocb *req, unsigned int issue_flags)
static inline void io_mshot_prep_retry(struct io_kiocb *req,
static int io_net_import_vec(struct io_kiocb *req, struct io_async_msghdr *iomsg,
static int io_compat_msg_copy_hdr(struct io_kiocb *req,
static int io_msg_copy_hdr(struct io_kiocb *req, struct io_async_msghdr *iomsg,
void io_sendmsg_recvmsg_cleanup(struct io_kiocb *req)
static int io_send_setup(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static int io_sendmsg_setup(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_sendmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static void io_req_msg_cleanup(struct io_kiocb *req,
static int io_net_kbuf_recyle(struct io_kiocb *req, struct io_buffer_list *bl,
static inline bool io_send_finish(struct io_kiocb *req,
int io_sendmsg(struct io_kiocb *req, unsigned int issue_flags)
static int io_send_select_buffer(struct io_kiocb *req, unsigned int issue_flags,
int io_send(struct io_kiocb *req, unsigned int issue_flags)
static int io_recvmsg_mshot_prep(struct io_kiocb *req,
static int io_recvmsg_copy_hdr(struct io_kiocb *req,
static int io_recvmsg_prep_setup(struct io_kiocb *req)
int io_recvmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
struct io_kiocb *notif;
static inline bool io_recv_finish(struct io_kiocb *req,
int io_shutdown_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_shutdown(struct io_kiocb *req, unsigned int issue_flags);
void io_sendmsg_recvmsg_cleanup(struct io_kiocb *req);
int io_sendmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_sendmsg(struct io_kiocb *req, unsigned int issue_flags);
int io_send(struct io_kiocb *req, unsigned int issue_flags);
int io_recvmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_recvmsg(struct io_kiocb *req, unsigned int issue_flags);
int io_recv(struct io_kiocb *req, unsigned int issue_flags);
void io_sendrecv_fail(struct io_kiocb *req);
int io_accept_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_accept(struct io_kiocb *req, unsigned int issue_flags);
int io_socket_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_socket(struct io_kiocb *req, unsigned int issue_flags);
void io_socket_bpf_populate(struct io_uring_bpf_ctx *bctx, struct io_kiocb *req);
void io_connect_bpf_populate(struct io_uring_bpf_ctx *bctx, struct io_kiocb *req);
int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_connect(struct io_kiocb *req, unsigned int issue_flags);
int io_sendmsg_zc(struct io_kiocb *req, unsigned int issue_flags);
int io_send_zc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
void io_send_zc_cleanup(struct io_kiocb *req);
int io_bind_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_bind(struct io_kiocb *req, unsigned int issue_flags);
int io_listen_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_listen(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *req)
struct io_kiocb *req)
int io_nop_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_nop(struct io_kiocb *req, unsigned int issue_flags)
int io_nop_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_nop(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx)
struct io_kiocb *notif;
struct io_kiocb *notif = tw_req.req;
struct io_kiocb *notif = cmd_to_io_kiocb(nd);
struct io_kiocb *prev_notif, *notif;
struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx);
static inline struct io_notif_data *io_notif_to_data(struct io_kiocb *notif)
static inline void io_notif_flush(struct io_kiocb *notif)
static inline int io_notif_account_mem(struct io_kiocb *notif, unsigned len)
static int io_no_issue(struct io_kiocb *req, unsigned int issue_flags)
static __maybe_unused int io_eopnotsupp_prep(struct io_kiocb *kiocb,
int (*issue)(struct io_kiocb *, unsigned int);
int (*prep)(struct io_kiocb *, const struct io_uring_sqe *);
void (*filter_populate)(struct io_uring_bpf_ctx *, struct io_kiocb *);
void (*sqe_copy)(struct io_kiocb *);
void (*cleanup)(struct io_kiocb *);
void (*fail)(struct io_kiocb *);
int io_openat2_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_openat2(struct io_kiocb *req, unsigned int issue_flags)
int io_openat(struct io_kiocb *req, unsigned int issue_flags)
void io_open_cleanup(struct io_kiocb *req)
static inline int io_close_fixed(struct io_kiocb *req, unsigned int issue_flags)
int io_close_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_close(struct io_kiocb *req, unsigned int issue_flags)
int io_install_fixed_fd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_install_fixed_fd(struct io_kiocb *req, unsigned int issue_flags)
int io_pipe_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static int io_pipe_fixed(struct io_kiocb *req, struct file **files,
static int io_pipe_fd(struct io_kiocb *req, struct file **files)
int io_pipe(struct io_kiocb *req, unsigned int issue_flags)
static int __io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
void io_openat_bpf_populate(struct io_uring_bpf_ctx *bctx, struct io_kiocb *req)
int io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
void io_open_cleanup(struct io_kiocb *req);
void io_openat_bpf_populate(struct io_uring_bpf_ctx *bctx, struct io_kiocb *req);
int io_openat2_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_openat2(struct io_kiocb *req, unsigned int issue_flags);
int io_close_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_close(struct io_kiocb *req, unsigned int issue_flags);
int io_pipe_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_pipe(struct io_kiocb *req, unsigned int issue_flags);
int io_install_fixed_fd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_install_fixed_fd(struct io_kiocb *req, unsigned int issue_flags);
int io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_openat(struct io_kiocb *req, unsigned int issue_flags);
static void io_poll_mark_cancelled(struct io_kiocb *req)
static struct io_poll *io_poll_get_double(struct io_kiocb *req)
static struct io_poll *io_poll_get_single(struct io_kiocb *req)
static void io_poll_req_insert(struct io_kiocb *req)
static void io_poll_remove_entries(struct io_kiocb *req)
static void __io_poll_execute(struct io_kiocb *req, int mask)
static inline void io_poll_execute(struct io_kiocb *req, int res)
static int io_poll_check_events(struct io_kiocb *req, io_tw_token_t tw)
struct io_kiocb *req = tw_req.req;
struct io_kiocb *req;
static void io_poll_cancel_req(struct io_kiocb *req)
static __cold int io_pollfree_wake(struct io_kiocb *req, struct io_poll *poll)
struct io_kiocb *req = wqe_to_req(wait);
static bool io_poll_double_prepare(struct io_kiocb *req)
struct io_kiocb *req = pt->req;
static bool io_poll_can_finish_inline(struct io_kiocb *req,
static void io_poll_add_hash(struct io_kiocb *req, unsigned int issue_flags)
static int __io_arm_poll_handler(struct io_kiocb *req,
static inline struct io_kiocb *wqe_to_req(struct wait_queue_entry *wqe)
return (struct io_kiocb *)(priv & ~IO_WQE_F_DOUBLE);
static struct async_poll *io_req_alloc_apoll(struct io_kiocb *req,
int io_arm_apoll(struct io_kiocb *req, unsigned issue_flags, __poll_t mask)
int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags)
static bool io_poll_get_ownership_slowpath(struct io_kiocb *req)
struct io_kiocb *req;
static struct io_kiocb *io_poll_find(struct io_ring_ctx *ctx, bool poll_only,
struct io_kiocb *req;
static struct io_kiocb *io_poll_file_find(struct io_ring_ctx *ctx,
struct io_kiocb *req;
static int io_poll_disarm(struct io_kiocb *req)
struct io_kiocb *req;
int io_poll_remove_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_poll_add_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_poll_add(struct io_kiocb *req, unsigned int issue_flags)
int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags)
struct io_kiocb *preq;
static inline bool io_poll_get_ownership(struct io_kiocb *req)
static inline void io_poll_multishot_retry(struct io_kiocb *req)
int io_poll_add_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_poll_add(struct io_kiocb *req, unsigned int issue_flags);
int io_poll_remove_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags);
int io_arm_apoll(struct io_kiocb *req, unsigned issue_flags, __poll_t mask);
int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags);
static inline bool req_ref_inc_not_zero(struct io_kiocb *req)
static inline bool req_ref_put_and_test_atomic(struct io_kiocb *req)
static inline bool req_ref_put_and_test(struct io_kiocb *req)
static inline void req_ref_get(struct io_kiocb *req)
static inline void req_ref_put(struct io_kiocb *req)
static inline void __io_req_set_refcount(struct io_kiocb *req, int nr)
static inline void io_req_set_refcount(struct io_kiocb *req)
inline struct io_rsrc_node *io_find_buf_node(struct io_kiocb *req,
int io_import_reg_buf(struct io_kiocb *req, struct iov_iter *iter,
struct io_kiocb *req, struct iou_vec *vec,
int io_prep_reg_iovec(struct io_kiocb *req, struct iou_vec *iv,
int io_files_update_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static int io_files_update_with_index_alloc(struct io_kiocb *req,
int io_files_update(struct io_kiocb *req, unsigned int issue_flags)
int io_files_update(struct io_kiocb *req, unsigned int issue_flags);
int io_files_update_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
struct io_rsrc_node *io_find_buf_node(struct io_kiocb *req,
int io_import_reg_buf(struct io_kiocb *req, struct iov_iter *iter,
struct io_kiocb *req, struct iou_vec *vec,
int io_prep_reg_iovec(struct io_kiocb *req, struct iou_vec *iv,
int io_read(struct io_kiocb *req, unsigned int issue_flags)
int io_read_mshot(struct io_kiocb *req, unsigned int issue_flags)
static int __io_import_rw_buffer(int ddir, struct io_kiocb *req,
static bool io_kiocb_start_write(struct io_kiocb *req, struct kiocb *kiocb)
int io_write(struct io_kiocb *req, unsigned int issue_flags)
int io_read_fixed(struct io_kiocb *req, unsigned int issue_flags)
int io_write_fixed(struct io_kiocb *req, unsigned int issue_flags)
void io_rw_fail(struct io_kiocb *req)
static int io_uring_classic_poll(struct io_kiocb *req, struct io_comp_batch *iob,
static u64 io_hybrid_iopoll_delay(struct io_ring_ctx *ctx, struct io_kiocb *req)
static int io_uring_hybrid_poll(struct io_kiocb *req,
static inline int io_import_rw_buffer(int rw, struct io_kiocb *req,
struct io_kiocb *req, *tmp;
static bool io_rw_recycle(struct io_kiocb *req, unsigned int issue_flags)
static void io_req_rw_cleanup(struct io_kiocb *req, unsigned int issue_flags)
static int io_rw_alloc_async(struct io_kiocb *req)
static int io_prep_rw_pi(struct io_kiocb *req, struct io_rw *rw, int ddir,
static int __io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe,
static int io_rw_do_import(struct io_kiocb *req, int ddir)
static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe,
int io_prep_read(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_prep_write(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static int io_prep_rwv(struct io_kiocb *req, const struct io_uring_sqe *sqe,
int io_prep_readv(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_prep_writev(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static int io_init_rw_fixed(struct io_kiocb *req, unsigned int issue_flags,
static bool io_file_supports_nowait(struct io_kiocb *req, __poll_t mask)
int io_prep_read_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_prep_write_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static int io_rw_import_reg_vec(struct io_kiocb *req,
static int io_rw_prep_reg_vec(struct io_kiocb *req)
int io_prep_readv_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_prep_writev_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_read_mshot_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
void io_readv_writev_cleanup(struct io_kiocb *req)
static inline loff_t *io_kiocb_update_pos(struct io_kiocb *req)
static bool io_rw_should_reissue(struct io_kiocb *req)
static void io_req_end_write(struct io_kiocb *req)
static void io_req_io_end(struct io_kiocb *req)
static void __io_complete_rw_common(struct io_kiocb *req, long res)
static inline int io_fixup_rw_res(struct io_kiocb *req, long res)
struct io_kiocb *req = tw_req.req;
struct io_kiocb *req = cmd_to_io_kiocb(rw);
struct io_kiocb *req = cmd_to_io_kiocb(rw);
static inline void io_rw_done(struct io_kiocb *req, ssize_t ret)
static int io_iov_buffer_select_prep(struct io_kiocb *req)
static int kiocb_done(struct io_kiocb *req, ssize_t ret,
struct io_kiocb *req = cmd_to_io_kiocb(rw);
struct io_kiocb *req = wait->private;
static bool io_rw_should_retry(struct io_kiocb *req)
static int io_import_vec(int ddir, struct io_kiocb *req,
static bool need_complete_io(struct io_kiocb *req)
static int io_rw_init_file(struct io_kiocb *req, fmode_t mode, int rw_type)
static int __io_read(struct io_kiocb *req, struct io_br_sel *sel,
int io_prep_read_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_prep_write_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_prep_readv_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_prep_writev_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_prep_readv(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_prep_writev(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_prep_read(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_prep_write(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_read(struct io_kiocb *req, unsigned int issue_flags);
int io_write(struct io_kiocb *req, unsigned int issue_flags);
int io_read_fixed(struct io_kiocb *req, unsigned int issue_flags);
int io_write_fixed(struct io_kiocb *req, unsigned int issue_flags);
void io_readv_writev_cleanup(struct io_kiocb *req);
void io_rw_fail(struct io_kiocb *req);
int io_read_mshot_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_read_mshot(struct io_kiocb *req, unsigned int issue_flags);
int io_splice_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_splice(struct io_kiocb *req, unsigned int issue_flags)
static int __io_splice_prep(struct io_kiocb *req,
int io_tee_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
void io_splice_cleanup(struct io_kiocb *req)
static struct file *io_splice_get_file(struct io_kiocb *req,
int io_tee(struct io_kiocb *req, unsigned int issue_flags)
int io_tee_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_tee(struct io_kiocb *req, unsigned int issue_flags);
void io_splice_cleanup(struct io_kiocb *req);
int io_splice_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_splice(struct io_kiocb *req, unsigned int issue_flags);
int io_statx_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_statx(struct io_kiocb *req, unsigned int issue_flags)
void io_statx_cleanup(struct io_kiocb *req)
int io_statx_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_statx(struct io_kiocb *req, unsigned int issue_flags);
void io_statx_cleanup(struct io_kiocb *req);
int io_fallocate(struct io_kiocb *req, unsigned int issue_flags)
int io_sfr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_sync_file_range(struct io_kiocb *req, unsigned int issue_flags)
int io_fsync_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_fsync(struct io_kiocb *req, unsigned int issue_flags)
int io_fallocate_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_fallocate_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_sfr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_sync_file_range(struct io_kiocb *req, unsigned int issue_flags);
int io_fsync_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_fsync(struct io_kiocb *req, unsigned int issue_flags);
int io_fallocate(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *req = tw_req.req;
struct io_kiocb *req;
static void io_kill_timeout(struct io_kiocb *req, struct list_head *list)
struct io_kiocb *req = cmd_to_io_kiocb(timeout);
struct io_kiocb *link = tw_req.req;
struct io_kiocb *nxt = link->link;
static void io_fail_links(struct io_kiocb *req)
struct io_kiocb *link = req->link;
struct io_kiocb *head;
static inline void io_remove_next_linked(struct io_kiocb *req)
struct io_kiocb *nxt = req->link;
void io_disarm_next(struct io_kiocb *req)
struct io_kiocb *link = NULL;
struct io_kiocb *prev;
static struct io_kiocb *__io_disarm_linked_timeout(struct io_kiocb *req,
struct io_kiocb *link)
struct io_kiocb *req = data->req;
static struct io_kiocb *io_timeout_extract(struct io_ring_ctx *ctx,
struct io_kiocb *req = NULL;
struct io_kiocb *tmp = cmd_to_io_kiocb(timeout);
struct io_kiocb *req;
struct io_kiocb *req = tw_req.req;
struct io_kiocb *prev = timeout->prev;
struct io_kiocb *prev, *req = data->req;
struct io_kiocb *req = NULL;
struct io_kiocb *tmp = cmd_to_io_kiocb(timeout);
struct io_kiocb *req = io_timeout_extract(ctx, &cd);
int io_timeout_remove_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_timeout_remove(struct io_kiocb *req, unsigned int issue_flags)
static int __io_timeout_prep(struct io_kiocb *req,
int io_timeout_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_link_timeout_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_timeout(struct io_kiocb *req, unsigned int issue_flags)
struct io_kiocb *nxt = cmd_to_io_kiocb(nextt);
void io_queue_linked_timeout(struct io_kiocb *req)
static bool io_match_task(struct io_kiocb *head, struct io_uring_task *tctx,
struct io_kiocb *req;
struct io_kiocb *req = cmd_to_io_kiocb(timeout);
static struct io_kiocb *__io_disarm_linked_timeout(struct io_kiocb *req,
struct io_kiocb *link);
static inline bool io_is_timeout_noseq(struct io_kiocb *req)
static inline void io_put_req(struct io_kiocb *req)
void io_queue_linked_timeout(struct io_kiocb *req);
void io_disarm_next(struct io_kiocb *req);
int io_timeout_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_link_timeout_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_timeout(struct io_kiocb *req, unsigned int issue_flags);
int io_timeout_remove_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_timeout_remove(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *req;
int io_ftruncate_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_ftruncate(struct io_kiocb *req, unsigned int issue_flags)
int io_ftruncate_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_ftruncate(struct io_kiocb *req, unsigned int issue_flags);
void io_req_local_work_add(struct io_kiocb *req, unsigned flags)
void io_req_normal_work_add(struct io_kiocb *req)
void io_req_task_work_add_remote(struct io_kiocb *req, unsigned flags)
struct io_kiocb *req;
req = container_of(node, struct io_kiocb, io_task_work.node);
struct io_kiocb *req;
req = container_of(node, struct io_kiocb, io_task_work.node);
struct io_kiocb *req;
req = container_of(node, struct io_kiocb, io_task_work.node);
void io_req_task_work_add_remote(struct io_kiocb *req, unsigned flags);
void io_req_local_work_add(struct io_kiocb *req, unsigned flags);
void io_req_normal_work_add(struct io_kiocb *req);
static inline void __io_req_task_work_add(struct io_kiocb *req, unsigned flags)
static inline void io_req_task_work_add(struct io_kiocb *req)
struct io_kiocb *req = cmd_to_io_kiocb(cmd);
struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);
static inline void io_req_set_cqe32_extra(struct io_kiocb *req,
struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);
int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
static inline size_t uring_sqe_size(struct io_kiocb *req)
void io_uring_cmd_sqe_copy(struct io_kiocb *req)
int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags)
static void io_req_uring_cleanup(struct io_kiocb *req, unsigned int issue_flags)
struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);
struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);
struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);
struct io_kiocb *req = cmd_to_io_kiocb(cmd);
struct io_kiocb *req = cmd_to_io_kiocb(cmd);
struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);
struct io_kiocb *req = cmd_to_io_kiocb(ioucmd);
void io_uring_cmd_cleanup(struct io_kiocb *req)
struct io_kiocb *req;
struct io_kiocb *req = cmd_to_io_kiocb(cmd);
int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags);
int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
void io_uring_cmd_sqe_copy(struct io_kiocb *req);
void io_uring_cmd_cleanup(struct io_kiocb *req);
static void io_waitid_remove_wq(struct io_kiocb *req)
static void io_waitid_complete(struct io_kiocb *req, int ret)
static bool __io_waitid_cancel(struct io_kiocb *req)
static inline bool io_waitid_drop_issue_ref(struct io_kiocb *req)
struct io_kiocb *req = tw_req.req;
struct io_kiocb *req = iwa->req;
int io_waitid_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_waitid(struct io_kiocb *req, unsigned int issue_flags)
static void io_waitid_free(struct io_kiocb *req)
static bool io_waitid_copy_si(struct io_kiocb *req, int signo)
static int io_waitid_finish(struct io_kiocb *req, int ret)
int io_waitid_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_waitid(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *req;
int io_getxattr(struct io_kiocb *req, unsigned int issue_flags)
static int __io_setxattr_prep(struct io_kiocb *req,
int io_setxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_fsetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_fsetxattr(struct io_kiocb *req, unsigned int issue_flags)
int io_setxattr(struct io_kiocb *req, unsigned int issue_flags)
void io_xattr_cleanup(struct io_kiocb *req)
static void io_xattr_finish(struct io_kiocb *req, int ret)
static int __io_getxattr_prep(struct io_kiocb *req,
int io_fgetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_getxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_fgetxattr(struct io_kiocb *req, unsigned int issue_flags)
int io_fgetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_fgetxattr(struct io_kiocb *req, unsigned int issue_flags);
int io_getxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_getxattr(struct io_kiocb *req, unsigned int issue_flags);
void io_xattr_cleanup(struct io_kiocb *req);
int io_fsetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_fsetxattr(struct io_kiocb *req, unsigned int issue_flags);
int io_setxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_setxattr(struct io_kiocb *req, unsigned int issue_flags);
struct io_kiocb *req = tw_req.req;
struct io_kiocb *req;
static bool io_zcrx_queue_cqe(struct io_kiocb *req, struct net_iov *niov,
static ssize_t io_zcrx_copy_chunk(struct io_kiocb *req, struct io_zcrx_ifq *ifq,
static int io_zcrx_copy_frag(struct io_kiocb *req, struct io_zcrx_ifq *ifq,
static int io_zcrx_recv_frag(struct io_kiocb *req, struct io_zcrx_ifq *ifq,
struct io_kiocb *req = args->req;
static int io_zcrx_tcp_recvmsg(struct io_kiocb *req, struct io_zcrx_ifq *ifq,
int io_zcrx_recv(struct io_kiocb *req, struct io_zcrx_ifq *ifq,
struct io_kiocb *req;
static inline int io_zcrx_recv(struct io_kiocb *req, struct io_zcrx_ifq *ifq,
int io_recvzc(struct io_kiocb *req, unsigned int issue_flags);
int io_recvzc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
int io_zcrx_recv(struct io_kiocb *req, struct io_zcrx_ifq *ifq,