diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2011-12-20 21:58:32 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-01-10 18:01:24 -0500 |
commit | 5b7db7af522d9f281ff8bf540d2b5cbea2206b27 (patch) | |
tree | 7e2b2750a13a5ee9794d1893a0b575419cde95cf /drivers/scsi/bfa/bfad_drv.h | |
parent | 8ca2dd87e7f29df99389e9dc41f7a45a35223672 (diff) |
[SCSI] bfa: Implement LUN Masking feature using the SCSI Slave Callouts.
This patch re-implements LUN Masking feature using SCSI Slave Callouts. With
the new design in the slave_alloc entry point; for each new LUN discovered we
check with our internal LUN Masking config whether to expose or to mask this
particular LUN. We return -ENXIO (No such device or address) from slave_alloc
for the LUNs we don't want to be exposed. We also notify the SCSI mid-layer
to do a sequential LUN scan rather than REPORT_LUNS based scan if LUN masking
is enabled on our HBA port, since a -ENXIO from any LUN in REPORT_LUNS based
scan translates to a scan abort. This patch also handles the dynamic lun
masking config change from enable to disable or vice-versa by resetting
sdev_bflags of LUN 0 appropriately.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfad_drv.h')
-rw-r--r-- | drivers/scsi/bfa/bfad_drv.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/bfa/bfad_drv.h b/drivers/scsi/bfa/bfad_drv.h index 5e19a5f820ec..dc5b9d99c450 100644 --- a/drivers/scsi/bfa/bfad_drv.h +++ b/drivers/scsi/bfa/bfad_drv.h | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <scsi/scsi_transport_fc.h> | 43 | #include <scsi/scsi_transport_fc.h> |
44 | #include <scsi/scsi_transport.h> | 44 | #include <scsi/scsi_transport.h> |
45 | #include <scsi/scsi_bsg_fc.h> | 45 | #include <scsi/scsi_bsg_fc.h> |
46 | #include <scsi/scsi_devinfo.h> | ||
46 | 47 | ||
47 | #include "bfa_modules.h" | 48 | #include "bfa_modules.h" |
48 | #include "bfa_fcs.h" | 49 | #include "bfa_fcs.h" |
@@ -227,6 +228,7 @@ struct bfad_s { | |||
227 | struct list_head active_aen_q; | 228 | struct list_head active_aen_q; |
228 | struct bfa_aen_entry_s aen_list[BFA_AEN_MAX_ENTRY]; | 229 | struct bfa_aen_entry_s aen_list[BFA_AEN_MAX_ENTRY]; |
229 | spinlock_t bfad_aen_spinlock; | 230 | spinlock_t bfad_aen_spinlock; |
231 | struct list_head vport_list; | ||
230 | }; | 232 | }; |
231 | 233 | ||
232 | /* BFAD state machine events */ | 234 | /* BFAD state machine events */ |