diff options
author | Vladimir Sementsov-Ogievskiy | 2019-04-23 14:57:04 +0200 |
---|---|---|
committer | Kevin Wolf | 2019-06-04 16:55:58 +0200 |
commit | 1477b6c803491cd1146a8858bf5cf8159913054d (patch) | |
tree | 9c98245a153af17cfd81b7b3275131f10c289c5e /block | |
parent | block: Remove bdrv_set_aio_context() (diff) | |
download | qemu-1477b6c803491cd1146a8858bf5cf8159913054d.tar.gz qemu-1477b6c803491cd1146a8858bf5cf8159913054d.tar.xz qemu-1477b6c803491cd1146a8858bf5cf8159913054d.zip |
block/qcow2-refcount: add trace-point to qcow2_process_discards
Let's at least trace ignored failure.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/qcow2-refcount.c | 7 | ||||
-rw-r--r-- | block/trace-events | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c index 3a2c673a5e..22cadd79d5 100644 --- a/block/qcow2-refcount.c +++ b/block/qcow2-refcount.c @@ -29,6 +29,7 @@ #include "qemu/range.h" #include "qemu/bswap.h" #include "qemu/cutils.h" +#include "trace.h" static int64_t alloc_clusters_noref(BlockDriverState *bs, uint64_t size, uint64_t max); @@ -737,7 +738,11 @@ void qcow2_process_discards(BlockDriverState *bs, int ret) /* Discard is optional, ignore the return value */ if (ret >= 0) { - bdrv_pdiscard(bs->file, d->offset, d->bytes); + int r2 = bdrv_pdiscard(bs->file, d->offset, d->bytes); + if (r2 < 0) { + trace_qcow2_process_discards_failed_region(d->offset, d->bytes, + r2); + } } g_free(d); diff --git a/block/trace-events b/block/trace-events index 1e0653ce6d..eab51497fc 100644 --- a/block/trace-events +++ b/block/trace-events @@ -92,6 +92,9 @@ qcow2_cache_get_done(void *co, int c, int i) "co %p is_l2_cache %d index %d" qcow2_cache_flush(void *co, int c) "co %p is_l2_cache %d" qcow2_cache_entry_flush(void *co, int c, int i) "co %p is_l2_cache %d index %d" +# qcow2-refcount.c +qcow2_process_discards_failed_region(uint64_t offset, uint64_t bytes, int ret) "offset 0x%" PRIx64 " bytes 0x%" PRIx64 " ret %d" + # qed-l2-cache.c qed_alloc_l2_cache_entry(void *l2_cache, void *entry) "l2_cache %p entry %p" qed_unref_l2_cache_entry(void *entry, int ref) "entry %p ref %d" |