Lines Matching full:subsys

507 	struct nvmet_subsys *subsys = ns->subsys;  in nvmet_ns_device_path_store()  local
511 mutex_lock(&subsys->lock); in nvmet_ns_device_path_store()
527 mutex_unlock(&subsys->lock); in nvmet_ns_device_path_store()
531 mutex_unlock(&subsys->lock); in nvmet_ns_device_path_store()
554 mutex_lock(&ns->subsys->lock); in nvmet_ns_p2pmem_store()
571 mutex_unlock(&ns->subsys->lock); in nvmet_ns_p2pmem_store()
588 struct nvmet_subsys *subsys = ns->subsys; in nvmet_ns_device_uuid_store() local
591 mutex_lock(&subsys->lock); in nvmet_ns_device_uuid_store()
601 mutex_unlock(&subsys->lock); in nvmet_ns_device_uuid_store()
616 struct nvmet_subsys *subsys = ns->subsys; in nvmet_ns_device_nguid_store() local
622 mutex_lock(&subsys->lock); in nvmet_ns_device_nguid_store()
647 mutex_unlock(&subsys->lock); in nvmet_ns_device_nguid_store()
681 nvmet_send_ana_event(ns->subsys, NULL); in nvmet_ns_ana_grpid_store()
704 * window where it releases the subsys-lock, giving a chance to in nvmet_ns_enable_store()
734 mutex_lock(&ns->subsys->lock); in nvmet_ns_buffered_io_store()
737 mutex_unlock(&ns->subsys->lock); in nvmet_ns_buffered_io_store()
742 mutex_unlock(&ns->subsys->lock); in nvmet_ns_buffered_io_store()
760 mutex_lock(&ns->subsys->lock); in nvmet_ns_revalidate_size_store()
763 mutex_unlock(&ns->subsys->lock); in nvmet_ns_revalidate_size_store()
767 nvmet_ns_changed(ns->subsys, ns->nsid); in nvmet_ns_revalidate_size_store()
768 mutex_unlock(&ns->subsys->lock); in nvmet_ns_revalidate_size_store()
788 mutex_lock(&ns->subsys->lock); in nvmet_ns_resv_enable_store()
791 mutex_unlock(&ns->subsys->lock); in nvmet_ns_resv_enable_store()
795 mutex_unlock(&ns->subsys->lock); in nvmet_ns_resv_enable_store()
835 struct nvmet_subsys *subsys = namespaces_to_subsys(&group->cg_item); in nvmet_ns_make() local
851 ns = nvmet_ns_alloc(subsys, nsid); in nvmet_ns_make()
856 pr_info("adding nsid %d to subsystem %s\n", nsid, subsys->subsysnqn); in nvmet_ns_make()
877 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_device_path_show() local
879 return snprintf(page, PAGE_SIZE, "%s\n", subsys->passthru_ctrl_path); in nvmet_passthru_device_path_show()
885 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_device_path_store() local
889 mutex_lock(&subsys->lock); in nvmet_passthru_device_path_store()
892 if (subsys->passthru_ctrl) in nvmet_passthru_device_path_store()
900 kfree(subsys->passthru_ctrl_path); in nvmet_passthru_device_path_store()
902 subsys->passthru_ctrl_path = kstrndup(page, len, GFP_KERNEL); in nvmet_passthru_device_path_store()
903 if (!subsys->passthru_ctrl_path) in nvmet_passthru_device_path_store()
906 mutex_unlock(&subsys->lock); in nvmet_passthru_device_path_store()
910 mutex_unlock(&subsys->lock); in nvmet_passthru_device_path_store()
918 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_enable_show() local
920 return sprintf(page, "%d\n", subsys->passthru_ctrl ? 1 : 0); in nvmet_passthru_enable_show()
926 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_enable_store() local
934 ret = nvmet_passthru_ctrl_enable(subsys); in nvmet_passthru_enable_store()
936 nvmet_passthru_ctrl_disable(subsys); in nvmet_passthru_enable_store()
951 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_admin_timeout_store() local
956 subsys->admin_timeout = timeout; in nvmet_passthru_admin_timeout_store()
970 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_io_timeout_store() local
975 subsys->io_timeout = timeout; in nvmet_passthru_io_timeout_store()
989 struct nvmet_subsys *subsys = to_subsys(item->ci_parent); in nvmet_passthru_clear_ids_store() local
994 subsys->clear_ids = clear_ids; in nvmet_passthru_clear_ids_store()
1013 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys) in nvmet_add_passthru_group() argument
1015 config_group_init_type_name(&subsys->passthru_group, in nvmet_add_passthru_group()
1017 configfs_add_default_group(&subsys->passthru_group, in nvmet_add_passthru_group()
1018 &subsys->group); in nvmet_add_passthru_group()
1023 static void nvmet_add_passthru_group(struct nvmet_subsys *subsys) in nvmet_add_passthru_group() argument
1033 struct nvmet_subsys *subsys; in nvmet_port_subsys_allow_link() local
1041 subsys = to_subsys(target); in nvmet_port_subsys_allow_link()
1045 link->subsys = subsys; in nvmet_port_subsys_allow_link()
1050 if (p->subsys == subsys) in nvmet_port_subsys_allow_link()
1061 nvmet_port_disc_changed(port, subsys); in nvmet_port_subsys_allow_link()
1076 struct nvmet_subsys *subsys = to_subsys(target); in nvmet_port_subsys_drop_link() local
1081 if (p->subsys == subsys) in nvmet_port_subsys_drop_link()
1089 nvmet_port_del_ctrls(port, subsys); in nvmet_port_subsys_drop_link()
1090 nvmet_port_disc_changed(port, subsys); in nvmet_port_subsys_drop_link()
1111 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent); in nvmet_allowed_hosts_allow_link() local
1129 if (subsys->allow_any_host) { in nvmet_allowed_hosts_allow_link()
1135 list_for_each_entry(p, &subsys->hosts, entry) { in nvmet_allowed_hosts_allow_link()
1139 list_add_tail(&link->entry, &subsys->hosts); in nvmet_allowed_hosts_allow_link()
1140 nvmet_subsys_disc_changed(subsys, host); in nvmet_allowed_hosts_allow_link()
1153 struct nvmet_subsys *subsys = to_subsys(parent->ci_parent); in nvmet_allowed_hosts_drop_link() local
1158 list_for_each_entry(p, &subsys->hosts, entry) { in nvmet_allowed_hosts_drop_link()
1167 nvmet_subsys_disc_changed(subsys, host); in nvmet_allowed_hosts_drop_link()
1193 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_allow_any_host_store() local
1201 if (allow_any_host && !list_empty(&subsys->hosts)) { in nvmet_subsys_attr_allow_any_host_store()
1207 if (subsys->allow_any_host != allow_any_host) { in nvmet_subsys_attr_allow_any_host_store()
1208 subsys->allow_any_host = allow_any_host; in nvmet_subsys_attr_allow_any_host_store()
1209 nvmet_subsys_disc_changed(subsys, NULL); in nvmet_subsys_attr_allow_any_host_store()
1222 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_version_show() local
1224 if (NVME_TERTIARY(subsys->ver)) in nvmet_subsys_attr_version_show()
1226 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_show()
1227 NVME_MINOR(subsys->ver), in nvmet_subsys_attr_version_show()
1228 NVME_TERTIARY(subsys->ver)); in nvmet_subsys_attr_version_show()
1231 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_show()
1232 NVME_MINOR(subsys->ver)); in nvmet_subsys_attr_version_show()
1236 nvmet_subsys_attr_version_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_version_store_locked() argument
1242 if (subsys->subsys_discovered) { in nvmet_subsys_attr_version_store_locked()
1243 if (NVME_TERTIARY(subsys->ver)) in nvmet_subsys_attr_version_store_locked()
1245 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_store_locked()
1246 NVME_MINOR(subsys->ver), in nvmet_subsys_attr_version_store_locked()
1247 NVME_TERTIARY(subsys->ver)); in nvmet_subsys_attr_version_store_locked()
1250 NVME_MAJOR(subsys->ver), in nvmet_subsys_attr_version_store_locked()
1251 NVME_MINOR(subsys->ver)); in nvmet_subsys_attr_version_store_locked()
1256 if (nvmet_is_passthru_subsys(subsys)) in nvmet_subsys_attr_version_store_locked()
1263 subsys->ver = NVME_VS(major, minor, tertiary); in nvmet_subsys_attr_version_store_locked()
1271 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_version_store() local
1275 mutex_lock(&subsys->lock); in nvmet_subsys_attr_version_store()
1276 ret = nvmet_subsys_attr_version_store_locked(subsys, page, count); in nvmet_subsys_attr_version_store()
1277 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_version_store()
1293 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_serial_show() local
1296 NVMET_SN_MAX_SIZE, subsys->serial); in nvmet_subsys_attr_serial_show()
1300 nvmet_subsys_attr_serial_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_serial_store_locked() argument
1305 if (subsys->subsys_discovered) { in nvmet_subsys_attr_serial_store_locked()
1307 subsys->serial); in nvmet_subsys_attr_serial_store_locked()
1324 memcpy_and_pad(subsys->serial, NVMET_SN_MAX_SIZE, page, len, ' '); in nvmet_subsys_attr_serial_store_locked()
1332 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_serial_store() local
1336 mutex_lock(&subsys->lock); in nvmet_subsys_attr_serial_store()
1337 ret = nvmet_subsys_attr_serial_store_locked(subsys, page, count); in nvmet_subsys_attr_serial_store()
1338 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_serial_store()
1451 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_model_show() local
1453 return snprintf(page, PAGE_SIZE, "%s\n", subsys->model_number); in nvmet_subsys_attr_model_show()
1456 static ssize_t nvmet_subsys_attr_model_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_model_store_locked() argument
1462 if (subsys->subsys_discovered) { in nvmet_subsys_attr_model_store_locked()
1464 subsys->model_number); in nvmet_subsys_attr_model_store_locked()
1486 kfree(subsys->model_number); in nvmet_subsys_attr_model_store_locked()
1487 subsys->model_number = val; in nvmet_subsys_attr_model_store_locked()
1494 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_model_store() local
1498 mutex_lock(&subsys->lock); in nvmet_subsys_attr_model_store()
1499 ret = nvmet_subsys_attr_model_store_locked(subsys, page, count); in nvmet_subsys_attr_model_store()
1500 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_model_store()
1510 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_ieee_oui_show() local
1512 return sysfs_emit(page, "0x%06x\n", subsys->ieee_oui); in nvmet_subsys_attr_ieee_oui_show()
1515 static ssize_t nvmet_subsys_attr_ieee_oui_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_ieee_oui_store_locked() argument
1521 if (subsys->subsys_discovered) { in nvmet_subsys_attr_ieee_oui_store_locked()
1523 subsys->ieee_oui); in nvmet_subsys_attr_ieee_oui_store_locked()
1534 subsys->ieee_oui = val; in nvmet_subsys_attr_ieee_oui_store_locked()
1542 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_ieee_oui_store() local
1546 mutex_lock(&subsys->lock); in nvmet_subsys_attr_ieee_oui_store()
1547 ret = nvmet_subsys_attr_ieee_oui_store_locked(subsys, page, count); in nvmet_subsys_attr_ieee_oui_store()
1548 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_ieee_oui_store()
1558 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_firmware_show() local
1560 return sysfs_emit(page, "%s\n", subsys->firmware_rev); in nvmet_subsys_attr_firmware_show()
1563 static ssize_t nvmet_subsys_attr_firmware_store_locked(struct nvmet_subsys *subsys, in nvmet_subsys_attr_firmware_store_locked() argument
1569 if (subsys->subsys_discovered) { in nvmet_subsys_attr_firmware_store_locked()
1571 subsys->firmware_rev); in nvmet_subsys_attr_firmware_store_locked()
1594 kfree(subsys->firmware_rev); in nvmet_subsys_attr_firmware_store_locked()
1596 subsys->firmware_rev = val; in nvmet_subsys_attr_firmware_store_locked()
1604 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_firmware_store() local
1608 mutex_lock(&subsys->lock); in nvmet_subsys_attr_firmware_store()
1609 ret = nvmet_subsys_attr_firmware_store_locked(subsys, page, count); in nvmet_subsys_attr_firmware_store()
1610 mutex_unlock(&subsys->lock); in nvmet_subsys_attr_firmware_store()
1627 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_pi_enable_store() local
1633 subsys->pi_support = pi_enable; in nvmet_subsys_attr_pi_enable_store()
1648 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_attr_qid_max_store() local
1659 subsys->max_qid = qid_max; in nvmet_subsys_attr_qid_max_store()
1662 list_for_each_entry(ctrl, &subsys->ctrls, subsys_entry) in nvmet_subsys_attr_qid_max_store()
1693 struct nvmet_subsys *subsys = to_subsys(item); in nvmet_subsys_release() local
1695 nvmet_subsys_del_ctrls(subsys); in nvmet_subsys_release()
1696 nvmet_subsys_put(subsys); in nvmet_subsys_release()
1712 struct nvmet_subsys *subsys; in nvmet_subsys_make() local
1724 subsys = nvmet_subsys_alloc(name, NVME_NQN_NVME); in nvmet_subsys_make()
1725 if (IS_ERR(subsys)) in nvmet_subsys_make()
1726 return ERR_CAST(subsys); in nvmet_subsys_make()
1728 config_group_init_type_name(&subsys->group, name, &nvmet_subsys_type); in nvmet_subsys_make()
1730 config_group_init_type_name(&subsys->namespaces_group, in nvmet_subsys_make()
1732 configfs_add_default_group(&subsys->namespaces_group, &subsys->group); in nvmet_subsys_make()
1734 config_group_init_type_name(&subsys->allowed_hosts_group, in nvmet_subsys_make()
1736 configfs_add_default_group(&subsys->allowed_hosts_group, in nvmet_subsys_make()
1737 &subsys->group); in nvmet_subsys_make()
1739 nvmet_add_passthru_group(subsys); in nvmet_subsys_make()
1741 return &subsys->group; in nvmet_subsys_make()