hpsa: fix handling of hpsa_volume_offline return value
Make return value an int instead of an unsigned char so that we do not lose negative error return values. Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Reviewed-by: Webb Scales <webb.scales@hp.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
a84d794d5c
commit
67955ba36e
@ -2543,11 +2543,11 @@ exit_failed:
|
||||
/* Determine offline status of a volume.
|
||||
* Return either:
|
||||
* 0 (not offline)
|
||||
* -1 (offline for unknown reasons)
|
||||
* 0xff (offline for unknown reasons)
|
||||
* # (integer code indicating one of several NOT READY states
|
||||
* describing why a volume is to be kept offline)
|
||||
*/
|
||||
static unsigned char hpsa_volume_offline(struct ctlr_info *h,
|
||||
static int hpsa_volume_offline(struct ctlr_info *h,
|
||||
unsigned char scsi3addr[])
|
||||
{
|
||||
struct CommandList *c;
|
||||
@ -2646,11 +2646,15 @@ static int hpsa_update_device_info(struct ctlr_info *h,
|
||||
|
||||
if (this_device->devtype == TYPE_DISK &&
|
||||
is_logical_dev_addr_mode(scsi3addr)) {
|
||||
int volume_offline;
|
||||
|
||||
hpsa_get_raid_level(h, scsi3addr, &this_device->raid_level);
|
||||
if (h->fw_support & MISC_FW_RAID_OFFLOAD_BASIC)
|
||||
hpsa_get_ioaccel_status(h, scsi3addr, this_device);
|
||||
this_device->volume_offline =
|
||||
hpsa_volume_offline(h, scsi3addr);
|
||||
volume_offline = hpsa_volume_offline(h, scsi3addr);
|
||||
if (volume_offline < 0 || volume_offline > 0xff)
|
||||
volume_offline = HPSA_VPD_LV_STATUS_UNSUPPORTED;
|
||||
this_device->volume_offline = volume_offline & 0xff;
|
||||
} else {
|
||||
this_device->raid_level = RAID_UNKNOWN;
|
||||
this_device->offload_config = 0;
|
||||
|
@ -151,7 +151,7 @@
|
||||
#define HPSA_VPD_HEADER_SZ 4
|
||||
|
||||
/* Logical volume states */
|
||||
#define HPSA_VPD_LV_STATUS_UNSUPPORTED -1
|
||||
#define HPSA_VPD_LV_STATUS_UNSUPPORTED 0xff
|
||||
#define HPSA_LV_OK 0x0
|
||||
#define HPSA_LV_UNDERGOING_ERASE 0x0F
|
||||
#define HPSA_LV_UNDERGOING_RPI 0x12
|
||||
|
Loading…
Reference in New Issue
Block a user