bdrv_truncate() has an errp parameter which is always set when an error
occurs. Let's use that instead of a plain strerror().
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
block/qcow2.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index dff903e05c..2f6a8e1ff8 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -3150,12 +3150,13 @@ static int qcow2_truncate(BlockDriverState *bs, int64_t offset,
return last_cluster;
}
if ((last_cluster + 1) * s->cluster_size < old_file_size) {
- ret = bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size,
- PREALLOC_MODE_OFF, NULL);
- if (ret < 0) {
- warn_report("Failed to truncate the tail of the image: %s",
- strerror(-ret));
- ret = 0;
+ Error *local_err = NULL;
+
+ bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size,
+ PREALLOC_MODE_OFF, &local_err);
+ if (local_err) {
+ warn_reportf_err(local_err,
+ "Failed to truncate the tail of the image: ");
}
}
} else {
--
2.13.6
On 09.10.2017 18:54, Max Reitz wrote: > bdrv_truncate() has an errp parameter which is always set when an error > occurs. Let's use that instead of a plain strerror(). > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > block/qcow2.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/block/qcow2.c b/block/qcow2.c > index dff903e05c..2f6a8e1ff8 100644 > --- a/block/qcow2.c > +++ b/block/qcow2.c > @@ -3150,12 +3150,13 @@ static int qcow2_truncate(BlockDriverState *bs, int64_t offset, > return last_cluster; > } > if ((last_cluster + 1) * s->cluster_size < old_file_size) { > - ret = bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size, > - PREALLOC_MODE_OFF, NULL); > - if (ret < 0) { > - warn_report("Failed to truncate the tail of the image: %s", > - strerror(-ret)); > - ret = 0; > + Error *local_err = NULL; > + > + bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size, > + PREALLOC_MODE_OFF, &local_err); > + if (local_err) { > + warn_reportf_err(local_err, > + "Failed to truncate the tail of the image: "); > } > } > } else { > Reviewed-by: Pavel Butsykin <pbutsykin@virtuozzo.com>
On Mon, Oct 09, 2017 at 05:54:31PM +0200, Max Reitz wrote: > bdrv_truncate() has an errp parameter which is always set when an error > occurs. Let's use that instead of a plain strerror(). > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > block/qcow2.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/block/qcow2.c b/block/qcow2.c > index dff903e05c..2f6a8e1ff8 100644 > --- a/block/qcow2.c > +++ b/block/qcow2.c > @@ -3150,12 +3150,13 @@ static int qcow2_truncate(BlockDriverState *bs, int64_t offset, > return last_cluster; > } > if ((last_cluster + 1) * s->cluster_size < old_file_size) { > - ret = bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size, > - PREALLOC_MODE_OFF, NULL); > - if (ret < 0) { > - warn_report("Failed to truncate the tail of the image: %s", > - strerror(-ret)); > - ret = 0; > + Error *local_err = NULL; > + > + bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size, > + PREALLOC_MODE_OFF, &local_err); > + if (local_err) { > + warn_reportf_err(local_err, > + "Failed to truncate the tail of the image: "); > } > } > } else { > -- > 2.13.6 > > Reviewed-by: Jeff Cody <jcody@redhat.com>
On 2017-10-09 17:54, Max Reitz wrote: > bdrv_truncate() has an errp parameter which is always set when an error > occurs. Let's use that instead of a plain strerror(). > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > block/qcow2.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) Thanks for the reviews, applied to my block branch: https://github.com/XanClic/qemu/commits/block Max
© 2016 - 2024 Red Hat, Inc.