diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2006-06-28 13:00:22 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-06-29 11:06:59 -0400 |
commit | 01cb225dad8da2e717356fab03240e2f4a8d01bf (patch) | |
tree | 8accf53a998b27b61362aec3fe61e7b72c69bbde /drivers/scsi/scsi_transport_iscsi.c | |
parent | 332959cb521af6bb0281c7aae797f1f91dcb4c42 (diff) |
[SCSI] iscsi: add target discvery event to transport class
Patch from david.somayajulu@qlogic.com:
Add target discovery event. We may have a setup where the iscsi traffic
is on a different netowrk than the other network traffic. In this case
we will want to do discovery though the iscsi card. This patch adds
a event to the transport class that can be used by hw iscsi cards that
support this.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/scsi_transport_iscsi.c')
-rw-r--r-- | drivers/scsi/scsi_transport_iscsi.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 5569fdcfd621..99e76d458290 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c | |||
@@ -978,6 +978,21 @@ iscsi_if_transport_ep(struct iscsi_transport *transport, | |||
978 | } | 978 | } |
979 | 979 | ||
980 | static int | 980 | static int |
981 | iscsi_tgt_dscvr(struct iscsi_transport *transport, | ||
982 | struct iscsi_uevent *ev) | ||
983 | { | ||
984 | struct sockaddr *dst_addr; | ||
985 | |||
986 | if (!transport->tgt_dscvr) | ||
987 | return -EINVAL; | ||
988 | |||
989 | dst_addr = (struct sockaddr *)((char*)ev + sizeof(*ev)); | ||
990 | return transport->tgt_dscvr(ev->u.tgt_dscvr.type, | ||
991 | ev->u.tgt_dscvr.host_no, | ||
992 | ev->u.tgt_dscvr.enable, dst_addr); | ||
993 | } | ||
994 | |||
995 | static int | ||
981 | iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | 996 | iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) |
982 | { | 997 | { |
983 | int err = 0; | 998 | int err = 0; |
@@ -1065,6 +1080,9 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
1065 | case ISCSI_UEVENT_TRANSPORT_EP_DISCONNECT: | 1080 | case ISCSI_UEVENT_TRANSPORT_EP_DISCONNECT: |
1066 | err = iscsi_if_transport_ep(transport, ev, nlh->nlmsg_type); | 1081 | err = iscsi_if_transport_ep(transport, ev, nlh->nlmsg_type); |
1067 | break; | 1082 | break; |
1083 | case ISCSI_UEVENT_TGT_DSCVR: | ||
1084 | err = iscsi_tgt_dscvr(transport, ev); | ||
1085 | break; | ||
1068 | default: | 1086 | default: |
1069 | err = -EINVAL; | 1087 | err = -EINVAL; |
1070 | break; | 1088 | break; |