diff options
author | K. Y. Srinivasan <kys@microsoft.com> | 2015-08-13 18:43:52 +0300 |
---|---|---|
committer | James Bottomley <JBottomley@Odin.com> | 2015-08-27 08:41:36 +0300 |
commit | 111f2d15b543e15c1e0ee89745fae84e3eb91932 (patch) | |
tree | 27d004a4ab23192901e9a85aeb550f9ebfe0ce02 /drivers/scsi/storvsc_drv.c | |
parent | b95f5be09069526cf53705acbc1e22600f3f550b (diff) | |
download | linux-111f2d15b543e15c1e0ee89745fae84e3eb91932.tar.xz |
storvsc: Set the error code correctly in failure conditions
In the function storvsc_channel_init(), error code was not getting
set correctly in some of the failure cases. Fix this issue.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
Diffstat (limited to 'drivers/scsi/storvsc_drv.c')
-rw-r--r-- | drivers/scsi/storvsc_drv.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index cbb1bd1e020c..40c43aeb4ff3 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -952,8 +952,10 @@ static int storvsc_channel_init(struct hv_device *device) } if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO || - vstor_packet->status != 0) + vstor_packet->status != 0) { + ret = -EINVAL; goto cleanup; + } for (i = 0; i < ARRAY_SIZE(vmstor_protocols); i++) { @@ -1032,8 +1034,10 @@ static int storvsc_channel_init(struct hv_device *device) } if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO || - vstor_packet->status != 0) + vstor_packet->status != 0) { + ret = -EINVAL; goto cleanup; + } /* * Check to see if multi-channel support is there. @@ -1070,8 +1074,10 @@ static int storvsc_channel_init(struct hv_device *device) } if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO || - vstor_packet->status != 0) + vstor_packet->status != 0) { + ret = -EINVAL; goto cleanup; + } if (process_sub_channels) handle_multichannel_storage(device, max_chns); |