Lines Matching refs:ioucmd
168 u32 meta_seed, void **metap, struct io_uring_cmd *ioucmd,
178 if (ioucmd && (ioucmd->flags & IORING_URING_CMD_FIXED)) {
185 rq_data_dir(req), &iter, ioucmd);
466 struct io_uring_cmd *ioucmd)
468 return (struct nvme_uring_cmd_pdu *)&ioucmd->pdu;
471 static void nvme_uring_task_meta_cb(struct io_uring_cmd *ioucmd,
474 struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd);
493 io_uring_cmd_done(ioucmd, status, result, issue_flags);
496 static void nvme_uring_task_cb(struct io_uring_cmd *ioucmd,
499 struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd);
504 io_uring_cmd_done(ioucmd, pdu->nvme_status, pdu->u.result, issue_flags);
510 struct io_uring_cmd *ioucmd = req->end_io_data;
511 struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd);
528 WRITE_ONCE(ioucmd->cookie, NULL);
529 nvme_uring_task_cb(ioucmd, IO_URING_F_UNLOCKED);
531 io_uring_cmd_do_in_task_lazy(ioucmd, nvme_uring_task_cb);
540 struct io_uring_cmd *ioucmd = req->end_io_data;
541 struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd);
551 WRITE_ONCE(ioucmd->cookie, NULL);
552 nvme_uring_task_meta_cb(ioucmd, IO_URING_F_UNLOCKED);
554 io_uring_cmd_do_in_task_lazy(ioucmd, nvme_uring_task_meta_cb);
561 struct io_uring_cmd *ioucmd, unsigned int issue_flags, bool vec)
563 struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd);
564 const struct nvme_uring_cmd *cmd = io_uring_sqe_cmd(ioucmd->sqe);
595 if (!nvme_cmd_allowed(ns, &c, 0, ioucmd->file->f_mode & FMODE_WRITE))
619 d.metadata_len, 0, &meta, ioucmd, vec);
625 ioucmd->flags |= IORING_URING_CMD_POLLED;
626 WRITE_ONCE(ioucmd->cookie, req);
632 req->end_io_data = ioucmd;
752 static int nvme_ns_uring_cmd(struct nvme_ns *ns, struct io_uring_cmd *ioucmd,
758 BUILD_BUG_ON(sizeof(struct nvme_uring_cmd_pdu) > sizeof(ioucmd->pdu));
764 switch (ioucmd->cmd_op) {
766 ret = nvme_uring_cmd_io(ctrl, ns, ioucmd, issue_flags, false);
769 ret = nvme_uring_cmd_io(ctrl, ns, ioucmd, issue_flags, true);
778 int nvme_ns_chr_uring_cmd(struct io_uring_cmd *ioucmd, unsigned int issue_flags)
780 struct nvme_ns *ns = container_of(file_inode(ioucmd->file)->i_cdev,
783 return nvme_ns_uring_cmd(ns, ioucmd, issue_flags);
786 int nvme_ns_chr_uring_cmd_iopoll(struct io_uring_cmd *ioucmd,
793 if (!(ioucmd->flags & IORING_URING_CMD_POLLED))
796 req = READ_ONCE(ioucmd->cookie);
877 int nvme_ns_head_chr_uring_cmd(struct io_uring_cmd *ioucmd,
880 struct cdev *cdev = file_inode(ioucmd->file)->i_cdev;
887 ret = nvme_ns_uring_cmd(ns, ioucmd, issue_flags);
893 int nvme_dev_uring_cmd(struct io_uring_cmd *ioucmd, unsigned int issue_flags)
895 struct nvme_ctrl *ctrl = ioucmd->file->private_data;
906 switch (ioucmd->cmd_op) {
908 ret = nvme_uring_cmd_io(ctrl, NULL, ioucmd, issue_flags, false);
911 ret = nvme_uring_cmd_io(ctrl, NULL, ioucmd, issue_flags, true);