Lines Matching refs:subsys
341 struct nvmet_subsys *subsys = ns->subsys;
345 mutex_lock(&subsys->lock);
361 mutex_unlock(&subsys->lock);
365 mutex_unlock(&subsys->lock);
388 mutex_lock(&ns->subsys->lock);
405 mutex_unlock(&ns->subsys->lock);
422 struct nvmet_subsys *subsys = ns->subsys;
425 mutex_lock(&subsys->lock);
435 mutex_unlock(&subsys->lock);
450 struct nvmet_subsys *subsys = ns->subsys;
456 mutex_lock(&subsys->lock);
481 mutex_unlock(&subsys->lock);
514 nvmet_send_ana_event(ns->subsys, NULL);
559 mutex_lock(&ns->subsys->lock);
562 mutex_unlock(&ns->subsys->lock);
567 mutex_unlock(&ns->subsys->lock);
585 mutex_lock(&ns->subsys->lock);
588 mutex_unlock(&ns->subsys->lock);
592 mutex_unlock(&ns->subsys->lock);
632 struct nvmet_subsys *subsys = namespaces_to_subsys(&group->cg_item);
648 ns = nvmet_ns_alloc(subsys, nsid);
653 pr_info("adding nsid %d to subsystem %s\n", nsid, subsys->subsysnqn);
674 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
676 return snprintf(page, PAGE_SIZE, "%s\n", subsys->passthru_ctrl_path);
682 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
686 mutex_lock(&subsys->lock);
689 if (subsys->passthru_ctrl)
697 kfree(subsys->passthru_ctrl_path);
699 subsys->passthru_ctrl_path = kstrndup(page, len, GFP_KERNEL);
700 if (!subsys->passthru_ctrl_path)
703 mutex_unlock(&subsys->lock);
707 mutex_unlock(&subsys->lock);
715 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
717 return sprintf(page, "%d\n", subsys->passthru_ctrl ? 1 : 0);
723 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
731 ret = nvmet_passthru_ctrl_enable(subsys);
733 nvmet_passthru_ctrl_disable(subsys);
750 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys)
752 config_group_init_type_name(&subsys->passthru_group,
754 configfs_add_default_group(&subsys->passthru_group,
755 &subsys->group);
760 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys)
770 struct nvmet_subsys *subsys;
778 subsys = to_subsys(target);
782 link->subsys = subsys;
787 if (p->subsys == subsys)
798 nvmet_port_disc_changed(port, subsys);
813 struct nvmet_subsys *subsys = to_subsys(target);
818 if (p->subsys == subsys)
826 nvmet_port_del_ctrls(port, subsys);
827 nvmet_port_disc_changed(port, subsys);
848 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent);
866 if (subsys->allow_any_host) {
872 list_for_each_entry(p, &subsys->hosts, entry) {
876 list_add_tail(&link->entry, &subsys->hosts);
877 nvmet_subsys_disc_changed(subsys, host);
890 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent);
895 list_for_each_entry(p, &subsys->hosts, entry) {
904 nvmet_subsys_disc_changed(subsys, host);
930 struct nvmet_subsys *subsys = to_subsys(item);
938 if (allow_any_host && !list_empty(&subsys->hosts)) {
944 if (subsys->allow_any_host != allow_any_host) {
945 subsys->allow_any_host = allow_any_host;
946 nvmet_subsys_disc_changed(subsys, NULL);
959 struct nvmet_subsys *subsys = to_subsys(item);
961 if (NVME_TERTIARY(subsys->ver))
963 NVME_MAJOR(subsys->ver),
964 NVME_MINOR(subsys->ver),
965 NVME_TERTIARY(subsys->ver));
968 NVME_MAJOR(subsys->ver),
969 NVME_MINOR(subsys->ver));
975 struct nvmet_subsys *subsys = to_subsys(item);
980 if (nvmet_passthru_ctrl(subsys))
988 subsys->ver = NVME_VS(major, minor, tertiary);
998 struct nvmet_subsys *subsys = to_subsys(item);
1000 return snprintf(page, PAGE_SIZE, "%llx\n", subsys->serial);
1082 struct nvmet_subsys *subsys = to_subsys(item);
1088 subsys_model = rcu_dereference(subsys->model);
1106 struct nvmet_subsys *subsys = to_subsys(item);
1132 mutex_lock(&subsys->lock);
1133 new_model = rcu_replace_pointer(subsys->model, new_model,
1134 mutex_is_locked(&subsys->lock));
1135 mutex_unlock(&subsys->lock);
1155 struct nvmet_subsys *subsys = to_subsys(item);
1161 subsys->pi_support = pi_enable;
1185 struct nvmet_subsys *subsys = to_subsys(item);
1187 nvmet_subsys_del_ctrls(subsys);
1188 nvmet_subsys_put(subsys);
1204 struct nvmet_subsys *subsys;
1211 subsys = nvmet_subsys_alloc(name, NVME_NQN_NVME);
1212 if (IS_ERR(subsys))
1213 return ERR_CAST(subsys);
1215 config_group_init_type_name(&subsys->group, name, &nvmet_subsys_type);
1217 config_group_init_type_name(&subsys->namespaces_group,
1219 configfs_add_default_group(&subsys->namespaces_group, &subsys->group);
1221 config_group_init_type_name(&subsys->allowed_hosts_group,
1223 configfs_add_default_group(&subsys->allowed_hosts_group,
1224 &subsys->group);
1226 nvmet_add_passthru_group(subsys);
1228 return &subsys->group;