If a drive with variable zone sizes or an invalid last zone size is
detected, the local variable this_zone_blocks is set to 0 and early
retrun from the function triggered, but this does not result in an
error return. The local variable zone_blocks must be set to 0 for an
error to be returned.

Fixes: ccce20fc7968 ("scsi: sd_zbc: Avoid that resetting a zone fails 
sporadically")
Signed-off-by: Damien Le Moal <[email protected]>
Cc: Bart Van Assche <[email protected]>
---
 drivers/scsi/sd_zbc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c
index 323e3dc4bc59..850c803a6b3d 100644
--- a/drivers/scsi/sd_zbc.c
+++ b/drivers/scsi/sd_zbc.c
@@ -442,7 +442,7 @@ static s64 sd_zbc_check_zone_size(struct scsi_disk *sdkp)
                        } else if (this_zone_blocks != zone_blocks &&
                                   (block + this_zone_blocks < sdkp->capacity
                                    || this_zone_blocks > zone_blocks)) {
-                               this_zone_blocks = 0;
+                               zone_blocks = 0;
                                goto out;
                        }
                        block += this_zone_blocks;
-- 
2.17.0

Reply via email to