aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2011-02-16 16:04:40 -0500
committerJames Bottomley <James.Bottomley@suse.de>2011-02-24 12:41:23 -0500
commit7c53c6f89d7a6487986c51cd73ae9a9be338a8f4 (patch)
treeb1762d88f6906093be6cb80b9c8a4607d973e764 /drivers/infiniband
parentd8585bcd7da071f4278710f1c39e18dfe7cb0280 (diff)
[SCSI] iser: export addr and port
This pactch has iser export the address and port of the endpoint. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 7b2fc98e2f2b..8db008de5392 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -532,6 +532,29 @@ iscsi_iser_conn_get_stats(struct iscsi_cls_conn *cls_conn, struct iscsi_stats *s
532 stats->custom[3].value = conn->fmr_unalign_cnt; 532 stats->custom[3].value = conn->fmr_unalign_cnt;
533} 533}
534 534
535static int iscsi_iser_get_ep_param(struct iscsi_endpoint *ep,
536 enum iscsi_param param, char *buf)
537{
538 struct iser_conn *ib_conn = ep->dd_data;
539 int len;
540
541 switch (param) {
542 case ISCSI_PARAM_CONN_PORT:
543 case ISCSI_PARAM_CONN_ADDRESS:
544 if (!ib_conn || !ib_conn->cma_id)
545 return -ENOTCONN;
546
547 return iscsi_conn_get_addr_param((struct sockaddr_storage *)
548 &ib_conn->cma_id->route.addr.dst_addr,
549 param, buf);
550 break;
551 default:
552 return -ENOSYS;
553 }
554
555 return len;
556}
557
535static struct iscsi_endpoint * 558static struct iscsi_endpoint *
536iscsi_iser_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr, 559iscsi_iser_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
537 int non_blocking) 560 int non_blocking)
@@ -637,6 +660,8 @@ static struct iscsi_transport iscsi_iser_transport = {
637 ISCSI_MAX_BURST | 660 ISCSI_MAX_BURST |
638 ISCSI_PDU_INORDER_EN | 661 ISCSI_PDU_INORDER_EN |
639 ISCSI_DATASEQ_INORDER_EN | 662 ISCSI_DATASEQ_INORDER_EN |
663 ISCSI_CONN_PORT |
664 ISCSI_CONN_ADDRESS |
640 ISCSI_EXP_STATSN | 665 ISCSI_EXP_STATSN |
641 ISCSI_PERSISTENT_PORT | 666 ISCSI_PERSISTENT_PORT |
642 ISCSI_PERSISTENT_ADDRESS | 667 ISCSI_PERSISTENT_ADDRESS |
@@ -659,6 +684,7 @@ static struct iscsi_transport iscsi_iser_transport = {
659 .destroy_conn = iscsi_iser_conn_destroy, 684 .destroy_conn = iscsi_iser_conn_destroy,
660 .set_param = iscsi_iser_set_param, 685 .set_param = iscsi_iser_set_param,
661 .get_conn_param = iscsi_conn_get_param, 686 .get_conn_param = iscsi_conn_get_param,
687 .get_ep_param = iscsi_iser_get_ep_param,
662 .get_session_param = iscsi_session_get_param, 688 .get_session_param = iscsi_session_get_param,
663 .start_conn = iscsi_iser_conn_start, 689 .start_conn = iscsi_iser_conn_start,
664 .stop_conn = iscsi_iser_conn_stop, 690 .stop_conn = iscsi_iser_conn_stop,