Message ID | 20230131102736.2127945-9-alexander.ivanov@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | parallels: Refactor the code of images checks and fix a bug | expand |
On 1/31/23 11:27, Alexander Ivanov wrote: > Exclude out-of-image clusters from allocated and fragmented clusters > calculation. > > Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> > --- > block/parallels.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/parallels.c b/block/parallels.c > index f9acee1fa8..7382c01191 100644 > --- a/block/parallels.c > +++ b/block/parallels.c > @@ -510,7 +510,7 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, > prev_off = 0; > for (i = 0; i < s->bat_size; i++) { > int64_t off = bat2sect(s, i) << BDRV_SECTOR_BITS; > - if (off == 0) { > + if (off == 0 || off + s->cluster_size > res->image_end_offset) { > prev_off = 0; > continue; > } This requires explicit comment that the fix is applicable for the case when BDRV_FIX_ERRORS is not set or I am missed something in the context. Den
diff --git a/block/parallels.c b/block/parallels.c index f9acee1fa8..7382c01191 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -510,7 +510,7 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, prev_off = 0; for (i = 0; i < s->bat_size; i++) { int64_t off = bat2sect(s, i) << BDRV_SECTOR_BITS; - if (off == 0) { + if (off == 0 || off + s->cluster_size > res->image_end_offset) { prev_off = 0; continue; }
Exclude out-of-image clusters from allocated and fragmented clusters calculation. Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> --- block/parallels.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)