aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
authorChristof Schmitt <christof.schmitt@de.ibm.com>2010-09-08 08:39:56 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-09-16 22:54:18 -0400
commitf8210e34887e1feb977a9b6b8caa086855af40c9 (patch)
treeb9b2fe4f289f326334ac7327d7764f0943cc1229 /drivers/s390/scsi
parentb62a8d9b45b971a67a0f8413338c230e3117dff5 (diff)
[SCSI] zfcp: Allow midlayer to scan for LUNs when running in NPIV mode
Enable the LUN scanning mechanism in the SCSI midlayer: - Do not set the disable_target_scan bit in the FC transport class. - Set max_lun to 0xFFFFFFFF to allow the midlayer scan to include the two-level hierachical LUNs (like 0x40XX40XX00000000, but in SCSI midlayer LUN format). - Set max_id to a high value to allow triggering the SCSI device rescan from sysfs. When running in NPIV mode, zfcp accepts all LUNs in slave_attach. When running in non-NPIV mode, the list of zfcp_unit structs determines which SCSI devices are allowed on the current system. Reviewed-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index bc7217b88989..1e8d0cc7e1df 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -143,7 +143,8 @@ static int zfcp_scsi_slave_alloc(struct scsi_device *sdev)
143 unit = zfcp_unit_find(port, zfcp_scsi_dev_lun(sdev)); 143 unit = zfcp_unit_find(port, zfcp_scsi_dev_lun(sdev));
144 if (unit) 144 if (unit)
145 put_device(&unit->dev); 145 put_device(&unit->dev);
146 else { 146
147 if (!unit && !(adapter->connection_features & FSF_FEATURE_NPIV_MODE)) {
147 put_device(&port->dev); 148 put_device(&port->dev);
148 return -ENXIO; 149 return -ENXIO;
149 } 150 }
@@ -309,8 +310,8 @@ int zfcp_adapter_scsi_register(struct zfcp_adapter *adapter)
309 } 310 }
310 311
311 /* tell the SCSI stack some characteristics of this adapter */ 312 /* tell the SCSI stack some characteristics of this adapter */
312 adapter->scsi_host->max_id = 1; 313 adapter->scsi_host->max_id = 511;
313 adapter->scsi_host->max_lun = 1; 314 adapter->scsi_host->max_lun = 0xFFFFFFFF;
314 adapter->scsi_host->max_channel = 0; 315 adapter->scsi_host->max_channel = 0;
315 adapter->scsi_host->unique_id = dev_id.devno; 316 adapter->scsi_host->unique_id = dev_id.devno;
316 adapter->scsi_host->max_cmd_len = 16; /* in struct fcp_cmnd */ 317 adapter->scsi_host->max_cmd_len = 16; /* in struct fcp_cmnd */
@@ -687,7 +688,6 @@ struct fc_function_template zfcp_transport_functions = {
687 .show_host_port_type = 1, 688 .show_host_port_type = 1,
688 .show_host_speed = 1, 689 .show_host_speed = 1,
689 .show_host_port_id = 1, 690 .show_host_port_id = 1,
690 .disable_target_scan = 1,
691 .dd_bsg_size = sizeof(struct zfcp_fsf_ct_els), 691 .dd_bsg_size = sizeof(struct zfcp_fsf_ct_els),
692}; 692};
693 693