Lines Matching refs:rport
58 struct nvme_fc_rport *rport; member
70 struct nvme_fc_rport *rport; member
157 struct nvme_fc_rport *rport; member
501 struct nvme_fc_rport *rport) in nvme_fc_signal_discovery_scan() argument
507 if (!(rport->remoteport.port_role & FC_PORT_ROLE_NVME_DISCOVERY)) in nvme_fc_signal_discovery_scan()
515 rport->remoteport.node_name, rport->remoteport.port_name); in nvme_fc_signal_discovery_scan()
522 struct nvme_fc_rport *rport = in nvme_fc_free_rport() local
525 localport_to_lport(rport->remoteport.localport); in nvme_fc_free_rport()
528 WARN_ON(rport->remoteport.port_state != FC_OBJSTATE_DELETED); in nvme_fc_free_rport()
529 WARN_ON(!list_empty(&rport->ctrl_list)); in nvme_fc_free_rport()
533 list_del(&rport->endp_list); in nvme_fc_free_rport()
536 WARN_ON(!list_empty(&rport->disc_list)); in nvme_fc_free_rport()
537 ida_simple_remove(&lport->endp_cnt, rport->remoteport.port_num); in nvme_fc_free_rport()
539 kfree(rport); in nvme_fc_free_rport()
545 nvme_fc_rport_put(struct nvme_fc_rport *rport) in nvme_fc_rport_put() argument
547 kref_put(&rport->ref, nvme_fc_free_rport); in nvme_fc_rport_put()
551 nvme_fc_rport_get(struct nvme_fc_rport *rport) in nvme_fc_rport_get() argument
553 return kref_get_unless_zero(&rport->ref); in nvme_fc_rport_get()
591 struct nvme_fc_rport *rport; in nvme_fc_attach_to_suspended_rport() local
597 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_attach_to_suspended_rport()
598 if (rport->remoteport.node_name != pinfo->node_name || in nvme_fc_attach_to_suspended_rport()
599 rport->remoteport.port_name != pinfo->port_name) in nvme_fc_attach_to_suspended_rport()
602 if (!nvme_fc_rport_get(rport)) { in nvme_fc_attach_to_suspended_rport()
603 rport = ERR_PTR(-ENOLCK); in nvme_fc_attach_to_suspended_rport()
609 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_attach_to_suspended_rport()
612 if (rport->remoteport.port_state != FC_OBJSTATE_DELETED) { in nvme_fc_attach_to_suspended_rport()
614 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_attach_to_suspended_rport()
615 nvme_fc_rport_put(rport); in nvme_fc_attach_to_suspended_rport()
619 rport->remoteport.port_role = pinfo->port_role; in nvme_fc_attach_to_suspended_rport()
620 rport->remoteport.port_id = pinfo->port_id; in nvme_fc_attach_to_suspended_rport()
621 rport->remoteport.port_state = FC_OBJSTATE_ONLINE; in nvme_fc_attach_to_suspended_rport()
622 rport->dev_loss_end = 0; in nvme_fc_attach_to_suspended_rport()
628 list_for_each_entry(ctrl, &rport->ctrl_list, ctrl_list) in nvme_fc_attach_to_suspended_rport()
631 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_attach_to_suspended_rport()
633 return rport; in nvme_fc_attach_to_suspended_rport()
636 rport = NULL; in nvme_fc_attach_to_suspended_rport()
641 return rport; in nvme_fc_attach_to_suspended_rport()
645 __nvme_fc_set_dev_loss_tmo(struct nvme_fc_rport *rport, in __nvme_fc_set_dev_loss_tmo() argument
649 rport->remoteport.dev_loss_tmo = pinfo->dev_loss_tmo; in __nvme_fc_set_dev_loss_tmo()
651 rport->remoteport.dev_loss_tmo = NVME_FC_DEFAULT_DEV_LOSS_TMO; in __nvme_fc_set_dev_loss_tmo()
765 nvme_fc_abort_lsops(struct nvme_fc_rport *rport) in nvme_fc_abort_lsops() argument
771 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_abort_lsops()
773 list_for_each_entry(lsop, &rport->ls_req_list, lsreq_list) { in nvme_fc_abort_lsops()
776 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_abort_lsops()
777 rport->lport->ops->ls_abort(&rport->lport->localport, in nvme_fc_abort_lsops()
778 &rport->remoteport, in nvme_fc_abort_lsops()
783 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_abort_lsops()
854 struct nvme_fc_rport *rport = remoteport_to_rport(portptr); in nvme_fc_unregister_remoteport() local
861 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_unregister_remoteport()
864 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_unregister_remoteport()
869 rport->dev_loss_end = jiffies + (portptr->dev_loss_tmo * HZ); in nvme_fc_unregister_remoteport()
871 list_for_each_entry(ctrl, &rport->ctrl_list, ctrl_list) { in nvme_fc_unregister_remoteport()
882 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_unregister_remoteport()
884 nvme_fc_abort_lsops(rport); in nvme_fc_unregister_remoteport()
886 if (atomic_read(&rport->act_ctrl_cnt) == 0) in nvme_fc_unregister_remoteport()
887 rport->lport->ops->remoteport_delete(portptr); in nvme_fc_unregister_remoteport()
894 nvme_fc_rport_put(rport); in nvme_fc_unregister_remoteport()
911 struct nvme_fc_rport *rport = remoteport_to_rport(remoteport); in nvme_fc_rescan_remoteport() local
913 nvme_fc_signal_discovery_scan(rport->lport, rport); in nvme_fc_rescan_remoteport()
921 struct nvme_fc_rport *rport = remoteport_to_rport(portptr); in nvme_fc_set_remoteport_devloss() local
924 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_set_remoteport_devloss()
927 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_set_remoteport_devloss()
932 rport->remoteport.dev_loss_tmo = dev_loss_tmo; in nvme_fc_set_remoteport_devloss()
934 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_set_remoteport_devloss()
1039 struct nvme_fc_rport *rport = lsop->rport; in __nvme_fc_finish_ls_req() local
1043 spin_lock_irqsave(&rport->lock, flags); in __nvme_fc_finish_ls_req()
1046 spin_unlock_irqrestore(&rport->lock, flags); in __nvme_fc_finish_ls_req()
1054 spin_unlock_irqrestore(&rport->lock, flags); in __nvme_fc_finish_ls_req()
1056 fc_dma_unmap_single(rport->dev, lsreq->rqstdma, in __nvme_fc_finish_ls_req()
1060 nvme_fc_rport_put(rport); in __nvme_fc_finish_ls_req()
1064 __nvme_fc_send_ls_req(struct nvme_fc_rport *rport, in __nvme_fc_send_ls_req() argument
1072 if (rport->remoteport.port_state != FC_OBJSTATE_ONLINE) in __nvme_fc_send_ls_req()
1075 if (!nvme_fc_rport_get(rport)) in __nvme_fc_send_ls_req()
1079 lsop->rport = rport; in __nvme_fc_send_ls_req()
1084 lsreq->rqstdma = fc_dma_map_single(rport->dev, lsreq->rqstaddr, in __nvme_fc_send_ls_req()
1087 if (fc_dma_mapping_error(rport->dev, lsreq->rqstdma)) { in __nvme_fc_send_ls_req()
1093 spin_lock_irqsave(&rport->lock, flags); in __nvme_fc_send_ls_req()
1095 list_add_tail(&lsop->lsreq_list, &rport->ls_req_list); in __nvme_fc_send_ls_req()
1099 spin_unlock_irqrestore(&rport->lock, flags); in __nvme_fc_send_ls_req()
1101 ret = rport->lport->ops->ls_req(&rport->lport->localport, in __nvme_fc_send_ls_req()
1102 &rport->remoteport, lsreq); in __nvme_fc_send_ls_req()
1110 spin_lock_irqsave(&rport->lock, flags); in __nvme_fc_send_ls_req()
1113 spin_unlock_irqrestore(&rport->lock, flags); in __nvme_fc_send_ls_req()
1114 fc_dma_unmap_single(rport->dev, lsreq->rqstdma, in __nvme_fc_send_ls_req()
1118 nvme_fc_rport_put(rport); in __nvme_fc_send_ls_req()
1133 nvme_fc_send_ls_req(struct nvme_fc_rport *rport, struct nvmefc_ls_req_op *lsop) in nvme_fc_send_ls_req() argument
1139 ret = __nvme_fc_send_ls_req(rport, lsop, nvme_fc_send_ls_req_done); in nvme_fc_send_ls_req()
1166 nvme_fc_send_ls_req_async(struct nvme_fc_rport *rport, in nvme_fc_send_ls_req_async() argument
1172 return __nvme_fc_send_ls_req(rport, lsop, done); in nvme_fc_send_ls_req_async()
1232 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_admin_queue()
1347 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_queue()
1454 ret = nvme_fc_send_ls_req_async(ctrl->rport, lsop, in nvme_fc_xmt_disconnect_assoc()
1464 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp_done() local
1465 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_xmt_ls_rsp_done()
1468 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_xmt_ls_rsp_done()
1470 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_xmt_ls_rsp_done()
1479 nvme_fc_rport_put(rport); in nvme_fc_xmt_ls_rsp_done()
1485 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp() local
1486 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_xmt_ls_rsp()
1493 ret = lport->ops->xmt_ls_rsp(&lport->localport, &rport->remoteport, in nvme_fc_xmt_ls_rsp()
1505 nvme_fc_match_disconn_ls(struct nvme_fc_rport *rport, in nvme_fc_match_disconn_ls() argument
1515 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_match_disconn_ls()
1517 list_for_each_entry(ctrl, &rport->ctrl_list, ctrl_list) { in nvme_fc_match_disconn_ls()
1533 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_match_disconn_ls()
1537 dev_info(rport->lport->dev, in nvme_fc_match_disconn_ls()
1560 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_ls_disconnect_assoc() local
1573 ctrl = nvme_fc_match_disconn_ls(rport, lsop); in nvme_fc_ls_disconnect_assoc()
1579 dev_info(rport->lport->dev, in nvme_fc_ls_disconnect_assoc()
1666 struct nvme_fc_rport *rport = in nvme_fc_handle_ls_rqst_work() local
1675 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_handle_ls_rqst_work()
1676 list_for_each_entry(lsop, &rport->ls_rcv_list, lsrcv_list) { in nvme_fc_handle_ls_rqst_work()
1681 if (rport->remoteport.port_state == FC_OBJSTATE_ONLINE) { in nvme_fc_handle_ls_rqst_work()
1682 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_handle_ls_rqst_work()
1685 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_handle_ls_rqst_work()
1698 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_handle_ls_rqst_work()
1725 struct nvme_fc_rport *rport = remoteport_to_rport(portptr); in nvme_fc_rcv_ls_req() local
1726 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_rcv_ls_req()
1732 nvme_fc_rport_get(rport); in nvme_fc_rcv_ls_req()
1780 lsop->rport = rport; in nvme_fc_rcv_ls_req()
1786 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_rcv_ls_req()
1787 if (rport->remoteport.port_state != FC_OBJSTATE_ONLINE) { in nvme_fc_rcv_ls_req()
1788 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_rcv_ls_req()
1792 list_add_tail(&lsop->lsrcv_list, &rport->ls_rcv_list); in nvme_fc_rcv_ls_req()
1793 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_rcv_ls_req()
1795 schedule_work(&rport->lsrcv_work); in nvme_fc_rcv_ls_req()
1805 nvme_fc_rport_put(rport); in nvme_fc_rcv_ls_req()
1854 &ctrl->rport->remoteport, in __nvme_fc_abort_op()
2380 spin_lock_irqsave(&ctrl->rport->lock, flags); in nvme_fc_ctrl_free()
2382 spin_unlock_irqrestore(&ctrl->rport->lock, flags); in nvme_fc_ctrl_free()
2392 nvme_fc_rport_put(ctrl->rport); in nvme_fc_ctrl_free()
2664 if (ctrl->rport->remoteport.port_state != FC_OBJSTATE_ONLINE) in nvme_fc_start_fcp_op()
2731 &ctrl->rport->remoteport, in nvme_fc_start_fcp_op()
2757 if (ctrl->rport->remoteport.port_state == FC_OBJSTATE_ONLINE && in nvme_fc_start_fcp_op()
2783 if (ctrl->rport->remoteport.port_state != FC_OBJSTATE_ONLINE || in nvme_fc_queue_rq()
2984 nvme_fc_rport_active_on_lport(struct nvme_fc_rport *rport) in nvme_fc_rport_active_on_lport() argument
2986 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_rport_active_on_lport()
2992 nvme_fc_rport_inactive_on_lport(struct nvme_fc_rport *rport) in nvme_fc_rport_inactive_on_lport() argument
2994 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_rport_inactive_on_lport()
3005 struct nvme_fc_rport *rport = ctrl->rport; in nvme_fc_ctlr_active_on_rport() local
3011 cnt = atomic_inc_return(&rport->act_ctrl_cnt); in nvme_fc_ctlr_active_on_rport()
3013 nvme_fc_rport_active_on_lport(rport); in nvme_fc_ctlr_active_on_rport()
3021 struct nvme_fc_rport *rport = ctrl->rport; in nvme_fc_ctlr_inactive_on_rport() local
3022 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_ctlr_inactive_on_rport()
3027 cnt = atomic_dec_return(&rport->act_ctrl_cnt); in nvme_fc_ctlr_inactive_on_rport()
3029 if (rport->remoteport.port_state == FC_OBJSTATE_DELETED) in nvme_fc_ctlr_inactive_on_rport()
3030 lport->ops->remoteport_delete(&rport->remoteport); in nvme_fc_ctlr_inactive_on_rport()
3031 nvme_fc_rport_inactive_on_lport(rport); in nvme_fc_ctlr_inactive_on_rport()
3052 if (ctrl->rport->remoteport.port_state != FC_OBJSTATE_ONLINE) in nvme_fc_create_association()
3062 ctrl->rport->remoteport.port_name, ctrl->ctrl.opts->subsysnqn); in nvme_fc_create_association()
3273 struct nvme_fc_rport *rport = ctrl->rport; in nvme_fc_reconnect_or_delete() local
3274 struct nvme_fc_remote_port *portptr = &rport->remoteport; in nvme_fc_reconnect_or_delete()
3285 else if (time_after_eq(jiffies, rport->dev_loss_end)) in nvme_fc_reconnect_or_delete()
3294 else if (time_after(jiffies + recon_delay, rport->dev_loss_end)) in nvme_fc_reconnect_or_delete()
3295 recon_delay = rport->dev_loss_end - jiffies; in nvme_fc_reconnect_or_delete()
3331 if (ctrl->rport->remoteport.port_state == FC_OBJSTATE_ONLINE) { in nvme_fc_reset_ctrl_work()
3396 nvme_fc_existing_controller(struct nvme_fc_rport *rport, in nvme_fc_existing_controller() argument
3403 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_existing_controller()
3404 list_for_each_entry(ctrl, &rport->ctrl_list, ctrl_list) { in nvme_fc_existing_controller()
3409 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_existing_controller()
3416 struct nvme_fc_lport *lport, struct nvme_fc_rport *rport) in nvme_fc_init_ctrl() argument
3422 if (!(rport->remoteport.port_role & in nvme_fc_init_ctrl()
3429 nvme_fc_existing_controller(rport, opts)) { in nvme_fc_init_ctrl()
3467 ctrl->rport = rport; in nvme_fc_init_ctrl()
3542 spin_lock_irqsave(&rport->lock, flags); in nvme_fc_init_ctrl()
3543 list_add_tail(&ctrl->ctrl_list, &rport->ctrl_list); in nvme_fc_init_ctrl()
3544 spin_unlock_irqrestore(&rport->lock, flags); in nvme_fc_init_ctrl()
3589 nvme_fc_rport_get(rport); in nvme_fc_init_ctrl()
3681 struct nvme_fc_rport *rport; in nvme_fc_create_ctrl() local
3704 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_create_ctrl()
3705 if (rport->remoteport.node_name != raddr.nn || in nvme_fc_create_ctrl()
3706 rport->remoteport.port_name != raddr.pn || in nvme_fc_create_ctrl()
3707 rport->remoteport.port_state != FC_OBJSTATE_ONLINE) in nvme_fc_create_ctrl()
3711 if (!nvme_fc_rport_get(rport)) in nvme_fc_create_ctrl()
3716 ctrl = nvme_fc_init_ctrl(dev, opts, lport, rport); in nvme_fc_create_ctrl()
3718 nvme_fc_rport_put(rport); in nvme_fc_create_ctrl()
3747 struct nvme_fc_rport *rport; in nvme_fc_nvme_discovery_store() local
3753 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_nvme_discovery_store()
3756 if (!nvme_fc_rport_get(rport)) { in nvme_fc_nvme_discovery_store()
3775 if (list_empty(&rport->disc_list)) in nvme_fc_nvme_discovery_store()
3776 list_add_tail(&rport->disc_list, in nvme_fc_nvme_discovery_store()
3783 rport = list_first_entry(&local_disc_list, in nvme_fc_nvme_discovery_store()
3785 list_del_init(&rport->disc_list); in nvme_fc_nvme_discovery_store()
3788 lport = rport->lport; in nvme_fc_nvme_discovery_store()
3790 nvme_fc_signal_discovery_scan(lport, rport); in nvme_fc_nvme_discovery_store()
3791 nvme_fc_rport_put(rport); in nvme_fc_nvme_discovery_store()
3878 nvme_fc_delete_controllers(struct nvme_fc_rport *rport) in nvme_fc_delete_controllers() argument
3882 spin_lock(&rport->lock); in nvme_fc_delete_controllers()
3883 list_for_each_entry(ctrl, &rport->ctrl_list, ctrl_list) { in nvme_fc_delete_controllers()
3889 spin_unlock(&rport->lock); in nvme_fc_delete_controllers()
3896 struct nvme_fc_rport *rport; in nvme_fc_cleanup_for_unload() local
3899 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_cleanup_for_unload()
3900 nvme_fc_delete_controllers(rport); in nvme_fc_cleanup_for_unload()