summaryrefslogtreecommitdiff
path: root/drivers/scsi/hpsa.h
diff options
context:
space:
mode:
authorScott Teel <scott.teel@pmcs.com>2015-11-04 15:51:57 -0600
committerMartin K. Petersen <martin.petersen@oracle.com>2015-11-09 12:39:26 -0500
commit66749d0d617a9cda967f168802f1fb1a6e598a92 (patch)
tree679f6a22d478f540376f09c456f46b94271bf5fa /drivers/scsi/hpsa.h
parent096ccff47e152aef8e9ef318c02781daedc433b7 (diff)
downloadlwn-66749d0d617a9cda967f168802f1fb1a6e598a92.tar.gz
lwn-66749d0d617a9cda967f168802f1fb1a6e598a92.zip
hpsa: generalize external arrays
External array LUNs must use target and lun numbers assigned by the external array. So the driver must treat these differently from local LUNs when assigning lun/target. LUN's 'model' field has been used to detect Lun types that need special treatment, but the desire is to eliminate the need to reference specific array models, and support any external array. Pass-through RAID (PTRAID) luns are not luns of the local controller, so they are not reported in LUN count of command 'ID controller'. However, they ARE reported in "Report logical Luns" command. Local luns are listed first, then PTRAID LUNs. The number of luns from "Report LUNs" in excess of those reported by 'ID controller' are therefore the PTRAID LUNS. We can now remove function is_ext_target, and the 'white list' array of supported model names. Reviewed-by: Scott Teel <scott.teel@pmcs.com> Reviewed-by: Justin Lindley <justin.lindley@pmcs.com> Reviewed-by: Kevin Barnett <kevin.barnett@pmcs.com> Signed-off-by: Don Brace <don.brace@pmcs.com> Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/hpsa.h')
-rw-r--r--drivers/scsi/hpsa.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
index a4cab12fc3b4..ffcd4cbd5efc 100644
--- a/drivers/scsi/hpsa.h
+++ b/drivers/scsi/hpsa.h
@@ -77,6 +77,7 @@ struct hpsa_scsi_dev_t {
struct hpsa_scsi_dev_t *phys_disk[RAID_MAP_MAX_ENTRIES];
int nphysical_disks;
int supports_aborts;
+ int external; /* 1-from external array 0-not <0-unknown */
};
struct reply_queue_buffer {