Message ID | 20231228101232.372142-11-alexander.ivanov@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | parallels: Add full dirty bitmap support | expand |
On 12/28/23 11:12, Alexander Ivanov wrote: > All the checks were fixed to work with used bitmap. Create used bitmap in > parallels_open() even if need_check is true. > > Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> > --- > block/parallels.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/block/parallels.c b/block/parallels.c > index 0ae06ec0b1..f38dd2309c 100644 > --- a/block/parallels.c > +++ b/block/parallels.c > @@ -1421,13 +1421,11 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags, > } > need_check = need_check || s->data_end > file_nb_sectors; > > - if (!need_check) { > - ret = parallels_fill_used_bitmap(bs); > - if (ret == -ENOMEM) { > - goto fail; > - } > - need_check = need_check || ret < 0; /* These are correctable errors */ > + ret = parallels_fill_used_bitmap(bs); > + if (ret == -ENOMEM) { > + goto fail; > } > + need_check = need_check || ret < 0; /* These are correctable errors */ > > /* > * We don't repair the image here if it's opened for checks. Also we don't Why do we need it? Most likely we will have to recreate it on a error. If there is some sense - we need a real motivation why do we need used bitmap. Here, at this point, we have already detected that there is something very bad happened and we can have too long file or something like that.
diff --git a/block/parallels.c b/block/parallels.c index 0ae06ec0b1..f38dd2309c 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -1421,13 +1421,11 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags, } need_check = need_check || s->data_end > file_nb_sectors; - if (!need_check) { - ret = parallels_fill_used_bitmap(bs); - if (ret == -ENOMEM) { - goto fail; - } - need_check = need_check || ret < 0; /* These are correctable errors */ + ret = parallels_fill_used_bitmap(bs); + if (ret == -ENOMEM) { + goto fail; } + need_check = need_check || ret < 0; /* These are correctable errors */ /* * We don't repair the image here if it's opened for checks. Also we don't
All the checks were fixed to work with used bitmap. Create used bitmap in parallels_open() even if need_check is true. Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> --- block/parallels.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)