On 07/03/2018 08:23 AM, Damien Le Moal wrote:
> Fix the description of sd_zbc_check_zone_size() to correctly explain
> that the returned value is a number of device blocks, not bytes.
> Additionally, the 32 bits "ret" variable used in this function may
> truncate the 64 bits zone_blocks variable value upon return. To fix
> this, change "ret" type to s64.
>
> Fixes: ccce20fc79 ("sd_zbc: Avoid that resetting a zone fails sporadically")
> Signed-off-by: Damien Le Moal <[email protected]>
> Cc: Bart Van Assche <[email protected]>
> Cc: [email protected]
> ---
> drivers/scsi/sd_zbc.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c
> index a14fef11776e..2bf3bf73886e 100644
> --- a/drivers/scsi/sd_zbc.c
> +++ b/drivers/scsi/sd_zbc.c
> @@ -391,7 +391,8 @@ static int sd_zbc_check_capacity(struct scsi_disk *sdkp,
> unsigned char *buf)
> * Check that all zones of the device are equal. The last zone can however
> * be smaller. The zone size must also be a power of two number of LBAs.
> *
> - * Returns the zone size in bytes upon success or an error code upon failure.
> + * Returns the zone size in number of blocks upon success or an error code
> + * upon failure.
> */
> static s64 sd_zbc_check_zone_size(struct scsi_disk *sdkp)
> {
> @@ -401,7 +402,7 @@ static s64 sd_zbc_check_zone_size(struct scsi_disk *sdkp)
> unsigned char *rec;
> unsigned int buf_len;
> unsigned int list_length;
> - int ret;
> + s64 ret;
> u8 same;
>
> /* Get a buffer */
>
Reviewed-by: Hannes Reinecke <[email protected]>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
[email protected] +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)