[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>
This commit is contained in:
parent
b62a8d9b45
commit
f8210e3488
1 changed files with 4 additions and 4 deletions
|
@ -143,7 +143,8 @@ static int zfcp_scsi_slave_alloc(struct scsi_device *sdev)
|
||||||
unit = zfcp_unit_find(port, zfcp_scsi_dev_lun(sdev));
|
unit = zfcp_unit_find(port, zfcp_scsi_dev_lun(sdev));
|
||||||
if (unit)
|
if (unit)
|
||||||
put_device(&unit->dev);
|
put_device(&unit->dev);
|
||||||
else {
|
|
||||||
|
if (!unit && !(adapter->connection_features & FSF_FEATURE_NPIV_MODE)) {
|
||||||
put_device(&port->dev);
|
put_device(&port->dev);
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
}
|
}
|
||||||
|
@ -309,8 +310,8 @@ int zfcp_adapter_scsi_register(struct zfcp_adapter *adapter)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* tell the SCSI stack some characteristics of this adapter */
|
/* tell the SCSI stack some characteristics of this adapter */
|
||||||
adapter->scsi_host->max_id = 1;
|
adapter->scsi_host->max_id = 511;
|
||||||
adapter->scsi_host->max_lun = 1;
|
adapter->scsi_host->max_lun = 0xFFFFFFFF;
|
||||||
adapter->scsi_host->max_channel = 0;
|
adapter->scsi_host->max_channel = 0;
|
||||||
adapter->scsi_host->unique_id = dev_id.devno;
|
adapter->scsi_host->unique_id = dev_id.devno;
|
||||||
adapter->scsi_host->max_cmd_len = 16; /* in struct fcp_cmnd */
|
adapter->scsi_host->max_cmd_len = 16; /* in struct fcp_cmnd */
|
||||||
|
@ -687,7 +688,6 @@ struct fc_function_template zfcp_transport_functions = {
|
||||||
.show_host_port_type = 1,
|
.show_host_port_type = 1,
|
||||||
.show_host_speed = 1,
|
.show_host_speed = 1,
|
||||||
.show_host_port_id = 1,
|
.show_host_port_id = 1,
|
||||||
.disable_target_scan = 1,
|
|
||||||
.dd_bsg_size = sizeof(struct zfcp_fsf_ct_els),
|
.dd_bsg_size = sizeof(struct zfcp_fsf_ct_els),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue