[SCSI] hpsa: update raid offload status on device rescan

When rescanning for logical drives, store information about whather
raid offload is enabled for each logical drive, and update the driver's
internal record of this.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Stephen M. Cameron 2014-02-18 13:55:38 -06:00 committed by James Bottomley
parent 283b4a9b98
commit 250fb125ff

View file

@ -787,6 +787,11 @@ static void hpsa_scsi_update_entry(struct ctlr_info *h, int hostno,
/* Raid level changed. */ /* Raid level changed. */
h->dev[entry]->raid_level = new_entry->raid_level; h->dev[entry]->raid_level = new_entry->raid_level;
/* Raid offload parameters changed. */
h->dev[entry]->offload_config = new_entry->offload_config;
h->dev[entry]->offload_enabled = new_entry->offload_enabled;
dev_info(&h->pdev->dev, "%s device c%db%dt%dl%d updated.\n", dev_info(&h->pdev->dev, "%s device c%db%dt%dl%d updated.\n",
scsi_device_type(new_entry->devtype), hostno, new_entry->bus, scsi_device_type(new_entry->devtype), hostno, new_entry->bus,
new_entry->target, new_entry->lun); new_entry->target, new_entry->lun);
@ -907,6 +912,10 @@ static inline int device_updated(struct hpsa_scsi_dev_t *dev1,
*/ */
if (dev1->raid_level != dev2->raid_level) if (dev1->raid_level != dev2->raid_level)
return 1; return 1;
if (dev1->offload_config != dev2->offload_config)
return 1;
if (dev1->offload_enabled != dev2->offload_enabled)
return 1;
return 0; return 0;
} }