Lines Matching refs:subsys
345 struct nvmet_subsys *subsys = ns->subsys; in nvmet_ns_device_path_store() local
349 mutex_lock(&subsys->lock); in nvmet_ns_device_path_store()
365 mutex_unlock(&subsys->lock); in nvmet_ns_device_path_store()
369 mutex_unlock(&subsys->lock); in nvmet_ns_device_path_store()
392 mutex_lock(&ns->subsys->lock); in nvmet_ns_p2pmem_store()
409 mutex_unlock(&ns->subsys->lock); in nvmet_ns_p2pmem_store()
426 struct nvmet_subsys *subsys = ns->subsys; in nvmet_ns_device_uuid_store() local
429 mutex_lock(&subsys->lock); in nvmet_ns_device_uuid_store()
439 mutex_unlock(&subsys->lock); in nvmet_ns_device_uuid_store()
454 struct nvmet_subsys *subsys = ns->subsys; in nvmet_ns_device_nguid_store() local
460 mutex_lock(&subsys->lock); in nvmet_ns_device_nguid_store()
485 mutex_unlock(&subsys->lock); in nvmet_ns_device_nguid_store()
518 nvmet_send_ana_event(ns->subsys, NULL); in nvmet_ns_ana_grpid_store()
563 mutex_lock(&ns->subsys->lock); in nvmet_ns_buffered_io_store()
566 mutex_unlock(&ns->subsys->lock); in nvmet_ns_buffered_io_store()
571 mutex_unlock(&ns->subsys->lock); in nvmet_ns_buffered_io_store()
589 mutex_lock(&ns->subsys->lock); in nvmet_ns_revalidate_size_store()
592 mutex_unlock(&ns->subsys->lock); in nvmet_ns_revalidate_size_store()
596 nvmet_ns_changed(ns->subsys, ns->nsid); in nvmet_ns_revalidate_size_store()
597 mutex_unlock(&ns->subsys->lock); in nvmet_ns_revalidate_size_store()
637 struct nvmet_subsys *subsys = namespaces_to_subsys(&group->cg_item); in nvmet_ns_make() local
653 ns = nvmet_ns_alloc(subsys, nsid); in nvmet_ns_make()
658 pr_info("adding nsid %d to subsystem %s\n", nsid, subsys->subsysnqn); in nvmet_ns_make()
679 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_device_path_show() local
681 return snprintf(page, PAGE_SIZE, "%s\n", subsys->passthru_ctrl_path); in nvmet_passthru_device_path_show()
687 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_device_path_store() local
691 mutex_lock(&subsys->lock); in nvmet_passthru_device_path_store()
694 if (subsys->passthru_ctrl) in nvmet_passthru_device_path_store()
702 kfree(subsys->passthru_ctrl_path); in nvmet_passthru_device_path_store()
704 subsys->passthru_ctrl_path = kstrndup(page, len, GFP_KERNEL); in nvmet_passthru_device_path_store()
705 if (!subsys->passthru_ctrl_path) in nvmet_passthru_device_path_store()
708 mutex_unlock(&subsys->lock); in nvmet_passthru_device_path_store()
712 mutex_unlock(&subsys->lock); in nvmet_passthru_device_path_store()
720 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_enable_show() local
722 return sprintf(page, "%d\n", subsys->passthru_ctrl ? 1 : 0); in nvmet_passthru_enable_show()
728 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_enable_store() local
736 ret = nvmet_passthru_ctrl_enable(subsys); in nvmet_passthru_enable_store()
738 nvmet_passthru_ctrl_disable(subsys); in nvmet_passthru_enable_store()
753 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_admin_timeout_store() local
758 subsys->admin_timeout = timeout; in nvmet_passthru_admin_timeout_store()
772 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_io_timeout_store() local
777 subsys->io_timeout = timeout; in nvmet_passthru_io_timeout_store()
791 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_clear_ids_store() local
796 subsys->clear_ids = clear_ids; in nvmet_passthru_clear_ids_store()
815 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys) in nvmet_add_passthru_group() argument
817 config_group_init_type_name(&subsys->passthru_group, in nvmet_add_passthru_group()
819 configfs_add_default_group(&subsys->passthru_group, in nvmet_add_passthru_group()
820 &subsys->group); in nvmet_add_passthru_group()
825 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys) in nvmet_add_passthru_group() argument
835 struct nvmet_subsys *subsys; in nvmet_port_subsys_allow_link() local
843 subsys = to_subsys(target); in nvmet_port_subsys_allow_link()
847 link->subsys = subsys; in nvmet_port_subsys_allow_link()
852 if (p->subsys == subsys) in nvmet_port_subsys_allow_link()
863 nvmet_port_disc_changed(port, subsys); in nvmet_port_subsys_allow_link()
878 struct nvmet_subsys *subsys = to_subsys(target); in nvmet_port_subsys_drop_link() local
883 if (p->subsys == subsys) in nvmet_port_subsys_drop_link()
891 nvmet_port_del_ctrls(port, subsys); in nvmet_port_subsys_drop_link()
892 nvmet_port_disc_changed(port, subsys); in nvmet_port_subsys_drop_link()
913 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent); in nvmet_allowed_hosts_allow_link() local
931 if (subsys->allow_any_host) { in nvmet_allowed_hosts_allow_link()
937 list_for_each_entry(p, &subsys->hosts, entry) { in nvmet_allowed_hosts_allow_link()
941 list_add_tail(&link->entry, &subsys->hosts); in nvmet_allowed_hosts_allow_link()
942 nvmet_subsys_disc_changed(subsys, host); in nvmet_allowed_hosts_allow_link()
955 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent); in nvmet_allowed_hosts_drop_link() local
960 list_for_each_entry(p, &subsys->hosts, entry) { in nvmet_allowed_hosts_drop_link()
969 nvmet_subsys_disc_changed(subsys, host); in nvmet_allowed_hosts_drop_link()
995 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_allow_any_host_store() local
1003 if (allow_any_host && !list_empty(&subsys->hosts)) { in nvmet_subsys_attr_allow_any_host_store()
1009 if (subsys->allow_any_host != allow_any_host) { in nvmet_subsys_attr_allow_any_host_store()
1010 subsys->allow_any_host = allow_any_host; in nvmet_subsys_attr_allow_any_host_store()
1011 nvmet_subsys_disc_changed(subsys, NULL); in nvmet_subsys_attr_allow_any_host_store()
1024 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_version_show() local
1026 if (NVME_TERTIARY(subsys->ver)) in nvmet_subsys_attr_version_show()
1028 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_show()
1029 NVME_MINOR(subsys->ver), in nvmet_subsys_attr_version_show()
1030 NVME_TERTIARY(subsys->ver)); in nvmet_subsys_attr_version_show()
1033 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_show()
1034 NVME_MINOR(subsys->ver)); in nvmet_subsys_attr_version_show()
1038 nvmet_subsys_attr_version_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_version_store_locked() argument
1044 if (subsys->subsys_discovered) { in nvmet_subsys_attr_version_store_locked()
1045 if (NVME_TERTIARY(subsys->ver)) in nvmet_subsys_attr_version_store_locked()
1047 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_store_locked()
1048 NVME_MINOR(subsys->ver), in nvmet_subsys_attr_version_store_locked()
1049 NVME_TERTIARY(subsys->ver)); in nvmet_subsys_attr_version_store_locked()
1052 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_store_locked()
1053 NVME_MINOR(subsys->ver)); in nvmet_subsys_attr_version_store_locked()
1058 if (nvmet_is_passthru_subsys(subsys)) in nvmet_subsys_attr_version_store_locked()
1065 subsys->ver = NVME_VS(major, minor, tertiary); in nvmet_subsys_attr_version_store_locked()
1073 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_version_store() local
1077 mutex_lock(&subsys->lock); in nvmet_subsys_attr_version_store()
1078 ret = nvmet_subsys_attr_version_store_locked(subsys, page, count); in nvmet_subsys_attr_version_store()
1079 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_version_store()
1095 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_serial_show() local
1098 NVMET_SN_MAX_SIZE, subsys->serial); in nvmet_subsys_attr_serial_show()
1102 nvmet_subsys_attr_serial_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_serial_store_locked() argument
1107 if (subsys->subsys_discovered) { in nvmet_subsys_attr_serial_store_locked()
1109 subsys->serial); in nvmet_subsys_attr_serial_store_locked()
1126 memcpy_and_pad(subsys->serial, NVMET_SN_MAX_SIZE, page, len, ' '); in nvmet_subsys_attr_serial_store_locked()
1134 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_serial_store() local
1138 mutex_lock(&subsys->lock); in nvmet_subsys_attr_serial_store()
1139 ret = nvmet_subsys_attr_serial_store_locked(subsys, page, count); in nvmet_subsys_attr_serial_store()
1140 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_serial_store()
1210 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_model_show() local
1212 return snprintf(page, PAGE_SIZE, "%s\n", subsys->model_number); in nvmet_subsys_attr_model_show()
1215 static ssize_t nvmet_subsys_attr_model_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_model_store_locked() argument
1221 if (subsys->subsys_discovered) { in nvmet_subsys_attr_model_store_locked()
1223 subsys->model_number); in nvmet_subsys_attr_model_store_locked()
1245 kfree(subsys->model_number); in nvmet_subsys_attr_model_store_locked()
1246 subsys->model_number = val; in nvmet_subsys_attr_model_store_locked()
1253 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_model_store() local
1257 mutex_lock(&subsys->lock); in nvmet_subsys_attr_model_store()
1258 ret = nvmet_subsys_attr_model_store_locked(subsys, page, count); in nvmet_subsys_attr_model_store()
1259 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_model_store()
1269 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_ieee_oui_show() local
1271 return sysfs_emit(page, "0x%06x\n", subsys->ieee_oui); in nvmet_subsys_attr_ieee_oui_show()
1274 static ssize_t nvmet_subsys_attr_ieee_oui_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_ieee_oui_store_locked() argument
1280 if (subsys->subsys_discovered) { in nvmet_subsys_attr_ieee_oui_store_locked()
1282 subsys->ieee_oui); in nvmet_subsys_attr_ieee_oui_store_locked()
1293 subsys->ieee_oui = val; in nvmet_subsys_attr_ieee_oui_store_locked()
1301 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_ieee_oui_store() local
1305 mutex_lock(&subsys->lock); in nvmet_subsys_attr_ieee_oui_store()
1306 ret = nvmet_subsys_attr_ieee_oui_store_locked(subsys, page, count); in nvmet_subsys_attr_ieee_oui_store()
1307 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_ieee_oui_store()
1317 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_firmware_show() local
1319 return sysfs_emit(page, "%s\n", subsys->firmware_rev); in nvmet_subsys_attr_firmware_show()
1322 static ssize_t nvmet_subsys_attr_firmware_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_firmware_store_locked() argument
1328 if (subsys->subsys_discovered) { in nvmet_subsys_attr_firmware_store_locked()
1330 subsys->firmware_rev); in nvmet_subsys_attr_firmware_store_locked()
1353 kfree(subsys->firmware_rev); in nvmet_subsys_attr_firmware_store_locked()
1355 subsys->firmware_rev = val; in nvmet_subsys_attr_firmware_store_locked()
1363 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_firmware_store() local
1367 mutex_lock(&subsys->lock); in nvmet_subsys_attr_firmware_store()
1368 ret = nvmet_subsys_attr_firmware_store_locked(subsys, page, count); in nvmet_subsys_attr_firmware_store()
1369 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_firmware_store()
1386 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_pi_enable_store() local
1392 subsys->pi_support = pi_enable; in nvmet_subsys_attr_pi_enable_store()
1407 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_qid_max_store() local
1418 subsys->max_qid = qid_max; in nvmet_subsys_attr_qid_max_store()
1421 list_for_each_entry(ctrl, &subsys->ctrls, subsys_entry) in nvmet_subsys_attr_qid_max_store()
1450 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_release() local
1452 nvmet_subsys_del_ctrls(subsys); in nvmet_subsys_release()
1453 nvmet_subsys_put(subsys); in nvmet_subsys_release()
1469 struct nvmet_subsys *subsys; in nvmet_subsys_make() local
1476 subsys = nvmet_subsys_alloc(name, NVME_NQN_NVME); in nvmet_subsys_make()
1477 if (IS_ERR(subsys)) in nvmet_subsys_make()
1478 return ERR_CAST(subsys); in nvmet_subsys_make()
1480 config_group_init_type_name(&subsys->group, name, &nvmet_subsys_type); in nvmet_subsys_make()
1482 config_group_init_type_name(&subsys->namespaces_group, in nvmet_subsys_make()
1484 configfs_add_default_group(&subsys->namespaces_group, &subsys->group); in nvmet_subsys_make()
1486 config_group_init_type_name(&subsys->allowed_hosts_group, in nvmet_subsys_make()
1488 configfs_add_default_group(&subsys->allowed_hosts_group, in nvmet_subsys_make()
1489 &subsys->group); in nvmet_subsys_make()
1491 nvmet_add_passthru_group(subsys); in nvmet_subsys_make()
1493 return &subsys->group; in nvmet_subsys_make()