Lines Matching refs:req

18 static void nvmet_execute_prop_set(struct nvmet_req *req)  in nvmet_execute_prop_set()  argument
22 if (!(req->cmd->prop_set.attrib & 1)) { in nvmet_execute_prop_set()
23 u64 val = le64_to_cpu(req->cmd->prop_set.value); in nvmet_execute_prop_set()
25 switch (le32_to_cpu(req->cmd->prop_set.offset)) { in nvmet_execute_prop_set()
27 nvmet_update_cc(req->sq->ctrl, val); in nvmet_execute_prop_set()
37 nvmet_req_complete(req, status); in nvmet_execute_prop_set()
40 static void nvmet_execute_prop_get(struct nvmet_req *req) in nvmet_execute_prop_get() argument
42 struct nvmet_ctrl *ctrl = req->sq->ctrl; in nvmet_execute_prop_get()
46 if (req->cmd->prop_get.attrib & 1) { in nvmet_execute_prop_get()
47 switch (le32_to_cpu(req->cmd->prop_get.offset)) { in nvmet_execute_prop_get()
56 switch (le32_to_cpu(req->cmd->prop_get.offset)) { in nvmet_execute_prop_get()
72 req->rsp->result.u64 = cpu_to_le64(val); in nvmet_execute_prop_get()
73 nvmet_req_complete(req, status); in nvmet_execute_prop_get()
76 u16 nvmet_parse_fabrics_cmd(struct nvmet_req *req) in nvmet_parse_fabrics_cmd() argument
78 struct nvme_command *cmd = req->cmd; in nvmet_parse_fabrics_cmd()
82 req->data_len = 0; in nvmet_parse_fabrics_cmd()
83 req->execute = nvmet_execute_prop_set; in nvmet_parse_fabrics_cmd()
86 req->data_len = 0; in nvmet_parse_fabrics_cmd()
87 req->execute = nvmet_execute_prop_get; in nvmet_parse_fabrics_cmd()
98 static u16 nvmet_install_queue(struct nvmet_ctrl *ctrl, struct nvmet_req *req) in nvmet_install_queue() argument
100 struct nvmf_connect_command *c = &req->cmd->connect; in nvmet_install_queue()
105 old = cmpxchg(&req->sq->ctrl, NULL, ctrl); in nvmet_install_queue()
116 nvmet_cq_setup(ctrl, req->cq, qid, sqsize + 1); in nvmet_install_queue()
117 nvmet_sq_setup(ctrl, req->sq, qid, sqsize + 1); in nvmet_install_queue()
121 static void nvmet_execute_admin_connect(struct nvmet_req *req) in nvmet_execute_admin_connect() argument
123 struct nvmf_connect_command *c = &req->cmd->connect; in nvmet_execute_admin_connect()
134 status = nvmet_copy_from_sgl(req, 0, d, sizeof(*d)); in nvmet_execute_admin_connect()
139 req->rsp->result.u32 = 0; in nvmet_execute_admin_connect()
152 req->rsp->result.u32 = IPO_IATTR_CONNECT_DATA(cntlid); in nvmet_execute_admin_connect()
156 status = nvmet_alloc_ctrl(d->subsysnqn, d->hostnqn, req, in nvmet_execute_admin_connect()
162 status = nvmet_install_queue(ctrl, req); in nvmet_execute_admin_connect()
170 req->rsp->result.u16 = cpu_to_le16(ctrl->cntlid); in nvmet_execute_admin_connect()
175 nvmet_req_complete(req, status); in nvmet_execute_admin_connect()
178 static void nvmet_execute_io_connect(struct nvmet_req *req) in nvmet_execute_io_connect() argument
180 struct nvmf_connect_command *c = &req->cmd->connect; in nvmet_execute_io_connect()
192 status = nvmet_copy_from_sgl(req, 0, d, sizeof(*d)); in nvmet_execute_io_connect()
197 req->rsp->result.u32 = 0; in nvmet_execute_io_connect()
208 req, &ctrl); in nvmet_execute_io_connect()
215 req->rsp->result.u32 = IPO_IATTR_CONNECT_SQE(qid); in nvmet_execute_io_connect()
219 status = nvmet_install_queue(ctrl, req); in nvmet_execute_io_connect()
222 req->rsp->result.u16 = cpu_to_le16(ctrl->cntlid); in nvmet_execute_io_connect()
231 nvmet_req_complete(req, status); in nvmet_execute_io_connect()
239 u16 nvmet_parse_connect_cmd(struct nvmet_req *req) in nvmet_parse_connect_cmd() argument
241 struct nvme_command *cmd = req->cmd; in nvmet_parse_connect_cmd()
254 req->data_len = sizeof(struct nvmf_connect_data); in nvmet_parse_connect_cmd()
256 req->execute = nvmet_execute_admin_connect; in nvmet_parse_connect_cmd()
258 req->execute = nvmet_execute_io_connect; in nvmet_parse_connect_cmd()