Message ID | 20171009155431.14093-1-mreitz@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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 {
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(-)