函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\io_uring.c Create Date:2022-07-29 10:55:03
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:io_submit_sqe

函数原型:static bool io_submit_sqe(struct io_kiocb *req, const struct io_uring_sqe *sqe, struct io_submit_state *state, struct io_kiocb **link)

返回类型:bool

参数:

类型参数名称
struct io_kiocb *req
const struct io_uring_sqe *sqe
struct io_submit_state *state
struct io_kiocb **link
3627  ctx等于ctx
3631  如果此条件成立可能性小(为编译器优化)(IOSQE_ flags & ~SQE_VALID_FLAGS)则
3632  ret等于负EINVAL
3633  转到:err_req
3636  ret等于io_req_set_file(state, req, sqe)
3637  如果此条件成立可能性小(为编译器优化)(ret)则
3638  err_req :
3639  io_cqring_add_event(req, ret)
3640  io_double_put_req(req)
3641  返回:false
3651  如果link
3652  prev等于link
3654  如果IOSQE_ flags 按位与ssue after inflight IO flags或等于link should be fully drained 按位或drain existing IO first
3657  如果IOSQE_ flags 按位与like LINK, but stronger flags或等于doesn't sever on completion < 0
3660  如果io_alloc_async_ctx(req)则
3661  ret等于负EAGAIN
3662  转到:err_req
3665  ret等于io_req_defer_prep(req, sqe)
3666  如果ret
3668  flags或等于ail rest of links
3669  转到:err_req
3671  _uring_link - called before the io_uring request added into link_list of* another request*@ctx: pointer to a ring context structure*@req: pointer to a linked request*@target_req: pointer to a previous request, that would contain @req* Allows to track
3672  添加链表项
3673  否则如果IOSQE_ flags 按位与links next sqe 按位或like LINK, but stronger 的值则
3674  flags或等于linked sqes
3675  如果IOSQE_ flags 按位与like LINK, but stronger flags或等于doesn't sever on completion < 0
3678  初始化链表头
3679  ret等于io_req_defer_prep(req, sqe)
3680  如果retflags或等于ail rest of links
3682  link等于req
3683  否则
3684  io_queue_sqe(req, sqe)
3687  返回:true
调用者
名称描述
io_submit_sqes