Lines Matching full:ns

62 	struct nvme_ns *ns = q->queuedata;  in nvme_submit_user_cmd()  local
63 struct block_device *bdev = ns ? ns->disk->part0 : NULL; in nvme_submit_user_cmd()
113 static int nvme_submit_io(struct nvme_ns *ns, struct nvme_user_io __user *uio) in nvme_submit_io() argument
134 length = (io.nblocks + 1) << ns->lba_shift; in nvme_submit_io()
137 ns->ms == sizeof(struct t10_pi_tuple)) { in nvme_submit_io()
147 meta_len = (io.nblocks + 1) * ns->ms; in nvme_submit_io()
151 if (ns->features & NVME_NS_EXT_LBAS) { in nvme_submit_io()
162 c.rw.nsid = cpu_to_le32(ns->head->ns_id); in nvme_submit_io()
171 return nvme_submit_user_cmd(ns->queue, &c, in nvme_submit_io()
177 struct nvme_ns *ns, __u32 nsid) in nvme_validate_passthru_nsid() argument
179 if (ns && nsid != ns->head->ns_id) { in nvme_validate_passthru_nsid()
183 current->comm, nsid, ns->head->ns_id); in nvme_validate_passthru_nsid()
190 static int nvme_user_cmd(struct nvme_ctrl *ctrl, struct nvme_ns *ns, in nvme_user_cmd() argument
205 if (!nvme_validate_passthru_nsid(ctrl, ns, cmd.nsid)) in nvme_user_cmd()
224 status = nvme_submit_user_cmd(ns ? ns->queue : ctrl->admin_q, &c, in nvme_user_cmd()
237 static int nvme_user_cmd64(struct nvme_ctrl *ctrl, struct nvme_ns *ns, in nvme_user_cmd64() argument
251 if (!nvme_validate_passthru_nsid(ctrl, ns, cmd.nsid)) in nvme_user_cmd64()
270 status = nvme_submit_user_cmd(ns ? ns->queue : ctrl->admin_q, &c, in nvme_user_cmd64()
323 static int nvme_ns_ioctl(struct nvme_ns *ns, unsigned int cmd, in nvme_ns_ioctl() argument
329 return ns->head->ns_id; in nvme_ns_ioctl()
331 return nvme_user_cmd(ns->ctrl, ns, argp); in nvme_ns_ioctl()
341 return nvme_submit_io(ns, argp); in nvme_ns_ioctl()
343 return nvme_user_cmd64(ns->ctrl, ns, argp); in nvme_ns_ioctl()
349 static int __nvme_ioctl(struct nvme_ns *ns, unsigned int cmd, void __user *arg) in __nvme_ioctl() argument
352 return nvme_ctrl_ioctl(ns->ctrl, cmd, arg); in __nvme_ioctl()
353 return nvme_ns_ioctl(ns, cmd, arg); in __nvme_ioctl()
359 struct nvme_ns *ns = bdev->bd_disk->private_data; in nvme_ioctl() local
361 return __nvme_ioctl(ns, cmd, (void __user *)arg); in nvme_ioctl()
366 struct nvme_ns *ns = in nvme_ns_chr_ioctl() local
369 return __nvme_ioctl(ns, cmd, (void __user *)arg); in nvme_ns_chr_ioctl()
373 static int nvme_ns_head_ctrl_ioctl(struct nvme_ns *ns, unsigned int cmd, in nvme_ns_head_ctrl_ioctl() argument
377 struct nvme_ctrl *ctrl = ns->ctrl; in nvme_ns_head_ctrl_ioctl()
380 nvme_get_ctrl(ns->ctrl); in nvme_ns_head_ctrl_ioctl()
382 ret = nvme_ctrl_ioctl(ns->ctrl, cmd, argp); in nvme_ns_head_ctrl_ioctl()
393 struct nvme_ns *ns; in nvme_ns_head_ioctl() local
397 ns = nvme_find_path(head); in nvme_ns_head_ioctl()
398 if (!ns) in nvme_ns_head_ioctl()
403 * seperately and drop the ns SRCU reference early. This avoids a in nvme_ns_head_ioctl()
407 return nvme_ns_head_ctrl_ioctl(ns, cmd, argp, head, srcu_idx); in nvme_ns_head_ioctl()
409 ret = nvme_ns_ioctl(ns, cmd, argp); in nvme_ns_head_ioctl()
422 struct nvme_ns *ns; in nvme_ns_head_chr_ioctl() local
426 ns = nvme_find_path(head); in nvme_ns_head_chr_ioctl()
427 if (!ns) in nvme_ns_head_chr_ioctl()
431 return nvme_ns_head_ctrl_ioctl(ns, cmd, argp, head, srcu_idx); in nvme_ns_head_chr_ioctl()
433 ret = nvme_ns_ioctl(ns, cmd, argp); in nvme_ns_head_chr_ioctl()
442 struct nvme_ns *ns; in nvme_dev_user_cmd() local
451 ns = list_first_entry(&ctrl->namespaces, struct nvme_ns, list); in nvme_dev_user_cmd()
452 if (ns != list_last_entry(&ctrl->namespaces, struct nvme_ns, list)) { in nvme_dev_user_cmd()
461 kref_get(&ns->kref); in nvme_dev_user_cmd()
464 ret = nvme_user_cmd(ctrl, ns, argp); in nvme_dev_user_cmd()
465 nvme_put_ns(ns); in nvme_dev_user_cmd()