Lines Matching refs:req

10 static void nvmet_execute_prop_set(struct nvmet_req *req)  in nvmet_execute_prop_set()  argument
12 u64 val = le64_to_cpu(req->cmd->prop_set.value); in nvmet_execute_prop_set()
15 if (req->cmd->prop_set.attrib & 1) { in nvmet_execute_prop_set()
16 req->error_loc = in nvmet_execute_prop_set()
22 switch (le32_to_cpu(req->cmd->prop_set.offset)) { in nvmet_execute_prop_set()
24 nvmet_update_cc(req->sq->ctrl, val); in nvmet_execute_prop_set()
27 req->error_loc = in nvmet_execute_prop_set()
32 nvmet_req_complete(req, status); in nvmet_execute_prop_set()
35 static void nvmet_execute_prop_get(struct nvmet_req *req) in nvmet_execute_prop_get() argument
37 struct nvmet_ctrl *ctrl = req->sq->ctrl; in nvmet_execute_prop_get()
41 if (req->cmd->prop_get.attrib & 1) { in nvmet_execute_prop_get()
42 switch (le32_to_cpu(req->cmd->prop_get.offset)) { in nvmet_execute_prop_get()
51 switch (le32_to_cpu(req->cmd->prop_get.offset)) { in nvmet_execute_prop_get()
67 if (status && req->cmd->prop_get.attrib & 1) { in nvmet_execute_prop_get()
68 req->error_loc = in nvmet_execute_prop_get()
71 req->error_loc = in nvmet_execute_prop_get()
75 req->cqe->result.u64 = cpu_to_le64(val); in nvmet_execute_prop_get()
76 nvmet_req_complete(req, status); in nvmet_execute_prop_get()
79 u16 nvmet_parse_fabrics_cmd(struct nvmet_req *req) in nvmet_parse_fabrics_cmd() argument
81 struct nvme_command *cmd = req->cmd; in nvmet_parse_fabrics_cmd()
85 req->data_len = 0; in nvmet_parse_fabrics_cmd()
86 req->execute = nvmet_execute_prop_set; in nvmet_parse_fabrics_cmd()
89 req->data_len = 0; in nvmet_parse_fabrics_cmd()
90 req->execute = nvmet_execute_prop_get; in nvmet_parse_fabrics_cmd()
95 req->error_loc = offsetof(struct nvmf_common_command, fctype); in nvmet_parse_fabrics_cmd()
102 static u16 nvmet_install_queue(struct nvmet_ctrl *ctrl, struct nvmet_req *req) in nvmet_install_queue() argument
104 struct nvmf_connect_command *c = &req->cmd->connect; in nvmet_install_queue()
109 old = cmpxchg(&req->sq->ctrl, NULL, ctrl); in nvmet_install_queue()
112 req->error_loc = offsetof(struct nvmf_connect_command, opcode); in nvmet_install_queue()
117 req->error_loc = offsetof(struct nvmf_connect_command, sqsize); in nvmet_install_queue()
122 nvmet_cq_setup(ctrl, req->cq, qid, sqsize + 1); in nvmet_install_queue()
123 nvmet_sq_setup(ctrl, req->sq, qid, sqsize + 1); in nvmet_install_queue()
126 req->sq->sqhd_disabled = true; in nvmet_install_queue()
127 req->cqe->sq_head = cpu_to_le16(0xffff); in nvmet_install_queue()
131 u16 ret = ctrl->ops->install_queue(req->sq); in nvmet_install_queue()
143 static void nvmet_execute_admin_connect(struct nvmet_req *req) in nvmet_execute_admin_connect() argument
145 struct nvmf_connect_command *c = &req->cmd->connect; in nvmet_execute_admin_connect()
156 status = nvmet_copy_from_sgl(req, 0, d, sizeof(*d)); in nvmet_execute_admin_connect()
161 req->cqe->result.u32 = 0; in nvmet_execute_admin_connect()
166 req->error_loc = offsetof(struct nvmf_connect_command, recfmt); in nvmet_execute_admin_connect()
175 req->cqe->result.u32 = IPO_IATTR_CONNECT_DATA(cntlid); in nvmet_execute_admin_connect()
179 status = nvmet_alloc_ctrl(d->subsysnqn, d->hostnqn, req, in nvmet_execute_admin_connect()
183 req->error_loc = in nvmet_execute_admin_connect()
190 status = nvmet_install_queue(ctrl, req); in nvmet_execute_admin_connect()
198 req->cqe->result.u16 = cpu_to_le16(ctrl->cntlid); in nvmet_execute_admin_connect()
203 nvmet_req_complete(req, status); in nvmet_execute_admin_connect()
206 static void nvmet_execute_io_connect(struct nvmet_req *req) in nvmet_execute_io_connect() argument
208 struct nvmf_connect_command *c = &req->cmd->connect; in nvmet_execute_io_connect()
220 status = nvmet_copy_from_sgl(req, 0, d, sizeof(*d)); in nvmet_execute_io_connect()
225 req->cqe->result.u32 = 0; in nvmet_execute_io_connect()
236 req, &ctrl); in nvmet_execute_io_connect()
243 req->cqe->result.u32 = IPO_IATTR_CONNECT_SQE(qid); in nvmet_execute_io_connect()
247 status = nvmet_install_queue(ctrl, req); in nvmet_execute_io_connect()
250 req->cqe->result.u16 = cpu_to_le16(ctrl->cntlid); in nvmet_execute_io_connect()
259 nvmet_req_complete(req, status); in nvmet_execute_io_connect()
267 u16 nvmet_parse_connect_cmd(struct nvmet_req *req) in nvmet_parse_connect_cmd() argument
269 struct nvme_command *cmd = req->cmd; in nvmet_parse_connect_cmd()
274 req->error_loc = offsetof(struct nvme_common_command, opcode); in nvmet_parse_connect_cmd()
280 req->error_loc = offsetof(struct nvmf_common_command, fctype); in nvmet_parse_connect_cmd()
284 req->data_len = sizeof(struct nvmf_connect_data); in nvmet_parse_connect_cmd()
286 req->execute = nvmet_execute_admin_connect; in nvmet_parse_connect_cmd()
288 req->execute = nvmet_execute_io_connect; in nvmet_parse_connect_cmd()