Lines Matching defs:req
53 static int __io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
55 struct io_open *open = io_kiocb_to_cmd(req, struct io_open);
61 if (unlikely(req->flags & REQ_F_FIXED_FILE))
82 req->flags |= REQ_F_NEED_CLEANUP;
84 req->flags |= REQ_F_FORCE_ASYNC;
88 int io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
90 struct io_open *open = io_kiocb_to_cmd(req, struct io_open);
95 return __io_openat_prep(req, sqe);
98 int io_openat2_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
100 struct io_open *open = io_kiocb_to_cmd(req, struct io_open);
114 return __io_openat_prep(req, sqe);
117 int io_openat2(struct io_kiocb *req, unsigned int issue_flags)
119 struct io_open *open = io_kiocb_to_cmd(req, struct io_open);
167 ret = io_fixed_fd_install(req, issue_flags, file,
171 req->flags &= ~REQ_F_NEED_CLEANUP;
173 req_set_fail(req);
174 io_req_set_res(req, ret, 0);
178 int io_openat(struct io_kiocb *req, unsigned int issue_flags)
180 return io_openat2(req, issue_flags);
183 void io_open_cleanup(struct io_kiocb *req)
185 struct io_open *open = io_kiocb_to_cmd(req, struct io_open);
203 static inline int io_close_fixed(struct io_kiocb *req, unsigned int issue_flags)
205 struct io_close *close = io_kiocb_to_cmd(req, struct io_close);
207 return __io_close_fixed(req->ctx, issue_flags, close->file_slot - 1);
210 int io_close_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
212 struct io_close *close = io_kiocb_to_cmd(req, struct io_close);
216 if (req->flags & REQ_F_FIXED_FILE)
227 int io_close(struct io_kiocb *req, unsigned int issue_flags)
230 struct io_close *close = io_kiocb_to_cmd(req, struct io_close);
235 ret = io_close_fixed(req, issue_flags);
261 req_set_fail(req);
262 io_req_set_res(req, ret, 0);
266 int io_install_fixed_fd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
276 if (!(req->flags & REQ_F_FIXED_FILE))
284 if (req->flags & REQ_F_CREDS)
288 ifi = io_kiocb_to_cmd(req, struct io_fixed_install);
296 int io_install_fixed_fd(struct io_kiocb *req, unsigned int issue_flags)
301 ifi = io_kiocb_to_cmd(req, struct io_fixed_install);
302 ret = receive_fd(req->file, NULL, ifi->o_flags);
304 req_set_fail(req);
305 io_req_set_res(req, ret, 0);
317 int io_pipe_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
319 struct io_pipe *p = io_kiocb_to_cmd(req, struct io_pipe);
334 static int io_pipe_fixed(struct io_kiocb *req, struct file **files,
337 struct io_pipe *p = io_kiocb_to_cmd(req, struct io_pipe);
338 struct io_ring_ctx *ctx = req->ctx;
382 static int io_pipe_fd(struct io_kiocb *req, struct file **files)
384 struct io_pipe *p = io_kiocb_to_cmd(req, struct io_pipe);
411 int io_pipe(struct io_kiocb *req, unsigned int issue_flags)
413 struct io_pipe *p = io_kiocb_to_cmd(req, struct io_pipe);
422 ret = io_pipe_fixed(req, files, issue_flags);
424 ret = io_pipe_fd(req, files);
426 io_req_set_res(req, ret, 0);
430 req_set_fail(req);