[PATCH] FC transport: Allow LLDD to disable LUN scanning

Christof Schmitt
2007-08-21T15:38:46Z

From: Christof Schmitt <christof.schmitt@de.ibm.com>

Introduce a flag that allows the SCSI low level device driver to
disable the automatic scanning for LUNs from the FC transport class.

This is for the zfcp device driver that manages the attached units on
its own and does not want to have the automatic discovery of other
LUNs.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
---
drivers/scsi/scsi_transport_fc.c | 4 +++-
include/scsi/scsi_transport_fc.h | 3 +++
2 files changed, 6 insertions(+), 1 deletion(-)

--- linux-2.6.orig/drivers/scsi/scsi_transport_fc.c
+++ linux-2.6/drivers/scsi/scsi_transport_fc.c
@@ -2988,10 +2988,12 @@ fc_scsi_scan_rport(struct work_struct *w
struct fc_rport *rport =
container_of(work, struct fc_rport, scan_work);
struct Scsi_Host *shost = rport_to_shost(rport);
+ struct fc_internal *i = to_fc_internal(shost->transportt);
unsigned long flags;

if ((rport->port_state == FC_PORTSTATE_ONLINE) &&
- (rport->roles & FC_PORT_ROLE_FCP_TARGET)) {
+ (rport->roles & FC_PORT_ROLE_FCP_TARGET) &&
+ !(i->f->disable_target_scan)) {
scsi_scan_target(&rport->dev, rport->channel,
rport->scsi_target_id, SCAN_WILD_CARD, 1);
}
--- linux-2.6.orig/include/scsi/scsi_transport_fc.h
+++ linux-2.6/include/scsi/scsi_transport_fc.h
@@ -632,6 +632,9 @@ struct fc_function_template {
unsigned long show_host_fabric_name:1;
unsigned long show_host_symbolic_name:1;
unsigned long show_host_system_hostname:1;
+
+ /* The driver can disable the LUN scanning from the FC transport class */
+ unsigned long disable_target_scan:1;
};