[SCSI] bfa: Implement LUN Masking feature using the SCSI Slave Callouts.
authorKrishna Gudipati <kgudipat@brocade.com>
Wed, 21 Dec 2011 02:58:32 +0000 (18:58 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 10 Jan 2012 23:01:24 +0000 (17:01 -0600)
commit5b7db7af522d9f281ff8bf540d2b5cbea2206b27
tree7e2b2750a13a5ee9794d1893a0b575419cde95cf
parent8ca2dd87e7f29df99389e9dc41f7a45a35223672
[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>
drivers/scsi/bfa/bfad.c
drivers/scsi/bfa/bfad_attr.c
drivers/scsi/bfa/bfad_bsg.c
drivers/scsi/bfa/bfad_drv.h
drivers/scsi/bfa/bfad_im.c
drivers/scsi/bfa/bfad_im.h