From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XIlLa-0004aC-RG for qemu-devel@nongnu.org; Sat, 16 Aug 2014 17:17:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XIlLU-0003vY-HX for qemu-devel@nongnu.org; Sat, 16 Aug 2014 17:17:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33333) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XIlLU-0003vD-8M for qemu-devel@nongnu.org; Sat, 16 Aug 2014 17:17:04 -0400 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s7GLH3Zf019210 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sat, 16 Aug 2014 17:17:03 -0400 From: Max Reitz Date: Sat, 16 Aug 2014 23:16:52 +0200 Message-Id: <1408223814-23999-3-git-send-email-mreitz@redhat.com> In-Reply-To: <1408223814-23999-1-git-send-email-mreitz@redhat.com> References: <1408223814-23999-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH 2/4] qcow2: Use qcow2_signal_corruption() for overlaps List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Stefan Hajnoczi , Max Reitz Use the new function in case of a failed overlap check. Signed-off-by: Max Reitz --- block/qcow2-refcount.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c index 3b77470..0ac1339 100644 --- a/block/qcow2-refcount.c +++ b/block/qcow2-refcount.c @@ -26,8 +26,6 @@ #include "block/block_int.h" #include "block/qcow2.h" #include "qemu/range.h" -#include "qapi/qmp/types.h" -#include "qapi-event.h" static int64_t alloc_clusters_noref(BlockDriverState *bs, uint64_t size); static int QEMU_WARN_UNUSED_RESULT update_refcount(BlockDriverState *bs, @@ -1838,26 +1836,11 @@ int qcow2_pre_write_overlap_check(BlockDriverState *bs, int ign, int64_t offset, return ret; } else if (ret > 0) { int metadata_ol_bitnr = ffs(ret) - 1; - char *message; - assert(metadata_ol_bitnr < QCOW2_OL_MAX_BITNR); - fprintf(stderr, "qcow2: Preventing invalid write on metadata (overlaps " - "with %s); image marked as corrupt.\n", - metadata_ol_names[metadata_ol_bitnr]); - message = g_strdup_printf("Prevented %s overwrite", - metadata_ol_names[metadata_ol_bitnr]); - qapi_event_send_block_image_corrupted(bdrv_get_device_name(bs), - message, - true, - offset, - true, - size, - &error_abort); - g_free(message); - - qcow2_mark_corrupt(bs); - bs->drv = NULL; /* make BDS unusable */ + qcow2_signal_corruption(bs, offset, size, "Preventing invalid write on " + "metadata (overlaps with %s)", + metadata_ol_names[metadata_ol_bitnr]); return -EIO; } -- 2.0.4