Lines Matching refs:tgt

415  * @tgt:		ibmvfc target struct
421 static int ibmvfc_set_tgt_action(struct ibmvfc_target *tgt,
426 switch (tgt->action) {
430 tgt->action = action;
437 tgt->action = action;
443 tgt->action = action;
449 tgt->action = action;
455 tgt->action = action;
462 tgt->action = action;
468 tgt->add_rport = 0;
581 * @tgt: ibmvfc target struct
585 static void ibmvfc_del_tgt(struct ibmvfc_target *tgt)
587 if (!ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_LOGOUT_RPORT))
588 tgt->job_step = ibmvfc_tgt_implicit_logout_and_del;
589 wake_up(&tgt->vhost->work_wait_q);
601 struct ibmvfc_target *tgt;
605 list_for_each_entry(tgt, &vhost->targets, queue)
606 ibmvfc_del_tgt(tgt);
623 struct ibmvfc_target *tgt;
638 list_for_each_entry(tgt, &vhost->targets, queue) {
640 tgt->need_login = 1;
642 ibmvfc_del_tgt(tgt);
964 struct ibmvfc_target *tgt;
966 list_for_each_entry(tgt, &vhost->targets, queue)
967 if (tgt->target_id == starget->id) {
968 kref_get(&tgt->kref);
969 return tgt;
984 struct ibmvfc_target *tgt;
988 tgt = __ibmvfc_get_target(starget);
990 return tgt;
1099 struct ibmvfc_target *tgt = container_of(kref, struct ibmvfc_target, kref);
1100 kfree(tgt);
1112 struct ibmvfc_target *tgt = ibmvfc_get_target(starget);
1113 fc_starget_port_name(starget) = tgt ? tgt->ids.node_name : 0;
1114 if (tgt)
1115 kref_put(&tgt->kref, ibmvfc_release_tgt);
1127 struct ibmvfc_target *tgt = ibmvfc_get_target(starget);
1128 fc_starget_port_name(starget) = tgt ? tgt->ids.port_name : 0;
1129 if (tgt)
1130 kref_put(&tgt->kref, ibmvfc_release_tgt);
1142 struct ibmvfc_target *tgt = ibmvfc_get_target(starget);
1143 fc_starget_port_id(starget) = tgt ? tgt->scsi_id : -1;
1144 if (tgt)
1145 kref_put(&tgt->kref, ibmvfc_release_tgt);
1557 struct ibmvfc_target *tgt;
1559 list_for_each_entry(tgt, &vhost->targets, queue) {
1560 if (rport == tgt->rport) {
1561 ibmvfc_del_tgt(tgt);
1810 struct ibmvfc_target *tgt;
1818 list_for_each_entry(tgt, &vhost->targets, queue) {
1819 if (tgt->scsi_id == port_id) {
2599 struct ibmvfc_target *tgt;
2618 list_for_each_entry(tgt, &vhost->targets, queue) {
2619 if (tgt->scsi_id == rport->port_id) {
2625 if (found && tgt->action == IBMVFC_TGT_ACTION_LOGOUT_DELETED_RPORT) {
2631 ibmvfc_del_tgt(tgt);
2711 struct ibmvfc_target *tgt;
2758 list_for_each_entry(tgt, &vhost->targets, queue) {
2761 if (crq->scsi_id && cpu_to_be64(tgt->scsi_id) != crq->scsi_id)
2763 if (crq->wwpn && cpu_to_be64(tgt->ids.port_name) != crq->wwpn)
2765 if (crq->node_name && cpu_to_be64(tgt->ids.node_name) != crq->node_name)
2767 if (tgt->need_login && be64_to_cpu(crq->event) == IBMVFC_AE_ELS_LOGO)
2768 tgt->logo_rcvd = 1;
2769 if (!tgt->need_login || be64_to_cpu(crq->event) == IBMVFC_AE_ELS_PLOGI) {
2770 ibmvfc_del_tgt(tgt);
3302 * @tgt: ibmvfc target struct
3306 static void ibmvfc_init_tgt(struct ibmvfc_target *tgt,
3309 if (!ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT))
3310 tgt->job_step = job_step;
3311 wake_up(&tgt->vhost->work_wait_q);
3316 * @tgt: ibmvfc target struct
3322 static int ibmvfc_retry_tgt_init(struct ibmvfc_target *tgt,
3325 if (++tgt->init_retries > IBMVFC_MAX_TGT_INIT_RETRIES) {
3326 ibmvfc_del_tgt(tgt);
3327 wake_up(&tgt->vhost->work_wait_q);
3330 ibmvfc_init_tgt(tgt, job_step);
3375 struct ibmvfc_target *tgt = evt->tgt;
3383 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3386 tgt_dbg(tgt, "Process Login succeeded: %X %02X %04X\n",
3393 tgt->need_login = 0;
3394 tgt->ids.roles = 0;
3396 tgt->ids.roles |= FC_PORT_ROLE_FCP_TARGET;
3398 tgt->ids.roles |= FC_PORT_ROLE_FCP_INITIATOR;
3399 tgt->add_rport = 1;
3401 ibmvfc_del_tgt(tgt);
3403 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_prli);
3405 ibmvfc_del_tgt(tgt);
3407 ibmvfc_del_tgt(tgt);
3412 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_prli);
3418 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi);
3419 else if (tgt->logo_rcvd)
3420 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi);
3422 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_prli);
3424 ibmvfc_del_tgt(tgt);
3426 tgt_log(tgt, level, "Process Login failed: %s (%x:%x) rc=0x%02X\n",
3432 kref_put(&tgt->kref, ibmvfc_release_tgt);
3439 * @tgt: ibmvfc target struct
3442 static void ibmvfc_tgt_send_prli(struct ibmvfc_target *tgt)
3445 struct ibmvfc_host *vhost = tgt->vhost;
3451 kref_get(&tgt->kref);
3455 evt->tgt = tgt;
3461 prli->scsi_id = cpu_to_be64(tgt->scsi_id);
3471 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT);
3474 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3475 kref_put(&tgt->kref, ibmvfc_release_tgt);
3477 tgt_dbg(tgt, "Sent process login\n");
3487 struct ibmvfc_target *tgt = evt->tgt;
3494 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3497 tgt_dbg(tgt, "Port Login succeeded\n");
3498 if (tgt->ids.port_name &&
3499 tgt->ids.port_name != wwn_to_u64(rsp->service_parms.port_name)) {
3501 tgt_dbg(tgt, "Port re-init required\n");
3504 tgt->ids.node_name = wwn_to_u64(rsp->service_parms.node_name);
3505 tgt->ids.port_name = wwn_to_u64(rsp->service_parms.port_name);
3506 tgt->ids.port_id = tgt->scsi_id;
3507 memcpy(&tgt->service_parms, &rsp->service_parms,
3508 sizeof(tgt->service_parms));
3509 memcpy(&tgt->service_parms_change, &rsp->service_parms_change,
3510 sizeof(tgt->service_parms_change));
3511 ibmvfc_init_tgt(tgt, ibmvfc_tgt_send_prli);
3516 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi);
3521 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_send_plogi);
3523 ibmvfc_del_tgt(tgt);
3525 tgt_log(tgt, level, "Port Login failed: %s (%x:%x) %s (%x) %s (%x) rc=0x%02X\n",
3533 kref_put(&tgt->kref, ibmvfc_release_tgt);
3540 * @tgt: ibmvfc target struct
3543 static void ibmvfc_tgt_send_plogi(struct ibmvfc_target *tgt)
3546 struct ibmvfc_host *vhost = tgt->vhost;
3552 kref_get(&tgt->kref);
3553 tgt->logo_rcvd = 0;
3556 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT);
3558 evt->tgt = tgt;
3564 plogi->scsi_id = cpu_to_be64(tgt->scsi_id);
3568 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3569 kref_put(&tgt->kref, ibmvfc_release_tgt);
3571 tgt_dbg(tgt, "Sent port login\n");
3581 struct ibmvfc_target *tgt = evt->tgt;
3588 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3592 tgt_dbg(tgt, "Implicit Logout succeeded\n");
3595 kref_put(&tgt->kref, ibmvfc_release_tgt);
3600 tgt_err(tgt, "Implicit Logout failed: rc=0x%02X\n", status);
3604 ibmvfc_init_tgt(tgt, ibmvfc_tgt_send_plogi);
3605 kref_put(&tgt->kref, ibmvfc_release_tgt);
3611 * @tgt: ibmvfc target struct
3616 static struct ibmvfc_event *__ibmvfc_tgt_get_implicit_logout_evt(struct ibmvfc_target *tgt,
3620 struct ibmvfc_host *vhost = tgt->vhost;
3623 kref_get(&tgt->kref);
3626 evt->tgt = tgt;
3632 mad->old_scsi_id = cpu_to_be64(tgt->scsi_id);
3638 * @tgt: ibmvfc target struct
3641 static void ibmvfc_tgt_implicit_logout(struct ibmvfc_target *tgt)
3643 struct ibmvfc_host *vhost = tgt->vhost;
3650 evt = __ibmvfc_tgt_get_implicit_logout_evt(tgt,
3653 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT);
3656 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3657 kref_put(&tgt->kref, ibmvfc_release_tgt);
3659 tgt_dbg(tgt, "Sent Implicit Logout\n");
3669 struct ibmvfc_target *tgt = evt->tgt;
3685 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT);
3687 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_AND_LOGOUT_RPORT);
3689 tgt_dbg(tgt, "Implicit Logout %s\n", (status == IBMVFC_MAD_SUCCESS) ? "succeeded" : "failed");
3690 kref_put(&tgt->kref, ibmvfc_release_tgt);
3696 * @tgt: ibmvfc target struct
3699 static void ibmvfc_tgt_implicit_logout_and_del(struct ibmvfc_target *tgt)
3701 struct ibmvfc_host *vhost = tgt->vhost;
3705 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT);
3713 evt = __ibmvfc_tgt_get_implicit_logout_evt(tgt,
3716 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_LOGOUT_RPORT_WAIT);
3719 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT);
3720 kref_put(&tgt->kref, ibmvfc_release_tgt);
3722 tgt_dbg(tgt, "Sent Implicit Logout\n");
3732 struct ibmvfc_target *tgt = evt->tgt;
3739 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3742 tgt_dbg(tgt, "Move Login succeeded for old scsi_id: %llX\n", tgt->old_scsi_id);
3743 tgt->ids.node_name = wwn_to_u64(rsp->service_parms.node_name);
3744 tgt->ids.port_name = wwn_to_u64(rsp->service_parms.port_name);
3745 tgt->ids.port_id = tgt->scsi_id;
3746 memcpy(&tgt->service_parms, &rsp->service_parms,
3747 sizeof(tgt->service_parms));
3748 memcpy(&tgt->service_parms_change, &rsp->service_parms_change,
3749 sizeof(tgt->service_parms_change));
3750 ibmvfc_init_tgt(tgt, ibmvfc_tgt_send_prli);
3755 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_move_login);
3759 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_move_login);
3761 tgt_log(tgt, level,
3763 tgt->old_scsi_id, be32_to_cpu(rsp->flags), be16_to_cpu(rsp->vios_flags),
3768 kref_put(&tgt->kref, ibmvfc_release_tgt);
3776 * @tgt: ibmvfc target struct
3779 static void ibmvfc_tgt_move_login(struct ibmvfc_target *tgt)
3781 struct ibmvfc_host *vhost = tgt->vhost;
3788 kref_get(&tgt->kref);
3791 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT);
3793 evt->tgt = tgt;
3800 move->old_scsi_id = cpu_to_be64(tgt->old_scsi_id);
3801 move->new_scsi_id = cpu_to_be64(tgt->scsi_id);
3802 move->wwpn = cpu_to_be64(tgt->wwpn);
3803 move->node_name = cpu_to_be64(tgt->ids.node_name);
3807 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT);
3808 kref_put(&tgt->kref, ibmvfc_release_tgt);
3810 tgt_dbg(tgt, "Sent Move Login for old scsi_id: %llX\n", tgt->old_scsi_id);
3816 * @tgt: ibmvfc target struct
3822 struct ibmvfc_target *tgt)
3824 if (wwn_to_u64((u8 *)&mad->fc_iu.response[2]) != tgt->ids.port_name)
3826 if (wwn_to_u64((u8 *)&mad->fc_iu.response[4]) != tgt->ids.node_name)
3828 if (be32_to_cpu(mad->fc_iu.response[6]) != tgt->scsi_id)
3840 struct ibmvfc_target *tgt = evt->tgt;
3847 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3848 del_timer(&tgt->timer);
3852 tgt_dbg(tgt, "ADISC succeeded\n");
3853 if (ibmvfc_adisc_needs_plogi(mad, tgt))
3854 ibmvfc_del_tgt(tgt);
3860 ibmvfc_del_tgt(tgt);
3863 tgt_info(tgt, "ADISC failed: %s (%x:%x) %s (%x) %s (%x) rc=0x%02X\n",
3871 kref_put(&tgt->kref, ibmvfc_release_tgt);
3917 struct ibmvfc_target *tgt = evt->tgt;
3919 tgt_dbg(tgt, "ADISC cancel complete\n");
3922 kref_put(&tgt->kref, ibmvfc_release_tgt);
3928 * @tgt: ibmvfc target struct
3936 struct ibmvfc_target *tgt = from_timer(tgt, t, timer);
3937 struct ibmvfc_host *vhost = tgt->vhost;
3943 tgt_dbg(tgt, "ADISC timeout\n");
3946 tgt->action != IBMVFC_TGT_ACTION_INIT_WAIT ||
3954 kref_get(&tgt->kref);
3958 evt->tgt = tgt;
3964 tmf->scsi_id = cpu_to_be64(tgt->scsi_id);
3965 tmf->cancel_key = cpu_to_be32(tgt->cancel_key);
3970 tgt_err(tgt, "Failed to send cancel event for ADISC. rc=%d\n", rc);
3972 kref_put(&tgt->kref, ibmvfc_release_tgt);
3975 tgt_dbg(tgt, "Attempting to cancel ADISC\n");
3981 * @tgt: ibmvfc target struct
3990 static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt)
3993 struct ibmvfc_host *vhost = tgt->vhost;
3999 kref_get(&tgt->kref);
4003 evt->tgt = tgt;
4008 mad->iu.scsi_id = cpu_to_be64(tgt->scsi_id);
4009 mad->iu.cancel_key = cpu_to_be32(tgt->cancel_key);
4018 if (timer_pending(&tgt->timer))
4019 mod_timer(&tgt->timer, jiffies + (IBMVFC_ADISC_TIMEOUT * HZ));
4021 tgt->timer.expires = jiffies + (IBMVFC_ADISC_TIMEOUT * HZ);
4022 add_timer(&tgt->timer);
4025 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT);
4028 del_timer(&tgt->timer);
4029 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
4030 kref_put(&tgt->kref, ibmvfc_release_tgt);
4032 tgt_dbg(tgt, "Sent ADISC\n");
4042 struct ibmvfc_target *tgt = evt->tgt;
4049 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
4052 tgt_dbg(tgt, "Query Target succeeded\n");
4053 if (be64_to_cpu(rsp->scsi_id) != tgt->scsi_id)
4054 ibmvfc_del_tgt(tgt);
4056 ibmvfc_init_tgt(tgt, ibmvfc_tgt_adisc);
4061 ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_query_target);
4068 ibmvfc_del_tgt(tgt);
4070 level += ibmvfc_retry_tgt_init(tgt, ibmvfc_tgt_query_target);
4072 ibmvfc_del_tgt(tgt);
4074 tgt_log(tgt, level, "Query Target failed: %s (%x:%x) %s (%x) %s (%x) rc=0x%02X\n",
4083 kref_put(&tgt->kref, ibmvfc_release_tgt);
4090 * @tgt: ibmvfc target struct
4093 static void ibmvfc_tgt_query_target(struct ibmvfc_target *tgt)
4096 struct ibmvfc_host *vhost = tgt->vhost;
4102 kref_get(&tgt->kref);
4105 evt->tgt = tgt;
4112 query_tgt->wwpn = cpu_to_be64(tgt->ids.port_name);
4114 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT);
4117 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
4118 kref_put(&tgt->kref, ibmvfc_release_tgt);
4120 tgt_dbg(tgt, "Sent Query Target\n");
4136 struct ibmvfc_target *tgt;
4143 list_for_each_entry(tgt, &vhost->targets, queue) {
4144 if (tgt->wwpn == wwpn) {
4145 wtgt = tgt;
4150 list_for_each_entry(tgt, &vhost->targets, queue) {
4151 if (tgt->scsi_id == scsi_id) {
4152 stgt = tgt;
4185 if (tgt->need_login)
4186 ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout);
4191 tgt = mempool_alloc(vhost->tgt_pool, GFP_NOIO);
4192 memset(tgt, 0, sizeof(*tgt));
4193 tgt->scsi_id = scsi_id;
4194 tgt->wwpn = wwpn;
4195 tgt->vhost = vhost;
4196 tgt->need_login = 1;
4197 timer_setup(&tgt->timer, ibmvfc_adisc_timeout, 0);
4198 kref_init(&tgt->kref);
4199 ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout);
4201 tgt->cancel_key = vhost->task_set++;
4202 list_add_tail(&tgt->queue, &vhost->targets);
4474 struct ibmvfc_target *tgt;
4476 list_for_each_entry(tgt, &vhost->targets, queue) {
4477 if (tgt->action == IBMVFC_TGT_ACTION_INIT ||
4478 tgt->action == IBMVFC_TGT_ACTION_INIT_WAIT)
4494 struct ibmvfc_target *tgt;
4496 list_for_each_entry(tgt, &vhost->targets, queue) {
4497 if (tgt->action == IBMVFC_TGT_ACTION_LOGOUT_RPORT ||
4498 tgt->action == IBMVFC_TGT_ACTION_LOGOUT_RPORT_WAIT)
4513 struct ibmvfc_target *tgt;
4526 list_for_each_entry(tgt, &vhost->targets, queue)
4527 if (tgt->action == IBMVFC_TGT_ACTION_INIT)
4529 list_for_each_entry(tgt, &vhost->targets, queue)
4530 if (tgt->action == IBMVFC_TGT_ACTION_INIT_WAIT)
4537 list_for_each_entry(tgt, &vhost->targets, queue)
4538 if (tgt->action == IBMVFC_TGT_ACTION_LOGOUT_RPORT)
4540 list_for_each_entry(tgt, &vhost->targets, queue)
4541 if (tgt->action == IBMVFC_TGT_ACTION_LOGOUT_RPORT_WAIT)
4595 * @tgt: ibmvfc target struct
4598 static void ibmvfc_tgt_add_rport(struct ibmvfc_target *tgt)
4600 struct ibmvfc_host *vhost = tgt->vhost;
4604 tgt_dbg(tgt, "Adding rport\n");
4605 rport = fc_remote_port_add(vhost->host, 0, &tgt->ids);
4608 if (rport && tgt->action == IBMVFC_TGT_ACTION_DEL_RPORT) {
4609 tgt_dbg(tgt, "Deleting rport\n");
4610 list_del(&tgt->queue);
4611 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DELETED_RPORT);
4614 del_timer_sync(&tgt->timer);
4615 kref_put(&tgt->kref, ibmvfc_release_tgt);
4617 } else if (rport && tgt->action == IBMVFC_TGT_ACTION_DEL_AND_LOGOUT_RPORT) {
4618 tgt_dbg(tgt, "Deleting rport with outstanding I/O\n");
4619 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_LOGOUT_DELETED_RPORT);
4620 tgt->rport = NULL;
4624 } else if (rport && tgt->action == IBMVFC_TGT_ACTION_DELETED_RPORT) {
4630 tgt_dbg(tgt, "rport add succeeded\n");
4631 tgt->rport = rport;
4632 rport->maxframe_size = be16_to_cpu(tgt->service_parms.common.bb_rcv_sz) & 0x0fff;
4634 tgt->target_id = rport->scsi_target_id;
4635 if (be32_to_cpu(tgt->service_parms.class1_parms[0]) & 0x80000000)
4637 if (be32_to_cpu(tgt->service_parms.class2_parms[0]) & 0x80000000)
4639 if (be32_to_cpu(tgt->service_parms.class3_parms[0]) & 0x80000000)
4644 tgt_dbg(tgt, "rport add failed\n");
4655 struct ibmvfc_target *tgt;
4724 list_for_each_entry(tgt, &vhost->targets, queue)
4725 ibmvfc_init_tgt(tgt, ibmvfc_tgt_query_target);
4729 list_for_each_entry(tgt, &vhost->targets, queue) {
4730 if (tgt->action == IBMVFC_TGT_ACTION_INIT) {
4731 tgt->job_step(tgt);
4741 list_for_each_entry(tgt, &vhost->targets, queue) {
4742 if (tgt->action == IBMVFC_TGT_ACTION_LOGOUT_RPORT) {
4743 tgt->job_step(tgt);
4753 list_for_each_entry(tgt, &vhost->targets, queue) {
4754 if (tgt->action == IBMVFC_TGT_ACTION_DEL_RPORT) {
4755 tgt_dbg(tgt, "Deleting rport\n");
4756 rport = tgt->rport;
4757 tgt->rport = NULL;
4758 list_del(&tgt->queue);
4759 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DELETED_RPORT);
4763 del_timer_sync(&tgt->timer);
4764 kref_put(&tgt->kref, ibmvfc_release_tgt);
4766 } else if (tgt->action == IBMVFC_TGT_ACTION_DEL_AND_LOGOUT_RPORT) {
4767 tgt_dbg(tgt, "Deleting rport with I/O outstanding\n");
4768 rport = tgt->rport;
4769 tgt->rport = NULL;
4770 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_LOGOUT_DELETED_RPORT);
4815 list_for_each_entry(tgt, &vhost->targets, queue) {
4816 if (tgt->action == IBMVFC_TGT_ACTION_INIT) {
4817 tgt->job_step(tgt);
5062 struct ibmvfc_target *tgt;
5074 list_for_each_entry(tgt, &vhost->targets, queue) {
5075 if (tgt->add_rport) {
5077 tgt->add_rport = 0;
5078 kref_get(&tgt->kref);
5079 rport = tgt->rport;
5082 ibmvfc_tgt_add_rport(tgt);
5085 tgt_dbg(tgt, "Setting rport roles\n");
5086 fc_remote_port_rolechg(rport, tgt->ids.roles);
5092 kref_put(&tgt->kref, ibmvfc_release_tgt);