diff --git a/block/src/io/request.rs b/block/src/io/request.rs index 0db5e710f..74e3ba574 100644 --- a/block/src/io/request.rs +++ b/block/src/io/request.rs @@ -428,11 +428,6 @@ impl Request { }); } - let wz_offset = wz_sector * SECTOR_SIZE; - if wz_offset == 0 && disable_sector0_writes { - return Err(ExecuteError::BadRequest(Error::InvalidOffset)); - } - let top = wz_sector .checked_add(wz_num_sectors as u64) .ok_or(ExecuteError::BadRequest(Error::InvalidOffset))?; @@ -440,6 +435,11 @@ impl Request { return Err(ExecuteError::BadRequest(Error::InvalidOffset)); } + let wz_offset = wz_sector * SECTOR_SIZE; + if wz_offset == 0 && disable_sector0_writes { + return Err(ExecuteError::BadRequest(Error::InvalidOffset)); + } + let wz_length = (wz_num_sectors as u64) * SECTOR_SIZE; if wz_flags & VIRTIO_BLK_WRITE_ZEROES_FLAG_UNMAP != 0 {