From: Markus Armbruster <arm...@redhat.com> If do_sd_create() fails, it first reports the error returned, then reports a another one with strerror(errno). errno is meaningless at that point.
Report just one error combining the valid information from both messages. Reported-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Liu Yuan <namei.u...@gmail.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block/sheepdog.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/block/sheepdog.c b/block/sheepdog.c index 60a4853..c14172c 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -2339,9 +2339,8 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info) ret = do_sd_create(s, &new_vid, 1, &local_err); if (ret < 0) { - error_report_err(local_err); - error_report("failed to create inode for snapshot. %s", - strerror(errno)); + error_report("failed to create inode for snapshot: %s", + error_get_pretty(local_err)); goto cleanup; } -- 1.8.3.1