diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2007-05-30 13:57:10 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-06-01 12:23:12 -0400 |
commit | 2174a04ee7d8304a270de183fbc58b36dd05b395 (patch) | |
tree | 26fbb873bf9c0f4ef65ec748d4c3f22e12b0a157 /drivers/scsi/scsi_transport_iscsi.c | |
parent | aa1e93a2fe0392588220d491454e7752d0fdb251 (diff) |
[SCSI] iscsi_transport, qla4xxx: have class lookup host for drivers
We are going to be adding more host level sysfs attrs and
set_params, so this patch has them take a scsi_host instead
of either a scsi_host or host no.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Cc: David C Somayajulu <david.somayajulu@qlogic.com>
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 | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 1ba98d255fac..59287601bd41 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c | |||
@@ -945,15 +945,26 @@ static int | |||
945 | iscsi_tgt_dscvr(struct iscsi_transport *transport, | 945 | iscsi_tgt_dscvr(struct iscsi_transport *transport, |
946 | struct iscsi_uevent *ev) | 946 | struct iscsi_uevent *ev) |
947 | { | 947 | { |
948 | struct Scsi_Host *shost; | ||
948 | struct sockaddr *dst_addr; | 949 | struct sockaddr *dst_addr; |
950 | int err; | ||
949 | 951 | ||
950 | if (!transport->tgt_dscvr) | 952 | if (!transport->tgt_dscvr) |
951 | return -EINVAL; | 953 | return -EINVAL; |
952 | 954 | ||
955 | shost = scsi_host_lookup(ev->u.tgt_dscvr.host_no); | ||
956 | if (IS_ERR(shost)) { | ||
957 | printk(KERN_ERR "target discovery could not find host no %u\n", | ||
958 | ev->u.tgt_dscvr.host_no); | ||
959 | return -ENODEV; | ||
960 | } | ||
961 | |||
962 | |||
953 | dst_addr = (struct sockaddr *)((char*)ev + sizeof(*ev)); | 963 | dst_addr = (struct sockaddr *)((char*)ev + sizeof(*ev)); |
954 | return transport->tgt_dscvr(ev->u.tgt_dscvr.type, | 964 | err = transport->tgt_dscvr(shost, ev->u.tgt_dscvr.type, |
955 | ev->u.tgt_dscvr.host_no, | 965 | ev->u.tgt_dscvr.enable, dst_addr); |
956 | ev->u.tgt_dscvr.enable, dst_addr); | 966 | scsi_host_put(shost); |
967 | return err; | ||
957 | } | 968 | } |
958 | 969 | ||
959 | static int | 970 | static int |