Lines Matching refs:rport
359 struct fc_rport *rport = starget_to_rport(starget); in fc_target_setup() local
366 if (rport) { in fc_target_setup()
367 fc_starget_node_name(starget) = rport->node_name; in fc_target_setup()
368 fc_starget_port_name(starget) = rport->port_name; in fc_target_setup()
369 fc_starget_port_id(starget) = rport->port_id; in fc_target_setup()
652 struct fc_rport *rport; in fc_find_rport_by_wwpn() local
657 list_for_each_entry(rport, &fc_host_rports(shost), peers) { in fc_find_rport_by_wwpn()
658 if (rport->port_state != FC_PORTSTATE_ONLINE) in fc_find_rport_by_wwpn()
661 if (rport->port_name == wwpn) { in fc_find_rport_by_wwpn()
663 return rport; in fc_find_rport_by_wwpn()
766 struct fc_rport *rport = NULL; in fc_fpin_li_stats_update() local
772 rport = fc_find_rport_by_wwpn(shost, in fc_fpin_li_stats_update()
774 if (rport && in fc_fpin_li_stats_update()
775 (rport->roles & FC_PORT_ROLE_FCP_TARGET || in fc_fpin_li_stats_update()
776 rport->roles & FC_PORT_ROLE_NVME_TARGET)) { in fc_fpin_li_stats_update()
777 attach_rport = rport; in fc_fpin_li_stats_update()
786 rport = fc_find_rport_by_wwpn(shost, wwpn); in fc_fpin_li_stats_update()
787 if (rport && in fc_fpin_li_stats_update()
788 (rport->roles & FC_PORT_ROLE_FCP_TARGET || in fc_fpin_li_stats_update()
789 rport->roles & FC_PORT_ROLE_NVME_TARGET)) { in fc_fpin_li_stats_update()
790 if (rport == attach_rport) in fc_fpin_li_stats_update()
793 &rport->fpin_stats); in fc_fpin_li_stats_update()
813 struct fc_rport *rport = NULL; in fc_fpin_delivery_stats_update() local
819 rport = fc_find_rport_by_wwpn(shost, in fc_fpin_delivery_stats_update()
821 if (rport && in fc_fpin_delivery_stats_update()
822 (rport->roles & FC_PORT_ROLE_FCP_TARGET || in fc_fpin_delivery_stats_update()
823 rport->roles & FC_PORT_ROLE_NVME_TARGET)) { in fc_fpin_delivery_stats_update()
824 attach_rport = rport; in fc_fpin_delivery_stats_update()
845 struct fc_rport *rport = NULL; in fc_fpin_peer_congn_stats_update() local
852 rport = fc_find_rport_by_wwpn(shost, in fc_fpin_peer_congn_stats_update()
854 if (rport && in fc_fpin_peer_congn_stats_update()
855 (rport->roles & FC_PORT_ROLE_FCP_TARGET || in fc_fpin_peer_congn_stats_update()
856 rport->roles & FC_PORT_ROLE_NVME_TARGET)) { in fc_fpin_peer_congn_stats_update()
857 attach_rport = rport; in fc_fpin_peer_congn_stats_update()
866 rport = fc_find_rport_by_wwpn(shost, wwpn); in fc_fpin_peer_congn_stats_update()
867 if (rport && in fc_fpin_peer_congn_stats_update()
868 (rport->roles & FC_PORT_ROLE_FCP_TARGET || in fc_fpin_peer_congn_stats_update()
869 rport->roles & FC_PORT_ROLE_NVME_TARGET)) { in fc_fpin_peer_congn_stats_update()
870 if (rport == attach_rport) in fc_fpin_peer_congn_stats_update()
873 &rport->fpin_stats); in fc_fpin_peer_congn_stats_update()
993 struct fc_rport *rport = transport_class_to_rport(dev); \
994 struct Scsi_Host *shost = rport_to_shost(rport); \
997 !((rport->port_state == FC_PORTSTATE_BLOCKED) || \
998 (rport->port_state == FC_PORTSTATE_DELETED) || \
999 (rport->port_state == FC_PORTSTATE_NOTPRESENT))) \
1000 i->f->get_rport_##field(rport); \
1001 return snprintf(buf, sz, format_string, cast rport->field); \
1011 struct fc_rport *rport = transport_class_to_rport(dev); \
1012 struct Scsi_Host *shost = rport_to_shost(rport); \
1015 if ((rport->port_state == FC_PORTSTATE_BLOCKED) || \
1016 (rport->port_state == FC_PORTSTATE_DELETED) || \
1017 (rport->port_state == FC_PORTSTATE_NOTPRESENT)) \
1022 i->f->set_rport_##field(rport, val); \
1028 static FC_DEVICE_ATTR(rport, field, S_IRUGO, \
1033 static FC_DEVICE_ATTR(rport, field, S_IRUGO, \
1039 static FC_DEVICE_ATTR(rport, field, S_IRUGO | S_IWUSR, \
1049 struct fc_rport *rport = transport_class_to_rport(dev); \
1050 return snprintf(buf, sz, format_string, cast rport->field); \
1055 static FC_DEVICE_ATTR(rport, field, S_IRUGO, \
1060 static FC_DEVICE_ATTR(rport, field, S_IRUGO, \
1069 struct fc_rport *rport = transport_class_to_rport(dev); \
1071 name = get_fc_##title##_name(rport->title); \
1076 static FC_DEVICE_ATTR(rport, title, S_IRUGO, \
1123 struct fc_rport *rport = transport_class_to_rport(dev); in show_fc_rport_supported_classes() local
1124 if (rport->supported_classes == FC_COS_UNSPECIFIED) in show_fc_rport_supported_classes()
1126 return get_fc_cos_names(rport->supported_classes, buf); in show_fc_rport_supported_classes()
1128 static FC_DEVICE_ATTR(rport, supported_classes, S_IRUGO,
1152 static int fc_rport_set_dev_loss_tmo(struct fc_rport *rport, in fc_rport_set_dev_loss_tmo() argument
1155 struct Scsi_Host *shost = rport_to_shost(rport); in fc_rport_set_dev_loss_tmo()
1158 if ((rport->port_state == FC_PORTSTATE_BLOCKED) || in fc_rport_set_dev_loss_tmo()
1159 (rport->port_state == FC_PORTSTATE_DELETED) || in fc_rport_set_dev_loss_tmo()
1160 (rport->port_state == FC_PORTSTATE_NOTPRESENT)) in fc_rport_set_dev_loss_tmo()
1172 if (rport->fast_io_fail_tmo == -1 && in fc_rport_set_dev_loss_tmo()
1176 i->f->set_rport_dev_loss_tmo(rport, val); in fc_rport_set_dev_loss_tmo()
1185 struct fc_rport *rport = transport_class_to_rport(dev); in store_fc_rport_dev_loss_tmo() local
1193 rc = fc_rport_set_dev_loss_tmo(rport, val); in store_fc_rport_dev_loss_tmo()
1198 static FC_DEVICE_ATTR(rport, dev_loss_tmo, S_IRUGO | S_IWUSR,
1212 struct fc_rport *rport = transport_class_to_rport(dev); in show_fc_rport_roles() local
1215 if ((rport->port_id != -1) && in show_fc_rport_roles()
1216 (rport->port_id & FC_WELLKNOWN_PORTID_MASK) == in show_fc_rport_roles()
1218 switch (rport->port_id & FC_WELLKNOWN_ROLE_MASK) { in show_fc_rport_roles()
1233 if (rport->roles == FC_PORT_ROLE_UNKNOWN) in show_fc_rport_roles()
1235 return get_fc_port_roles_names(rport->roles, buf); in show_fc_rport_roles()
1238 static FC_DEVICE_ATTR(rport, roles, S_IRUGO,
1245 struct fc_rport *rport = transport_class_to_rport(dev); in fc_rport_set_marginal_state() local
1258 if (rport->port_state == FC_PORTSTATE_ONLINE) in fc_rport_set_marginal_state()
1259 rport->port_state = port_state; in fc_rport_set_marginal_state()
1268 if (rport->port_state == FC_PORTSTATE_MARGINAL) in fc_rport_set_marginal_state()
1269 rport->port_state = port_state; in fc_rport_set_marginal_state()
1282 struct fc_rport *rport = transport_class_to_rport(dev); in show_fc_rport_port_state() local
1284 name = get_fc_port_state_name(rport->port_state); in show_fc_rport_port_state()
1291 static FC_DEVICE_ATTR(rport, port_state, 0444 | 0200,
1303 struct fc_rport *rport = transport_class_to_rport(dev); in show_fc_rport_fast_io_fail_tmo() local
1305 if (rport->fast_io_fail_tmo == -1) in show_fc_rport_fast_io_fail_tmo()
1307 return snprintf(buf, 20, "%d\n", rport->fast_io_fail_tmo); in show_fc_rport_fast_io_fail_tmo()
1317 struct fc_rport *rport = transport_class_to_rport(dev); in store_fc_rport_fast_io_fail_tmo() local
1319 if ((rport->port_state == FC_PORTSTATE_BLOCKED) || in store_fc_rport_fast_io_fail_tmo()
1320 (rport->port_state == FC_PORTSTATE_DELETED) || in store_fc_rport_fast_io_fail_tmo()
1321 (rport->port_state == FC_PORTSTATE_NOTPRESENT)) in store_fc_rport_fast_io_fail_tmo()
1324 rport->fast_io_fail_tmo = -1; in store_fc_rport_fast_io_fail_tmo()
1333 if ((val >= rport->dev_loss_tmo) || in store_fc_rport_fast_io_fail_tmo()
1337 rport->fast_io_fail_tmo = val; in store_fc_rport_fast_io_fail_tmo()
1341 static FC_DEVICE_ATTR(rport, fast_io_fail_tmo, S_IRUGO | S_IWUSR,
1349 struct fc_rport *rport = transport_class_to_rport(cd); \
1351 return snprintf(buf, 20, "0x%llx\n", rport->fpin_stats.name); \
1353 static FC_DEVICE_ATTR(rport, fpin_##name, 0444, fc_rport_fpinstat_##name, NULL)
1424 struct fc_rport *rport = starget_to_rport(starget); \
1425 if (rport) \
1426 fc_starget_##field(starget) = rport->field; \
2013 struct fc_rport *rport; in store_fc_private_host_tgtid_bind_type() local
2024 get_list_head_entry(rport, in store_fc_private_host_tgtid_bind_type()
2026 list_del(&rport->peers); in store_fc_private_host_tgtid_bind_type()
2027 rport->port_state = FC_PORTSTATE_DELETED; in store_fc_private_host_tgtid_bind_type()
2028 fc_queue_work(shost, &rport->rport_delete_work); in store_fc_private_host_tgtid_bind_type()
2068 struct fc_rport *rport; in store_fc_private_host_dev_loss_tmo() local
2078 list_for_each_entry(rport, &fc_host->rports, peers) in store_fc_private_host_dev_loss_tmo()
2079 fc_rport_set_dev_loss_tmo(rport, val); in store_fc_private_host_dev_loss_tmo()
2452 struct fc_rport *rport = dev_to_rport(dev); in fc_rport_dev_release() local
2454 kfree(rport); in fc_rport_dev_release()
2541 struct fc_rport *rport = starget_to_rport(scsi_target(scmd->device)); in fc_eh_timed_out() local
2543 if (rport->port_state == FC_PORTSTATE_BLOCKED) in fc_eh_timed_out()
2558 struct fc_rport *rport; in fc_user_scan_tgt() local
2563 list_for_each_entry(rport, &fc_host_rports(shost), peers) { in fc_user_scan_tgt()
2564 if (rport->scsi_target_id == -1) in fc_user_scan_tgt()
2567 if ((rport->port_state != FC_PORTSTATE_ONLINE) && in fc_user_scan_tgt()
2568 (rport->port_state != FC_PORTSTATE_MARGINAL)) in fc_user_scan_tgt()
2571 if ((channel == rport->channel) && in fc_user_scan_tgt()
2572 (id == rport->scsi_target_id)) { in fc_user_scan_tgt()
2574 scsi_scan_target(&rport->dev, channel, id, lun, in fc_user_scan_tgt()
2885 struct fc_rport *rport = NULL, *next_rport = NULL; in fc_remove_host() local
2899 list_for_each_entry_safe(rport, next_rport, in fc_remove_host()
2901 list_del(&rport->peers); in fc_remove_host()
2902 rport->port_state = FC_PORTSTATE_DELETED; in fc_remove_host()
2903 fc_queue_work(shost, &rport->rport_delete_work); in fc_remove_host()
2906 list_for_each_entry_safe(rport, next_rport, in fc_remove_host()
2908 list_del(&rport->peers); in fc_remove_host()
2909 rport->port_state = FC_PORTSTATE_DELETED; in fc_remove_host()
2910 fc_queue_work(shost, &rport->rport_delete_work); in fc_remove_host()
2934 static void fc_terminate_rport_io(struct fc_rport *rport) in fc_terminate_rport_io() argument
2936 struct Scsi_Host *shost = rport_to_shost(rport); in fc_terminate_rport_io()
2941 i->f->terminate_rport_io(rport); in fc_terminate_rport_io()
2946 scsi_target_unblock(&rport->dev, SDEV_TRANSPORT_OFFLINE); in fc_terminate_rport_io()
2958 struct fc_rport *rport = in fc_starget_delete() local
2961 fc_terminate_rport_io(rport); in fc_starget_delete()
2962 scsi_remove_target(&rport->dev); in fc_starget_delete()
2973 struct fc_rport *rport = in fc_rport_final_delete() local
2975 struct device *dev = &rport->dev; in fc_rport_final_delete()
2976 struct Scsi_Host *shost = rport_to_shost(rport); in fc_rport_final_delete()
2981 fc_terminate_rport_io(rport); in fc_rport_final_delete()
2987 if (rport->flags & FC_RPORT_SCAN_PENDING) in fc_rport_final_delete()
2996 if (rport->flags & FC_RPORT_DEVLOSS_PENDING) { in fc_rport_final_delete()
2998 if (!cancel_delayed_work(&rport->fail_io_work)) in fc_rport_final_delete()
3000 if (!cancel_delayed_work(&rport->dev_loss_work)) in fc_rport_final_delete()
3002 cancel_work_sync(&rport->scan_work); in fc_rport_final_delete()
3004 rport->flags &= ~FC_RPORT_DEVLOSS_PENDING; in fc_rport_final_delete()
3009 if (rport->scsi_target_id != -1) in fc_rport_final_delete()
3010 fc_starget_delete(&rport->stgt_delete_work); in fc_rport_final_delete()
3020 if (!(rport->flags & FC_RPORT_DEVLOSS_CALLBK_DONE) && in fc_rport_final_delete()
3022 rport->flags |= FC_RPORT_DEVLOSS_CALLBK_DONE; in fc_rport_final_delete()
3028 i->f->dev_loss_tmo_callbk(rport); in fc_rport_final_delete()
3030 fc_bsg_remove(rport->rqst_q); in fc_rport_final_delete()
3059 struct fc_rport *rport; in fc_remote_port_create() local
3066 rport = kzalloc(size, GFP_KERNEL); in fc_remote_port_create()
3067 if (unlikely(!rport)) { in fc_remote_port_create()
3072 rport->maxframe_size = -1; in fc_remote_port_create()
3073 rport->supported_classes = FC_COS_UNSPECIFIED; in fc_remote_port_create()
3074 rport->dev_loss_tmo = fc_host->dev_loss_tmo; in fc_remote_port_create()
3075 memcpy(&rport->node_name, &ids->node_name, sizeof(rport->node_name)); in fc_remote_port_create()
3076 memcpy(&rport->port_name, &ids->port_name, sizeof(rport->port_name)); in fc_remote_port_create()
3077 rport->port_id = ids->port_id; in fc_remote_port_create()
3078 rport->roles = ids->roles; in fc_remote_port_create()
3079 rport->port_state = FC_PORTSTATE_ONLINE; in fc_remote_port_create()
3081 rport->dd_data = &rport[1]; in fc_remote_port_create()
3082 rport->channel = channel; in fc_remote_port_create()
3083 rport->fast_io_fail_tmo = -1; in fc_remote_port_create()
3085 INIT_DELAYED_WORK(&rport->dev_loss_work, fc_timeout_deleted_rport); in fc_remote_port_create()
3086 INIT_DELAYED_WORK(&rport->fail_io_work, fc_timeout_fail_rport_io); in fc_remote_port_create()
3087 INIT_WORK(&rport->scan_work, fc_scsi_scan_rport); in fc_remote_port_create()
3088 INIT_WORK(&rport->stgt_delete_work, fc_starget_delete); in fc_remote_port_create()
3089 INIT_WORK(&rport->rport_delete_work, fc_rport_final_delete); in fc_remote_port_create()
3093 rport->number = fc_host->next_rport_number++; in fc_remote_port_create()
3094 if ((rport->roles & FC_PORT_ROLE_FCP_TARGET) || in fc_remote_port_create()
3095 (rport->roles & FC_PORT_ROLE_FCP_DUMMY_INITIATOR)) in fc_remote_port_create()
3096 rport->scsi_target_id = fc_host->next_target_id++; in fc_remote_port_create()
3098 rport->scsi_target_id = -1; in fc_remote_port_create()
3099 list_add_tail(&rport->peers, &fc_host->rports); in fc_remote_port_create()
3104 dev = &rport->dev; in fc_remote_port_create()
3109 shost->host_no, channel, rport->number); in fc_remote_port_create()
3120 fc_bsg_rportadd(shost, rport); in fc_remote_port_create()
3123 if (rport->roles & FC_PORT_ROLE_FCP_TARGET) { in fc_remote_port_create()
3125 rport->flags |= FC_RPORT_SCAN_PENDING; in fc_remote_port_create()
3126 scsi_queue_work(shost, &rport->scan_work); in fc_remote_port_create()
3129 return rport; in fc_remote_port_create()
3134 list_del(&rport->peers); in fc_remote_port_create()
3138 kfree(rport); in fc_remote_port_create()
3186 struct fc_rport *rport; in fc_remote_port_add() local
3200 list_for_each_entry(rport, &fc_host->rports, peers) { in fc_remote_port_add()
3202 if ((rport->port_state == FC_PORTSTATE_BLOCKED || in fc_remote_port_add()
3203 rport->port_state == FC_PORTSTATE_NOTPRESENT) && in fc_remote_port_add()
3204 (rport->channel == channel)) { in fc_remote_port_add()
3209 if (rport->port_name == ids->port_name) in fc_remote_port_add()
3213 if (rport->node_name == ids->node_name) in fc_remote_port_add()
3217 if (rport->port_id == ids->port_id) in fc_remote_port_add()
3224 memcpy(&rport->node_name, &ids->node_name, in fc_remote_port_add()
3225 sizeof(rport->node_name)); in fc_remote_port_add()
3226 memcpy(&rport->port_name, &ids->port_name, in fc_remote_port_add()
3227 sizeof(rport->port_name)); in fc_remote_port_add()
3228 rport->port_id = ids->port_id; in fc_remote_port_add()
3230 rport->port_state = FC_PORTSTATE_ONLINE; in fc_remote_port_add()
3231 rport->roles = ids->roles; in fc_remote_port_add()
3236 memset(rport->dd_data, 0, in fc_remote_port_add()
3256 if ((rport->scsi_target_id != -1) && in fc_remote_port_add()
3258 return rport; in fc_remote_port_add()
3265 if (!cancel_delayed_work(&rport->fail_io_work)) in fc_remote_port_add()
3267 if (!cancel_delayed_work(&rport->dev_loss_work)) in fc_remote_port_add()
3272 rport->flags &= ~(FC_RPORT_FAST_FAIL_TIMEDOUT | in fc_remote_port_add()
3279 if (rport->scsi_target_id != -1) { in fc_remote_port_add()
3280 scsi_target_unblock(&rport->dev, in fc_remote_port_add()
3284 rport->flags |= FC_RPORT_SCAN_PENDING; in fc_remote_port_add()
3286 &rport->scan_work); in fc_remote_port_add()
3291 fc_bsg_goose_queue(rport); in fc_remote_port_add()
3293 return rport; in fc_remote_port_add()
3306 list_for_each_entry(rport, &fc_host->rport_bindings, in fc_remote_port_add()
3308 if (rport->channel != channel) in fc_remote_port_add()
3313 if (rport->port_name == ids->port_name) in fc_remote_port_add()
3317 if (rport->node_name == ids->node_name) in fc_remote_port_add()
3321 if (rport->port_id == ids->port_id) in fc_remote_port_add()
3329 list_move_tail(&rport->peers, &fc_host->rports); in fc_remote_port_add()
3335 memcpy(&rport->node_name, &ids->node_name, in fc_remote_port_add()
3336 sizeof(rport->node_name)); in fc_remote_port_add()
3337 memcpy(&rport->port_name, &ids->port_name, in fc_remote_port_add()
3338 sizeof(rport->port_name)); in fc_remote_port_add()
3339 rport->port_id = ids->port_id; in fc_remote_port_add()
3340 rport->port_state = FC_PORTSTATE_ONLINE; in fc_remote_port_add()
3341 rport->flags &= ~FC_RPORT_FAST_FAIL_TIMEDOUT; in fc_remote_port_add()
3344 memset(rport->dd_data, 0, in fc_remote_port_add()
3348 fc_remote_port_rolechg(rport, ids->roles); in fc_remote_port_add()
3349 return rport; in fc_remote_port_add()
3356 rport = fc_remote_port_create(shost, channel, ids); in fc_remote_port_add()
3358 return rport; in fc_remote_port_add()
3416 fc_remote_port_delete(struct fc_rport *rport) in fc_remote_port_delete() argument
3418 struct Scsi_Host *shost = rport_to_shost(rport); in fc_remote_port_delete()
3419 unsigned long timeout = rport->dev_loss_tmo; in fc_remote_port_delete()
3432 if ((rport->port_state != FC_PORTSTATE_ONLINE) && in fc_remote_port_delete()
3433 (rport->port_state != FC_PORTSTATE_MARGINAL)) { in fc_remote_port_delete()
3451 rport->port_state = FC_PORTSTATE_BLOCKED; in fc_remote_port_delete()
3453 rport->flags |= FC_RPORT_DEVLOSS_PENDING; in fc_remote_port_delete()
3457 scsi_target_block(&rport->dev); in fc_remote_port_delete()
3460 if ((rport->fast_io_fail_tmo != -1) && in fc_remote_port_delete()
3461 (rport->fast_io_fail_tmo < timeout)) in fc_remote_port_delete()
3462 fc_queue_devloss_work(shost, &rport->fail_io_work, in fc_remote_port_delete()
3463 rport->fast_io_fail_tmo * HZ); in fc_remote_port_delete()
3466 fc_queue_devloss_work(shost, &rport->dev_loss_work, timeout * HZ); in fc_remote_port_delete()
3491 fc_remote_port_rolechg(struct fc_rport *rport, u32 roles) in fc_remote_port_rolechg() argument
3493 struct Scsi_Host *shost = rport_to_shost(rport); in fc_remote_port_rolechg()
3500 if (rport->scsi_target_id == -1) { in fc_remote_port_rolechg()
3501 rport->scsi_target_id = fc_host->next_target_id++; in fc_remote_port_rolechg()
3503 } else if (!(rport->roles & FC_PORT_ROLE_FCP_TARGET)) in fc_remote_port_rolechg()
3507 rport->roles = roles; in fc_remote_port_rolechg()
3524 if (!cancel_delayed_work(&rport->fail_io_work)) in fc_remote_port_rolechg()
3526 if (!cancel_delayed_work(&rport->dev_loss_work)) in fc_remote_port_rolechg()
3530 rport->flags &= ~(FC_RPORT_FAST_FAIL_TIMEDOUT | in fc_remote_port_rolechg()
3538 scsi_target_unblock(&rport->dev, SDEV_RUNNING); in fc_remote_port_rolechg()
3541 rport->flags |= FC_RPORT_SCAN_PENDING; in fc_remote_port_rolechg()
3542 scsi_queue_work(shost, &rport->scan_work); in fc_remote_port_rolechg()
3558 struct fc_rport *rport = in fc_timeout_deleted_rport() local
3560 struct Scsi_Host *shost = rport_to_shost(rport); in fc_timeout_deleted_rport()
3568 rport->flags &= ~FC_RPORT_DEVLOSS_PENDING; in fc_timeout_deleted_rport()
3575 if (((rport->port_state == FC_PORTSTATE_ONLINE) || in fc_timeout_deleted_rport()
3576 (rport->port_state == FC_PORTSTATE_MARGINAL)) && in fc_timeout_deleted_rport()
3577 (rport->scsi_target_id != -1) && in fc_timeout_deleted_rport()
3578 !(rport->roles & FC_PORT_ROLE_FCP_TARGET)) { in fc_timeout_deleted_rport()
3579 dev_printk(KERN_ERR, &rport->dev, in fc_timeout_deleted_rport()
3583 scsi_target_unblock(&rport->dev, SDEV_TRANSPORT_OFFLINE); in fc_timeout_deleted_rport()
3584 fc_queue_work(shost, &rport->stgt_delete_work); in fc_timeout_deleted_rport()
3589 if (rport->port_state != FC_PORTSTATE_BLOCKED) { in fc_timeout_deleted_rport()
3591 dev_printk(KERN_ERR, &rport->dev, in fc_timeout_deleted_rport()
3594 (rport->scsi_target_id != -1) ? " and starget" : ""); in fc_timeout_deleted_rport()
3599 (rport->scsi_target_id == -1)) { in fc_timeout_deleted_rport()
3600 list_del(&rport->peers); in fc_timeout_deleted_rport()
3601 rport->port_state = FC_PORTSTATE_DELETED; in fc_timeout_deleted_rport()
3602 dev_printk(KERN_ERR, &rport->dev, in fc_timeout_deleted_rport()
3605 (rport->scsi_target_id != -1) ? " and starget" : ""); in fc_timeout_deleted_rport()
3606 fc_queue_work(shost, &rport->rport_delete_work); in fc_timeout_deleted_rport()
3611 dev_printk(KERN_ERR, &rport->dev, in fc_timeout_deleted_rport()
3615 list_move_tail(&rport->peers, &fc_host->rport_bindings); in fc_timeout_deleted_rport()
3626 rport->maxframe_size = -1; in fc_timeout_deleted_rport()
3627 rport->supported_classes = FC_COS_UNSPECIFIED; in fc_timeout_deleted_rport()
3628 rport->roles = FC_PORT_ROLE_UNKNOWN; in fc_timeout_deleted_rport()
3629 rport->port_state = FC_PORTSTATE_NOTPRESENT; in fc_timeout_deleted_rport()
3630 rport->flags &= ~FC_RPORT_FAST_FAIL_TIMEDOUT; in fc_timeout_deleted_rport()
3638 fc_terminate_rport_io(rport); in fc_timeout_deleted_rport()
3642 if (rport->port_state == FC_PORTSTATE_NOTPRESENT) { /* still missing */ in fc_timeout_deleted_rport()
3647 rport->node_name = -1; in fc_timeout_deleted_rport()
3648 rport->port_id = -1; in fc_timeout_deleted_rport()
3651 rport->port_name = -1; in fc_timeout_deleted_rport()
3652 rport->port_id = -1; in fc_timeout_deleted_rport()
3655 rport->node_name = -1; in fc_timeout_deleted_rport()
3656 rport->port_name = -1; in fc_timeout_deleted_rport()
3667 rport->flags |= FC_RPORT_DEVLOSS_CALLBK_DONE; in fc_timeout_deleted_rport()
3668 fc_queue_work(shost, &rport->stgt_delete_work); in fc_timeout_deleted_rport()
3682 i->f->dev_loss_tmo_callbk(rport); in fc_timeout_deleted_rport()
3696 struct fc_rport *rport = in fc_timeout_fail_rport_io() local
3699 if (rport->port_state != FC_PORTSTATE_BLOCKED) in fc_timeout_fail_rport_io()
3702 rport->flags |= FC_RPORT_FAST_FAIL_TIMEDOUT; in fc_timeout_fail_rport_io()
3703 fc_terminate_rport_io(rport); in fc_timeout_fail_rport_io()
3713 struct fc_rport *rport = in fc_scsi_scan_rport() local
3715 struct Scsi_Host *shost = rport_to_shost(rport); in fc_scsi_scan_rport()
3719 if (((rport->port_state == FC_PORTSTATE_ONLINE) || in fc_scsi_scan_rport()
3720 (rport->port_state == FC_PORTSTATE_MARGINAL)) && in fc_scsi_scan_rport()
3721 (rport->roles & FC_PORT_ROLE_FCP_TARGET) && in fc_scsi_scan_rport()
3723 scsi_scan_target(&rport->dev, rport->channel, in fc_scsi_scan_rport()
3724 rport->scsi_target_id, SCAN_WILD_CARD, in fc_scsi_scan_rport()
3729 rport->flags &= ~FC_RPORT_SCAN_PENDING; in fc_scsi_scan_rport()
3747 int fc_block_rport(struct fc_rport *rport) in fc_block_rport() argument
3749 struct Scsi_Host *shost = rport_to_shost(rport); in fc_block_rport()
3753 while (rport->port_state == FC_PORTSTATE_BLOCKED && in fc_block_rport()
3754 !(rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT)) { in fc_block_rport()
3761 if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT) in fc_block_rport()
3784 struct fc_rport *rport = starget_to_rport(scsi_target(cmnd->device)); in fc_block_scsi_eh() local
3786 if (WARN_ON_ONCE(!rport)) in fc_block_scsi_eh()
3789 return fc_block_rport(rport); in fc_block_scsi_eh()
3804 struct fc_rport *rport = starget_to_rport(scsi_target(scmd->device)); in fc_eh_should_retry_cmd() local
3806 if ((rport->port_state != FC_PORTSTATE_ONLINE) && in fc_eh_should_retry_cmd()
4056 struct fc_rport *rport = fc_bsg_to_rport(job); in fc_bsg_job_timeout() local
4060 if (rport && rport->port_state == FC_PORTSTATE_BLOCKED) in fc_bsg_job_timeout()
4167 fc_bsg_goose_queue(struct fc_rport *rport) in fc_bsg_goose_queue() argument
4169 struct request_queue *q = rport->rqst_q; in fc_bsg_goose_queue()
4240 static blk_status_t fc_bsg_rport_prep(struct fc_rport *rport) in fc_bsg_rport_prep() argument
4242 if (rport->port_state == FC_PORTSTATE_BLOCKED && in fc_bsg_rport_prep()
4243 !(rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT)) in fc_bsg_rport_prep()
4246 if ((rport->port_state != FC_PORTSTATE_ONLINE) && in fc_bsg_rport_prep()
4247 (rport->port_state != FC_PORTSTATE_MARGINAL)) in fc_bsg_rport_prep()
4256 struct fc_rport *rport = fc_bsg_to_rport(job); in fc_bsg_dispatch_prep() local
4259 ret = fc_bsg_rport_prep(rport); in fc_bsg_dispatch_prep()
4313 fc_bsg_rportadd(struct Scsi_Host *shost, struct fc_rport *rport) in fc_bsg_rportadd() argument
4315 struct device *dev = &rport->dev; in fc_bsg_rportadd()
4319 rport->rqst_q = NULL; in fc_bsg_rportadd()
4332 rport->rqst_q = q; in fc_bsg_rportadd()