Loading block/qcow2-refcount.c +8 −6 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #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, Loading Loading @@ -1807,7 +1808,6 @@ int qcow2_pre_write_overlap_check(BlockDriverState *bs, int ign, int64_t offset, } else if (ret > 0) { int metadata_ol_bitnr = ffs(ret) - 1; char *message; QObject *data; assert(metadata_ol_bitnr < QCOW2_OL_MAX_BITNR); Loading @@ -1816,12 +1816,14 @@ int qcow2_pre_write_overlap_check(BlockDriverState *bs, int ign, int64_t offset, metadata_ol_names[metadata_ol_bitnr]); message = g_strdup_printf("Prevented %s overwrite", metadata_ol_names[metadata_ol_bitnr]); data = qobject_from_jsonf("{ 'device': %s, 'msg': %s, 'offset': %" PRId64 ", 'size': %" PRId64 " }", bs->device_name, message, offset, size); monitor_protocol_event(QEVENT_BLOCK_IMAGE_CORRUPTED, data); qapi_event_send_block_image_corrupted(bdrv_get_device_name(bs), message, true, offset, true, size, &error_abort); g_free(message); qobject_decref(data); qcow2_mark_corrupt(bs); bs->drv = NULL; /* make BDS unusable */ Loading docs/qmp/qmp-events.txt +0 −22 Original line number Diff line number Diff line Loading @@ -28,28 +28,6 @@ Example: "data": { "actual": 944766976 }, "timestamp": { "seconds": 1267020223, "microseconds": 435656 } } BLOCK_IMAGE_CORRUPTED --------------------- Emitted when a disk image is being marked corrupt. Data: - "device": Device name (json-string) - "msg": Informative message (e.g., reason for the corruption) (json-string) - "offset": If the corruption resulted from an image access, this is the access offset into the image (json-int) - "size": If the corruption resulted from an image access, this is the access size (json-int) Example: { "event": "BLOCK_IMAGE_CORRUPTED", "data": { "device": "ide0-hd0", "msg": "Prevented active L1 table overwrite", "offset": 196608, "size": 65536 }, "timestamp": { "seconds": 1378126126, "microseconds": 966463 } } BLOCK_JOB_CANCELLED ------------------- Loading qapi/block-core.json +24 −0 Original line number Diff line number Diff line Loading @@ -1428,6 +1428,30 @@ 'data': [ 'ignore', 'report', 'stop' ] } ## # @BLOCK_IMAGE_CORRUPTED # # Emitted when a disk image is being marked corrupt # # @device: device name # # @msg: informative message for human consumption, such as the kind of # corruption being detected # # @offset: #optional, if the corruption resulted from an image access, this is # the access offset into the image # # @size: #optional, if the corruption resulted from an image access, this is # the access size # # Since: 1.7 ## { 'event': 'BLOCK_IMAGE_CORRUPTED', 'data': { 'device' : 'str', 'msg' : 'str', '*offset': 'int', '*size' : 'int' } } ## # @BLOCK_IO_ERROR # Loading Loading
block/qcow2-refcount.c +8 −6 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #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, Loading Loading @@ -1807,7 +1808,6 @@ int qcow2_pre_write_overlap_check(BlockDriverState *bs, int ign, int64_t offset, } else if (ret > 0) { int metadata_ol_bitnr = ffs(ret) - 1; char *message; QObject *data; assert(metadata_ol_bitnr < QCOW2_OL_MAX_BITNR); Loading @@ -1816,12 +1816,14 @@ int qcow2_pre_write_overlap_check(BlockDriverState *bs, int ign, int64_t offset, metadata_ol_names[metadata_ol_bitnr]); message = g_strdup_printf("Prevented %s overwrite", metadata_ol_names[metadata_ol_bitnr]); data = qobject_from_jsonf("{ 'device': %s, 'msg': %s, 'offset': %" PRId64 ", 'size': %" PRId64 " }", bs->device_name, message, offset, size); monitor_protocol_event(QEVENT_BLOCK_IMAGE_CORRUPTED, data); qapi_event_send_block_image_corrupted(bdrv_get_device_name(bs), message, true, offset, true, size, &error_abort); g_free(message); qobject_decref(data); qcow2_mark_corrupt(bs); bs->drv = NULL; /* make BDS unusable */ Loading
docs/qmp/qmp-events.txt +0 −22 Original line number Diff line number Diff line Loading @@ -28,28 +28,6 @@ Example: "data": { "actual": 944766976 }, "timestamp": { "seconds": 1267020223, "microseconds": 435656 } } BLOCK_IMAGE_CORRUPTED --------------------- Emitted when a disk image is being marked corrupt. Data: - "device": Device name (json-string) - "msg": Informative message (e.g., reason for the corruption) (json-string) - "offset": If the corruption resulted from an image access, this is the access offset into the image (json-int) - "size": If the corruption resulted from an image access, this is the access size (json-int) Example: { "event": "BLOCK_IMAGE_CORRUPTED", "data": { "device": "ide0-hd0", "msg": "Prevented active L1 table overwrite", "offset": 196608, "size": 65536 }, "timestamp": { "seconds": 1378126126, "microseconds": 966463 } } BLOCK_JOB_CANCELLED ------------------- Loading
qapi/block-core.json +24 −0 Original line number Diff line number Diff line Loading @@ -1428,6 +1428,30 @@ 'data': [ 'ignore', 'report', 'stop' ] } ## # @BLOCK_IMAGE_CORRUPTED # # Emitted when a disk image is being marked corrupt # # @device: device name # # @msg: informative message for human consumption, such as the kind of # corruption being detected # # @offset: #optional, if the corruption resulted from an image access, this is # the access offset into the image # # @size: #optional, if the corruption resulted from an image access, this is # the access size # # Since: 1.7 ## { 'event': 'BLOCK_IMAGE_CORRUPTED', 'data': { 'device' : 'str', 'msg' : 'str', '*offset': 'int', '*size' : 'int' } } ## # @BLOCK_IO_ERROR # Loading