Lines Matching refs:lun

45 		struct se_lun *lun, int explicit, int offline);
49 static void __target_attach_tg_pt_gp(struct se_lun *lun,
150 struct se_lun *lun; in target_emulate_report_target_port_groups() local
225 list_for_each_entry(lun, &tg_pt_gp->tg_pt_gp_lun_list, in target_emulate_report_target_port_groups()
236 buf[off++] = ((lun->lun_rtpi >> 8) & 0xff); in target_emulate_report_target_port_groups()
237 buf[off++] = (lun->lun_rtpi & 0xff); in target_emulate_report_target_port_groups()
395 struct se_lun *lun; in target_emulate_set_target_port_groups() local
408 list_for_each_entry(lun, &dev->dev_sep_list, in target_emulate_set_target_port_groups()
410 if (lun->lun_rtpi != rtpi) in target_emulate_set_target_port_groups()
417 lun, 1, 1)) in target_emulate_set_target_port_groups()
685 struct se_lun *lun = cmd->se_lun; in target_alua_state_check() local
698 if (atomic_read(&lun->lun_tg_pt_secondary_offline)) { in target_alua_state_check()
705 if (!lun->lun_tg_pt_gp) in target_alua_state_check()
708 spin_lock(&lun->lun_tg_pt_gp_lock); in target_alua_state_check()
709 tg_pt_gp = lun->lun_tg_pt_gp; in target_alua_state_check()
714 spin_unlock(&lun->lun_tg_pt_gp_lock); in target_alua_state_check()
946 struct se_lun *lun; in core_alua_queue_state_change_ua() local
950 list_for_each_entry(lun, &tg_pt_gp->tg_pt_gp_lun_list, in core_alua_queue_state_change_ua()
966 if (!percpu_ref_tryget_live(&lun->lun_ref)) in core_alua_queue_state_change_ua()
970 spin_lock(&lun->lun_deve_lock); in core_alua_queue_state_change_ua()
971 list_for_each_entry(se_deve, &lun->lun_deve_list, lun_link) { in core_alua_queue_state_change_ua()
973 lockdep_is_held(&lun->lun_deve_lock)); in core_alua_queue_state_change_ua()
988 (tg_pt_gp->tg_pt_gp_alua_lun == lun)) in core_alua_queue_state_change_ua()
1002 spin_unlock(&lun->lun_deve_lock); in core_alua_queue_state_change_ua()
1005 percpu_ref_put(&lun->lun_ref); in core_alua_queue_state_change_ua()
1247 static int core_alua_update_tpg_secondary_metadata(struct se_lun *lun) in core_alua_update_tpg_secondary_metadata() argument
1249 struct se_portal_group *se_tpg = lun->lun_tpg; in core_alua_update_tpg_secondary_metadata()
1254 mutex_lock(&lun->lun_tg_pt_md_mutex); in core_alua_update_tpg_secondary_metadata()
1275 atomic_read(&lun->lun_tg_pt_secondary_offline), in core_alua_update_tpg_secondary_metadata()
1276 lun->lun_tg_pt_secondary_stat); in core_alua_update_tpg_secondary_metadata()
1280 lun->unpacked_lun); in core_alua_update_tpg_secondary_metadata()
1286 mutex_unlock(&lun->lun_tg_pt_md_mutex); in core_alua_update_tpg_secondary_metadata()
1291 struct se_lun *lun, in core_alua_set_tg_pt_secondary_state() argument
1298 spin_lock(&lun->lun_tg_pt_gp_lock); in core_alua_set_tg_pt_secondary_state()
1299 tg_pt_gp = lun->lun_tg_pt_gp; in core_alua_set_tg_pt_secondary_state()
1301 spin_unlock(&lun->lun_tg_pt_gp_lock); in core_alua_set_tg_pt_secondary_state()
1312 atomic_set(&lun->lun_tg_pt_secondary_offline, 1); in core_alua_set_tg_pt_secondary_state()
1314 atomic_set(&lun->lun_tg_pt_secondary_offline, 0); in core_alua_set_tg_pt_secondary_state()
1316 lun->lun_tg_pt_secondary_stat = (explicit) ? in core_alua_set_tg_pt_secondary_state()
1325 spin_unlock(&lun->lun_tg_pt_gp_lock); in core_alua_set_tg_pt_secondary_state()
1336 if (lun->lun_tg_pt_secondary_write_md) in core_alua_set_tg_pt_secondary_state()
1337 core_alua_update_tpg_secondary_metadata(lun); in core_alua_set_tg_pt_secondary_state()
1789 struct se_lun *lun, *next; in core_alua_free_tg_pt_gp() local
1820 list_for_each_entry_safe(lun, next, in core_alua_free_tg_pt_gp()
1822 list_del_init(&lun->lun_tg_pt_gp_link); in core_alua_free_tg_pt_gp()
1831 spin_lock(&lun->lun_tg_pt_gp_lock); in core_alua_free_tg_pt_gp()
1833 __target_attach_tg_pt_gp(lun, in core_alua_free_tg_pt_gp()
1836 lun->lun_tg_pt_gp = NULL; in core_alua_free_tg_pt_gp()
1837 spin_unlock(&lun->lun_tg_pt_gp_lock); in core_alua_free_tg_pt_gp()
1879 static void __target_attach_tg_pt_gp(struct se_lun *lun, in __target_attach_tg_pt_gp() argument
1884 assert_spin_locked(&lun->lun_tg_pt_gp_lock); in __target_attach_tg_pt_gp()
1887 lun->lun_tg_pt_gp = tg_pt_gp; in __target_attach_tg_pt_gp()
1888 list_add_tail(&lun->lun_tg_pt_gp_link, &tg_pt_gp->tg_pt_gp_lun_list); in __target_attach_tg_pt_gp()
1890 spin_lock(&lun->lun_deve_lock); in __target_attach_tg_pt_gp()
1891 list_for_each_entry(se_deve, &lun->lun_deve_list, lun_link) in __target_attach_tg_pt_gp()
1894 spin_unlock(&lun->lun_deve_lock); in __target_attach_tg_pt_gp()
1898 void target_attach_tg_pt_gp(struct se_lun *lun, in target_attach_tg_pt_gp() argument
1901 spin_lock(&lun->lun_tg_pt_gp_lock); in target_attach_tg_pt_gp()
1902 __target_attach_tg_pt_gp(lun, tg_pt_gp); in target_attach_tg_pt_gp()
1903 spin_unlock(&lun->lun_tg_pt_gp_lock); in target_attach_tg_pt_gp()
1906 static void __target_detach_tg_pt_gp(struct se_lun *lun, in __target_detach_tg_pt_gp() argument
1909 assert_spin_locked(&lun->lun_tg_pt_gp_lock); in __target_detach_tg_pt_gp()
1912 list_del_init(&lun->lun_tg_pt_gp_link); in __target_detach_tg_pt_gp()
1916 lun->lun_tg_pt_gp = NULL; in __target_detach_tg_pt_gp()
1919 void target_detach_tg_pt_gp(struct se_lun *lun) in target_detach_tg_pt_gp() argument
1923 spin_lock(&lun->lun_tg_pt_gp_lock); in target_detach_tg_pt_gp()
1924 tg_pt_gp = lun->lun_tg_pt_gp; in target_detach_tg_pt_gp()
1926 __target_detach_tg_pt_gp(lun, tg_pt_gp); in target_detach_tg_pt_gp()
1927 spin_unlock(&lun->lun_tg_pt_gp_lock); in target_detach_tg_pt_gp()
1930 ssize_t core_alua_show_tg_pt_gp_info(struct se_lun *lun, char *page) in core_alua_show_tg_pt_gp_info() argument
1936 spin_lock(&lun->lun_tg_pt_gp_lock); in core_alua_show_tg_pt_gp_info()
1937 tg_pt_gp = lun->lun_tg_pt_gp; in core_alua_show_tg_pt_gp_info()
1949 atomic_read(&lun->lun_tg_pt_secondary_offline) ? in core_alua_show_tg_pt_gp_info()
1951 core_alua_dump_status(lun->lun_tg_pt_secondary_stat)); in core_alua_show_tg_pt_gp_info()
1953 spin_unlock(&lun->lun_tg_pt_gp_lock); in core_alua_show_tg_pt_gp_info()
1959 struct se_lun *lun, in core_alua_store_tg_pt_gp_info() argument
1963 struct se_portal_group *tpg = lun->lun_tpg; in core_alua_store_tg_pt_gp_info()
1968 struct se_device *dev = rcu_dereference_raw(lun->lun_se_dev); in core_alua_store_tg_pt_gp_info()
1999 spin_lock(&lun->lun_tg_pt_gp_lock); in core_alua_store_tg_pt_gp_info()
2000 tg_pt_gp = lun->lun_tg_pt_gp; in core_alua_store_tg_pt_gp_info()
2013 config_item_name(&lun->lun_group.cg_item), in core_alua_store_tg_pt_gp_info()
2018 __target_detach_tg_pt_gp(lun, tg_pt_gp); in core_alua_store_tg_pt_gp_info()
2019 __target_attach_tg_pt_gp(lun, in core_alua_store_tg_pt_gp_info()
2021 spin_unlock(&lun->lun_tg_pt_gp_lock); in core_alua_store_tg_pt_gp_info()
2025 __target_detach_tg_pt_gp(lun, tg_pt_gp); in core_alua_store_tg_pt_gp_info()
2029 __target_attach_tg_pt_gp(lun, tg_pt_gp_new); in core_alua_store_tg_pt_gp_info()
2030 spin_unlock(&lun->lun_tg_pt_gp_lock); in core_alua_store_tg_pt_gp_info()
2035 config_item_name(&lun->lun_group.cg_item), in core_alua_store_tg_pt_gp_info()
2211 ssize_t core_alua_show_offline_bit(struct se_lun *lun, char *page) in core_alua_show_offline_bit() argument
2214 atomic_read(&lun->lun_tg_pt_secondary_offline)); in core_alua_show_offline_bit()
2218 struct se_lun *lun, in core_alua_store_offline_bit() argument
2226 struct se_device *dev = rcu_dereference_raw(lun->lun_se_dev); in core_alua_store_offline_bit()
2245 ret = core_alua_set_tg_pt_secondary_state(lun, 0, (int)tmp); in core_alua_store_offline_bit()
2253 struct se_lun *lun, in core_alua_show_secondary_status() argument
2256 return sprintf(page, "%d\n", lun->lun_tg_pt_secondary_stat); in core_alua_show_secondary_status()
2260 struct se_lun *lun, in core_alua_store_secondary_status() argument
2279 lun->lun_tg_pt_secondary_stat = (int)tmp; in core_alua_store_secondary_status()
2285 struct se_lun *lun, in core_alua_show_secondary_write_metadata() argument
2288 return sprintf(page, "%d\n", lun->lun_tg_pt_secondary_write_md); in core_alua_show_secondary_write_metadata()
2292 struct se_lun *lun, in core_alua_store_secondary_write_metadata() argument
2309 lun->lun_tg_pt_secondary_write_md = (int)tmp; in core_alua_store_secondary_write_metadata()