• Stephen Cameron's avatar
    hpsa: add masked physical devices into h->dev[] array · 41ce4c35
    Stephen Cameron authored
    Cache the ioaccel handle so that when we need to abort commands sent
    down the ioaccel2 path, we can look up the LUN ID in h->dev[] instead of
    having to do I/O to the controller.
    
    Add a field to elements in h->dev[] to keep track of how the device is exposed
    to the SCSI mid layer: Not at all, without an upper level driver
    (no_uld_attach) or normally exposed.
    
    Since masked physical devices are now present in h->dev[] array
    it would be perfectly possible to do
    
    	echo scsi add-single-device 2 2 0 0 > /proc/scsi/scsi
    
    and bring them online.  This was previously not allowed for masked
    physical devices.
    
    Ensure that the mapping of physical disks to logical drives gets updated in a
    consistent way when a RAID migration occurs and is not touched until updates
    to it are complete.
    
    now instead of doing CISS_REPORT_PHYSICAL to get the LUNID for
    the physical disk in hpsa_get_pdisk_of_ioaccel2(), just get
    it out of h->dev[] where we already have it cached.
    
    do not touch phys_disk[] for ioaccel enabled logical drives during rescan
    Reviewed-by: default avatarScott Teel <scott.teel@pmcs.com>
    Reviewed-by: default avatarKevin Barnett <kevin.barnett@pmcs.com>
    Reviewed-by: default avatarTomas Henzl <thenzl@redhat.com>
    Reviewed-by: default avatarHannes Reinecke <hare@Suse.de>
    Signed-off-by: default avatarDon Brace <don.brace@pmcs.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
    41ce4c35
hpsa.c 218 KB