io_kiocbRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: Absent ⚠️
4.13: Absent ⚠️
4.15: Absent ⚠️
4.18: Absent ⚠️
5.0: Absent ⚠️
5.3: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct work_struct work;
};
5.4: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
5.8: ✅struct io_kiocb {
struct file *file;
struct io_rw rw;
struct io_poll_iocb poll;
struct io_accept accept;
struct io_sync sync;
struct io_cancel cancel;
struct io_timeout timeout;
struct io_connect connect;
struct io_sr_msg sr_msg;
struct io_open open;
struct io_close close;
struct io_files_update files_update;
struct io_fadvise fadvise;
struct io_madvise madvise;
struct io_epoll epoll;
struct io_splice splice;
struct io_provide_buf pbuf;
struct io_statx statx;
struct io_async_ctx *io;
int cflags;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
struct io_ring_ctx *ctx;
struct list_head list;
unsigned int flags;
refcount_t refs;
struct task_struct *task;
long unsigned int fsize;
u64 user_data;
u32 result;
u32 sequence;
struct list_head link_list;
struct list_head inflight_entry;
struct percpu_ref *fixed_file_refs;
struct hlist_node hash_node;
struct async_poll *apoll;
struct io_wq_work work;
struct callback_head task_work;
};
5.11: ✅struct io_kiocb {
struct file *file;
struct io_rw rw;
struct io_poll_iocb poll;
struct io_poll_remove poll_remove;
struct io_accept accept;
struct io_sync sync;
struct io_cancel cancel;
struct io_timeout timeout;
struct io_timeout_rem timeout_rem;
struct io_connect connect;
struct io_sr_msg sr_msg;
struct io_open open;
struct io_close close;
struct io_files_update files_update;
struct io_fadvise fadvise;
struct io_madvise madvise;
struct io_epoll epoll;
struct io_splice splice;
struct io_provide_buf pbuf;
struct io_statx statx;
struct io_shutdown shutdown;
struct io_rename rename;
struct io_unlink unlink;
struct io_completion compl;
void *async_data;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
u32 result;
struct io_ring_ctx *ctx;
unsigned int flags;
refcount_t refs;
struct task_struct *task;
u64 user_data;
struct io_kiocb *link;
struct percpu_ref *fixed_file_refs;
struct list_head inflight_entry;
struct callback_head task_work;
struct hlist_node hash_node;
struct async_poll *apoll;
struct io_wq_work work;
};
5.13: ✅struct io_kiocb {
struct file *file;
struct io_rw rw;
struct io_poll_iocb poll;
struct io_poll_update poll_update;
struct io_accept accept;
struct io_sync sync;
struct io_cancel cancel;
struct io_timeout timeout;
struct io_timeout_rem timeout_rem;
struct io_connect connect;
struct io_sr_msg sr_msg;
struct io_open open;
struct io_close close;
struct io_rsrc_update rsrc_update;
struct io_fadvise fadvise;
struct io_madvise madvise;
struct io_epoll epoll;
struct io_splice splice;
struct io_provide_buf pbuf;
struct io_statx statx;
struct io_shutdown shutdown;
struct io_rename rename;
struct io_unlink unlink;
struct io_completion compl;
void *async_data;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
u32 result;
struct io_ring_ctx *ctx;
unsigned int flags;
atomic_t refs;
struct task_struct *task;
u64 user_data;
struct io_kiocb *link;
struct percpu_ref *fixed_rsrc_refs;
struct list_head inflight_entry;
struct io_task_work io_task_work;
struct callback_head task_work;
struct hlist_node hash_node;
struct async_poll *apoll;
struct io_wq_work work;
const struct cred *creds;
struct io_mapped_ubuf *imu;
};
5.15: ✅struct io_kiocb {
struct file *file;
struct io_rw rw;
struct io_poll_iocb poll;
struct io_poll_update poll_update;
struct io_accept accept;
struct io_sync sync;
struct io_cancel cancel;
struct io_timeout timeout;
struct io_timeout_rem timeout_rem;
struct io_connect connect;
struct io_sr_msg sr_msg;
struct io_open open;
struct io_close close;
struct io_rsrc_update rsrc_update;
struct io_fadvise fadvise;
struct io_madvise madvise;
struct io_epoll epoll;
struct io_splice splice;
struct io_provide_buf pbuf;
struct io_statx statx;
struct io_shutdown shutdown;
struct io_rename rename;
struct io_unlink unlink;
struct io_mkdir mkdir;
struct io_symlink symlink;
struct io_hardlink hardlink;
struct io_completion compl;
void *async_data;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
u32 result;
struct io_ring_ctx *ctx;
unsigned int flags;
atomic_t refs;
struct task_struct *task;
u64 user_data;
struct io_kiocb *link;
struct percpu_ref *fixed_rsrc_refs;
struct list_head inflight_entry;
struct io_task_work io_task_work;
struct hlist_node hash_node;
struct async_poll *apoll;
struct io_wq_work work;
const struct cred *creds;
struct io_mapped_ubuf *imu;
};
5.19: ✅struct io_kiocb {
struct file *file;
struct io_rw rw;
struct io_poll_iocb poll;
struct io_poll_update poll_update;
struct io_accept accept;
struct io_sync sync;
struct io_cancel cancel;
struct io_timeout timeout;
struct io_timeout_rem timeout_rem;
struct io_connect connect;
struct io_sr_msg sr_msg;
struct io_open open;
struct io_close close;
struct io_rsrc_update rsrc_update;
struct io_fadvise fadvise;
struct io_madvise madvise;
struct io_epoll epoll;
struct io_splice splice;
struct io_provide_buf pbuf;
struct io_statx statx;
struct io_shutdown shutdown;
struct io_rename rename;
struct io_unlink unlink;
struct io_mkdir mkdir;
struct io_symlink symlink;
struct io_hardlink hardlink;
struct io_msg msg;
struct io_xattr xattr;
struct io_socket sock;
struct io_uring_cmd uring_cmd;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
unsigned int flags;
struct io_cqe cqe;
struct io_ring_ctx *ctx;
struct task_struct *task;
struct io_rsrc_node *rsrc_node;
struct io_mapped_ubuf *imu;
struct io_buffer *kbuf;
struct io_buffer_list *buf_list;
struct io_wq_work_node comp_list;
__poll_t apoll_events;
atomic_t refs;
atomic_t poll_refs;
struct io_task_work io_task_work;
struct hlist_node hash_node;
u64 extra1;
u64 extra2;
struct async_poll *apoll;
void *async_data;
struct io_kiocb *link;
const struct cred *creds;
struct io_wq_work work;
};
6.2: ✅struct io_kiocb {
struct file *file;
struct io_cmd_data cmd;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
unsigned int flags;
struct io_cqe cqe;
struct io_ring_ctx *ctx;
struct task_struct *task;
struct io_rsrc_node *rsrc_node;
struct io_mapped_ubuf *imu;
struct io_buffer *kbuf;
struct io_buffer_list *buf_list;
struct io_wq_work_node comp_list;
__poll_t apoll_events;
atomic_t refs;
atomic_t poll_refs;
struct io_task_work io_task_work;
struct hlist_node hash_node;
u64 extra1;
u64 extra2;
struct async_poll *apoll;
void *async_data;
struct io_kiocb *link;
const struct cred *creds;
struct io_wq_work work;
};
6.5: ✅struct io_kiocb {
struct file *file;
struct io_cmd_data cmd;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
unsigned int flags;
struct io_cqe cqe;
struct io_ring_ctx *ctx;
struct task_struct *task;
struct io_rsrc_node *rsrc_node;
struct io_mapped_ubuf *imu;
struct io_buffer *kbuf;
struct io_buffer_list *buf_list;
struct io_wq_work_node comp_list;
__poll_t apoll_events;
atomic_t refs;
atomic_t poll_refs;
struct io_task_work io_task_work;
unsigned int nr_tw;
struct hlist_node hash_node;
u64 extra1;
u64 extra2;
struct async_poll *apoll;
void *async_data;
struct io_kiocb *link;
const struct cred *creds;
struct io_wq_work work;
};
6.8: ✅struct io_kiocb {
struct file *file;
struct io_cmd_data cmd;
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
unsigned int flags;
struct io_cqe cqe;
struct io_ring_ctx *ctx;
struct task_struct *task;
struct io_rsrc_node *rsrc_node;
struct io_mapped_ubuf *imu;
struct io_buffer *kbuf;
struct io_buffer_list *buf_list;
struct io_wq_work_node comp_list;
__poll_t apoll_events;
atomic_t refs;
atomic_t poll_refs;
struct io_task_work io_task_work;
unsigned int nr_tw;
struct hlist_node hash_node;
struct async_poll *apoll;
void *async_data;
struct io_kiocb *link;
const struct cred *creds;
struct io_wq_work work;
struct (anon) big_cqe;
};
arm64: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
armhf: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
ppc64el: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
riscv64: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
aws: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
azure: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
gcp: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
lowlatency: ✅struct io_kiocb {
struct file *file;
struct kiocb rw;
struct io_poll_iocb poll;
struct io_timeout timeout;
struct sqe_submit submit;
struct io_ring_ctx *ctx;
struct list_head list;
struct list_head link_list;
unsigned int flags;
refcount_t refs;
u64 user_data;
u32 result;
u32 sequence;
struct fs_struct *fs;
struct work_struct work;
};
Regular
5.3 and 5.4 ⚠️struct io_timeout timeout
struct fs_struct *fs
5.4 and 5.8 ⚠️struct io_accept accept
struct io_sync sync
struct io_cancel cancel
struct io_connect connect
struct io_sr_msg sr_msg
struct io_open open
struct io_close close
struct io_files_update files_update
struct io_fadvise fadvise
struct io_madvise madvise
struct io_epoll epoll
struct io_splice splice
struct io_provide_buf pbuf
struct io_statx statx
struct io_async_ctx *io
int cflags
u8 opcode
u8 iopoll_completed
u16 buf_index
struct task_struct *task
long unsigned int fsize
struct list_head inflight_entry
struct percpu_ref *fixed_file_refs
struct hlist_node hash_node
struct async_poll *apoll
struct callback_head task_work
struct sqe_submit submit
struct fs_struct *fs
struct kiocb rw ➡️ struct io_rw rw
struct work_struct work ➡️ struct io_wq_work work
5.8 and 5.11 ⚠️struct io_poll_remove poll_remove
struct io_timeout_rem timeout_rem
struct io_shutdown shutdown
struct io_rename rename
struct io_unlink unlink
struct io_completion compl
void *async_data
struct io_kiocb *link
struct io_async_ctx *io
int cflags
struct list_head list
long unsigned int fsize
u32 sequence
struct list_head link_list
5.11 and 5.13 ⚠️struct io_poll_update poll_update
struct io_rsrc_update rsrc_update
struct percpu_ref *fixed_rsrc_refs
struct io_task_work io_task_work
const struct cred *creds
struct io_mapped_ubuf *imu
struct io_poll_remove poll_remove
struct io_files_update files_update
struct percpu_ref *fixed_file_refs
refcount_t refs ➡️ atomic_t refs
5.13 and 5.15 ⚠️struct io_mkdir mkdir
struct io_symlink symlink
struct io_hardlink hardlink
struct callback_head task_work
5.15 and 5.19 ⚠️struct io_msg msg
struct io_xattr xattr
struct io_socket sock
struct io_uring_cmd uring_cmd
struct io_cqe cqe
struct io_rsrc_node *rsrc_node
struct io_buffer *kbuf
struct io_buffer_list *buf_list
struct io_wq_work_node comp_list
__poll_t apoll_events
atomic_t poll_refs
u64 extra1
u64 extra2
struct io_completion compl
u32 result
u64 user_data
struct percpu_ref *fixed_rsrc_refs
struct list_head inflight_entry
5.19 and 6.2 ⚠️struct io_cmd_data cmd
struct io_rw rw
struct io_poll_iocb poll
struct io_poll_update poll_update
struct io_accept accept
struct io_sync sync
struct io_cancel cancel
struct io_timeout timeout
struct io_timeout_rem timeout_rem
struct io_connect connect
struct io_sr_msg sr_msg
struct io_open open
struct io_close close
struct io_rsrc_update rsrc_update
struct io_fadvise fadvise
struct io_madvise madvise
struct io_epoll epoll
struct io_splice splice
struct io_provide_buf pbuf
struct io_statx statx
struct io_shutdown shutdown
struct io_rename rename
struct io_unlink unlink
struct io_mkdir mkdir
struct io_symlink symlink
struct io_hardlink hardlink
struct io_msg msg
struct io_xattr xattr
struct io_socket sock
struct io_uring_cmd uring_cmd
6.2 and 6.5 ⚠️unsigned int nr_tw
6.5 and 6.8 ⚠️struct (anon) big_cqe
u64 extra1
u64 extra2
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅