Lines Matching refs:subsys

346 	struct nvmet_subsys *subsys = ns->subsys;
350 mutex_lock(&subsys->lock);
366 mutex_unlock(&subsys->lock);
370 mutex_unlock(&subsys->lock);
393 mutex_lock(&ns->subsys->lock);
410 mutex_unlock(&ns->subsys->lock);
427 struct nvmet_subsys *subsys = ns->subsys;
430 mutex_lock(&subsys->lock);
440 mutex_unlock(&subsys->lock);
455 struct nvmet_subsys *subsys = ns->subsys;
461 mutex_lock(&subsys->lock);
486 mutex_unlock(&subsys->lock);
520 nvmet_send_ana_event(ns->subsys, NULL);
565 mutex_lock(&ns->subsys->lock);
568 mutex_unlock(&ns->subsys->lock);
573 mutex_unlock(&ns->subsys->lock);
591 mutex_lock(&ns->subsys->lock);
594 mutex_unlock(&ns->subsys->lock);
598 nvmet_ns_changed(ns->subsys, ns->nsid);
599 mutex_unlock(&ns->subsys->lock);
639 struct nvmet_subsys *subsys = namespaces_to_subsys(&group->cg_item);
655 ns = nvmet_ns_alloc(subsys, nsid);
660 pr_info("adding nsid %d to subsystem %s\n", nsid, subsys->subsysnqn);
681 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
683 return snprintf(page, PAGE_SIZE, "%s\n", subsys->passthru_ctrl_path);
689 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
693 mutex_lock(&subsys->lock);
696 if (subsys->passthru_ctrl)
704 kfree(subsys->passthru_ctrl_path);
706 subsys->passthru_ctrl_path = kstrndup(page, len, GFP_KERNEL);
707 if (!subsys->passthru_ctrl_path)
710 mutex_unlock(&subsys->lock);
714 mutex_unlock(&subsys->lock);
722 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
724 return sprintf(page, "%d\n", subsys->passthru_ctrl ? 1 : 0);
730 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
738 ret = nvmet_passthru_ctrl_enable(subsys);
740 nvmet_passthru_ctrl_disable(subsys);
755 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
760 subsys->admin_timeout = timeout;
774 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
779 subsys->io_timeout = timeout;
793 struct nvmet_subsys *subsys = to_subsys(item->ci_parent);
798 subsys->clear_ids = clear_ids;
817 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys)
819 config_group_init_type_name(&subsys->passthru_group,
821 configfs_add_default_group(&subsys->passthru_group,
822 &subsys->group);
827 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys)
837 struct nvmet_subsys *subsys;
845 subsys = to_subsys(target);
849 link->subsys = subsys;
854 if (p->subsys == subsys)
865 nvmet_port_disc_changed(port, subsys);
880 struct nvmet_subsys *subsys = to_subsys(target);
885 if (p->subsys == subsys)
893 nvmet_port_del_ctrls(port, subsys);
894 nvmet_port_disc_changed(port, subsys);
915 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent);
933 if (subsys->allow_any_host) {
939 list_for_each_entry(p, &subsys->hosts, entry) {
943 list_add_tail(&link->entry, &subsys->hosts);
944 nvmet_subsys_disc_changed(subsys, host);
957 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent);
962 list_for_each_entry(p, &subsys->hosts, entry) {
971 nvmet_subsys_disc_changed(subsys, host);
997 struct nvmet_subsys *subsys = to_subsys(item);
1005 if (allow_any_host && !list_empty(&subsys->hosts)) {
1011 if (subsys->allow_any_host != allow_any_host) {
1012 subsys->allow_any_host = allow_any_host;
1013 nvmet_subsys_disc_changed(subsys, NULL);
1026 struct nvmet_subsys *subsys = to_subsys(item);
1028 if (NVME_TERTIARY(subsys->ver))
1030 NVME_MAJOR(subsys->ver),
1031 NVME_MINOR(subsys->ver),
1032 NVME_TERTIARY(subsys->ver));
1035 NVME_MAJOR(subsys->ver),
1036 NVME_MINOR(subsys->ver));
1040 nvmet_subsys_attr_version_store_locked(struct nvmet_subsys *subsys,
1046 if (subsys->subsys_discovered) {
1047 if (NVME_TERTIARY(subsys->ver))
1049 NVME_MAJOR(subsys->ver),
1050 NVME_MINOR(subsys->ver),
1051 NVME_TERTIARY(subsys->ver));
1054 NVME_MAJOR(subsys->ver),
1055 NVME_MINOR(subsys->ver));
1060 if (nvmet_is_passthru_subsys(subsys))
1067 subsys->ver = NVME_VS(major, minor, tertiary);
1075 struct nvmet_subsys *subsys = to_subsys(item);
1079 mutex_lock(&subsys->lock);
1080 ret = nvmet_subsys_attr_version_store_locked(subsys, page, count);
1081 mutex_unlock(&subsys->lock);
1097 struct nvmet_subsys *subsys = to_subsys(item);
1100 NVMET_SN_MAX_SIZE, subsys->serial);
1104 nvmet_subsys_attr_serial_store_locked(struct nvmet_subsys *subsys,
1109 if (subsys->subsys_discovered) {
1111 subsys->serial);
1128 memcpy_and_pad(subsys->serial, NVMET_SN_MAX_SIZE, page, len, ' ');
1136 struct nvmet_subsys *subsys = to_subsys(item);
1140 mutex_lock(&subsys->lock);
1141 ret = nvmet_subsys_attr_serial_store_locked(subsys, page, count);
1142 mutex_unlock(&subsys->lock);
1212 struct nvmet_subsys *subsys = to_subsys(item);
1214 return snprintf(page, PAGE_SIZE, "%s\n", subsys->model_number);
1217 static ssize_t nvmet_subsys_attr_model_store_locked(struct nvmet_subsys *subsys,
1223 if (subsys->subsys_discovered) {
1225 subsys->model_number);
1247 kfree(subsys->model_number);
1248 subsys->model_number = val;
1255 struct nvmet_subsys *subsys = to_subsys(item);
1259 mutex_lock(&subsys->lock);
1260 ret = nvmet_subsys_attr_model_store_locked(subsys, page, count);
1261 mutex_unlock(&subsys->lock);
1271 struct nvmet_subsys *subsys = to_subsys(item);
1273 return sysfs_emit(page, "0x%06x\n", subsys->ieee_oui);
1276 static ssize_t nvmet_subsys_attr_ieee_oui_store_locked(struct nvmet_subsys *subsys,
1282 if (subsys->subsys_discovered) {
1284 subsys->ieee_oui);
1295 subsys->ieee_oui = val;
1303 struct nvmet_subsys *subsys = to_subsys(item);
1307 mutex_lock(&subsys->lock);
1308 ret = nvmet_subsys_attr_ieee_oui_store_locked(subsys, page, count);
1309 mutex_unlock(&subsys->lock);
1319 struct nvmet_subsys *subsys = to_subsys(item);
1321 return sysfs_emit(page, "%s\n", subsys->firmware_rev);
1324 static ssize_t nvmet_subsys_attr_firmware_store_locked(struct nvmet_subsys *subsys,
1330 if (subsys->subsys_discovered) {
1332 subsys->firmware_rev);
1355 kfree(subsys->firmware_rev);
1357 subsys->firmware_rev = val;
1365 struct nvmet_subsys *subsys = to_subsys(item);
1369 mutex_lock(&subsys->lock);
1370 ret = nvmet_subsys_attr_firmware_store_locked(subsys, page, count);
1371 mutex_unlock(&subsys->lock);
1388 struct nvmet_subsys *subsys = to_subsys(item);
1394 subsys->pi_support = pi_enable;
1409 struct nvmet_subsys *subsys = to_subsys(item);
1420 subsys->max_qid = qid_max;
1423 list_for_each_entry(ctrl, &subsys->ctrls, subsys_entry)
1452 struct nvmet_subsys *subsys = to_subsys(item);
1454 nvmet_subsys_del_ctrls(subsys);
1455 nvmet_subsys_put(subsys);
1471 struct nvmet_subsys *subsys;
1478 subsys = nvmet_subsys_alloc(name, NVME_NQN_NVME);
1479 if (IS_ERR(subsys))
1480 return ERR_CAST(subsys);
1482 config_group_init_type_name(&subsys->group, name, &nvmet_subsys_type);
1484 config_group_init_type_name(&subsys->namespaces_group,
1486 configfs_add_default_group(&subsys->namespaces_group, &subsys->group);
1488 config_group_init_type_name(&subsys->allowed_hosts_group,
1490 configfs_add_default_group(&subsys->allowed_hosts_group,
1491 &subsys->group);
1493 nvmet_add_passthru_group(subsys);
1495 return &subsys->group;