aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_transport_iscsi.c
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2007-05-30 13:57:10 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-06-01 12:23:12 -0400
commit2174a04ee7d8304a270de183fbc58b36dd05b395 (patch)
tree26fbb873bf9c0f4ef65ec748d4c3f22e12b0a157 /drivers/scsi/scsi_transport_iscsi.c
parentaa1e93a2fe0392588220d491454e7752d0fdb251 (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.c17
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
945iscsi_tgt_dscvr(struct iscsi_transport *transport, 945iscsi_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
959static int 970static int