qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL 23/55] qcow2: Remove BDS parameter from qcow2_cache_put()
Date: Tue, 13 Feb 2018 18:04:57 +0100	[thread overview]
Message-ID: <20180213170529.10858-24-kwolf@redhat.com> (raw)
In-Reply-To: <20180213170529.10858-1-kwolf@redhat.com>

From: Alberto Garcia <berto@igalia.com>

This function was only using the BlockDriverState parameter to pass it
to qcow2_cache_get_table_idx(). This is no longer necessary so this
parameter can be removed.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 6f98155489054a457563da77cdad1a66ebb3e896.1517840876.git.berto@igalia.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 block/qcow2.h          |  2 +-
 block/qcow2-cache.c    |  2 +-
 block/qcow2-cluster.c  | 28 ++++++++++++++--------------
 block/qcow2-refcount.c | 30 +++++++++++++++---------------
 4 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/block/qcow2.h b/block/qcow2.h
index 73e0e0133d..606dcdd47f 100644
--- a/block/qcow2.h
+++ b/block/qcow2.h
@@ -653,7 +653,7 @@ int qcow2_cache_get(BlockDriverState *bs, Qcow2Cache *c, uint64_t offset,
     void **table);
 int qcow2_cache_get_empty(BlockDriverState *bs, Qcow2Cache *c, uint64_t offset,
     void **table);
-void qcow2_cache_put(BlockDriverState *bs, Qcow2Cache *c, void **table);
+void qcow2_cache_put(Qcow2Cache *c, void **table);
 void *qcow2_cache_is_table_offset(BlockDriverState *bs, Qcow2Cache *c,
                                   uint64_t offset);
 void qcow2_cache_discard(BlockDriverState *bs, Qcow2Cache *c, void *table);
diff --git a/block/qcow2-cache.c b/block/qcow2-cache.c
index 07603e6b15..3b55f39afb 100644
--- a/block/qcow2-cache.c
+++ b/block/qcow2-cache.c
@@ -407,7 +407,7 @@ int qcow2_cache_get_empty(BlockDriverState *bs, Qcow2Cache *c, uint64_t offset,
     return qcow2_cache_do_get(bs, c, offset, table, false);
 }
 
-void qcow2_cache_put(BlockDriverState *bs, Qcow2Cache *c, void **table)
+void qcow2_cache_put(Qcow2Cache *c, void **table)
 {
     int i = qcow2_cache_get_table_idx(c, *table);
 
diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index 08af5c5995..ab5715c97e 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -317,7 +317,7 @@ static int l2_allocate(BlockDriverState *bs, int l1_index, uint64_t **table)
 
         memcpy(l2_table, old_table, s->cluster_size);
 
-        qcow2_cache_put(bs, s->l2_table_cache, (void **) &old_table);
+        qcow2_cache_put(s->l2_table_cache, (void **) &old_table);
     }
 
     /* write the l2 table to the file */
@@ -345,7 +345,7 @@ static int l2_allocate(BlockDriverState *bs, int l1_index, uint64_t **table)
 fail:
     trace_qcow2_l2_allocate_done(bs, l1_index, ret);
     if (l2_table != NULL) {
-        qcow2_cache_put(bs, s->l2_table_cache, (void**) table);
+        qcow2_cache_put(s->l2_table_cache, (void **) table);
     }
     s->l1_table[l1_index] = old_l2_offset;
     if (l2_offset > 0) {
@@ -619,7 +619,7 @@ int qcow2_get_cluster_offset(BlockDriverState *bs, uint64_t offset,
         abort();
     }
 
-    qcow2_cache_put(bs, s->l2_table_cache, (void**) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
     bytes_available = (int64_t)c * s->cluster_size;
 
@@ -637,7 +637,7 @@ out:
     return type;
 
 fail:
-    qcow2_cache_put(bs, s->l2_table_cache, (void **)&l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **)&l2_table);
     return ret;
 }
 
@@ -744,13 +744,13 @@ uint64_t qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs,
      * allocated. */
     cluster_offset = be64_to_cpu(l2_table[l2_index]);
     if (cluster_offset & L2E_OFFSET_MASK) {
-        qcow2_cache_put(bs, s->l2_table_cache, (void**) &l2_table);
+        qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
         return 0;
     }
 
     cluster_offset = qcow2_alloc_bytes(bs, compressed_size);
     if (cluster_offset < 0) {
-        qcow2_cache_put(bs, s->l2_table_cache, (void**) &l2_table);
+        qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
         return 0;
     }
 
@@ -767,7 +767,7 @@ uint64_t qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs,
     BLKDBG_EVENT(bs->file, BLKDBG_L2_UPDATE_COMPRESSED);
     qcow2_cache_entry_mark_dirty(s->l2_table_cache, l2_table);
     l2_table[l2_index] = cpu_to_be64(cluster_offset);
-    qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
     return cluster_offset;
 }
@@ -956,7 +956,7 @@ int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m)
      }
 
 
-    qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
     /*
      * If this was a COW, we need to decrease the refcount of the old cluster.
@@ -1174,7 +1174,7 @@ static int handle_copied(BlockDriverState *bs, uint64_t guest_offset,
 
     /* Cleanup */
 out:
-    qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
     /* Only return a host offset if we actually made progress. Otherwise we
      * would make requirements for handle_alloc() that it can't fulfill */
@@ -1333,7 +1333,7 @@ static int handle_alloc(BlockDriverState *bs, uint64_t guest_offset,
         keep_old_clusters = true;
     }
 
-    qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
     if (!alloc_cluster_offset) {
         /* Allocate, if necessary at a given offset in the image file */
@@ -1689,7 +1689,7 @@ static int discard_single_l2(BlockDriverState *bs, uint64_t offset,
         qcow2_free_any_clusters(bs, old_l2_entry, 1, type);
     }
 
-    qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
     return nb_clusters;
 }
@@ -1783,7 +1783,7 @@ static int zero_single_l2(BlockDriverState *bs, uint64_t offset,
         }
     }
 
-    qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
     return nb_clusters;
 }
@@ -1986,7 +1986,7 @@ static int expand_zero_clusters_in_l1(BlockDriverState *bs, uint64_t *l1_table,
                 qcow2_cache_entry_mark_dirty(s->l2_table_cache, l2_table);
                 qcow2_cache_depends_on_flush(s->l2_table_cache);
             }
-            qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+            qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
         } else {
             if (l2_dirty) {
                 ret = qcow2_pre_write_overlap_check(bs,
@@ -2017,7 +2017,7 @@ fail:
         if (!is_active_l1) {
             qemu_vfree(l2_table);
         } else {
-            qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+            qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
         }
     }
     return ret;
diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
index 5434e7d4c8..65af05dd23 100644
--- a/block/qcow2-refcount.c
+++ b/block/qcow2-refcount.c
@@ -277,7 +277,7 @@ int qcow2_get_refcount(BlockDriverState *bs, int64_t cluster_index,
     block_index = cluster_index & (s->refcount_block_size - 1);
     *refcount = s->get_refcount(refcount_block, block_index);
 
-    qcow2_cache_put(bs, s->refcount_block_cache, &refcount_block);
+    qcow2_cache_put(s->refcount_block_cache, &refcount_block);
 
     return 0;
 }
@@ -449,7 +449,7 @@ static int alloc_refcount_block(BlockDriverState *bs,
         return -EAGAIN;
     }
 
-    qcow2_cache_put(bs, s->refcount_block_cache, refcount_block);
+    qcow2_cache_put(s->refcount_block_cache, refcount_block);
 
     /*
      * If we come here, we need to grow the refcount table. Again, a new
@@ -501,7 +501,7 @@ static int alloc_refcount_block(BlockDriverState *bs,
 
 fail:
     if (*refcount_block != NULL) {
-        qcow2_cache_put(bs, s->refcount_block_cache, refcount_block);
+        qcow2_cache_put(s->refcount_block_cache, refcount_block);
     }
     return ret;
 }
@@ -660,7 +660,7 @@ int64_t qcow2_refcount_area(BlockDriverState *bs, uint64_t start_offset,
                                          refblock_data);
         }
 
-        qcow2_cache_put(bs, s->refcount_block_cache, &refblock_data);
+        qcow2_cache_put(s->refcount_block_cache, &refblock_data);
     }
 
     assert(block_offset == table_offset);
@@ -836,7 +836,7 @@ static int QEMU_WARN_UNUSED_RESULT update_refcount(BlockDriverState *bs,
         /* Load the refcount block and allocate it if needed */
         if (table_index != old_table_index) {
             if (refcount_block) {
-                qcow2_cache_put(bs, s->refcount_block_cache, &refcount_block);
+                qcow2_cache_put(s->refcount_block_cache, &refcount_block);
             }
             ret = alloc_refcount_block(bs, cluster_index, &refcount_block);
             if (ret < 0) {
@@ -874,7 +874,7 @@ static int QEMU_WARN_UNUSED_RESULT update_refcount(BlockDriverState *bs,
             table = qcow2_cache_is_table_offset(bs, s->refcount_block_cache,
                                                 offset);
             if (table != NULL) {
-                qcow2_cache_put(bs, s->refcount_block_cache, &refcount_block);
+                qcow2_cache_put(s->refcount_block_cache, &refcount_block);
                 qcow2_cache_discard(bs, s->refcount_block_cache, table);
             }
 
@@ -897,7 +897,7 @@ fail:
 
     /* Write last changed block to disk */
     if (refcount_block) {
-        qcow2_cache_put(bs, s->refcount_block_cache, &refcount_block);
+        qcow2_cache_put(s->refcount_block_cache, &refcount_block);
     }
 
     /*
@@ -1319,7 +1319,7 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs,
                 }
             }
 
-            qcow2_cache_put(bs, s->l2_table_cache, (void **) &l2_table);
+            qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
 
             if (addend != 0) {
                 ret = qcow2_update_cluster_refcount(bs, l2_offset >>
@@ -1347,7 +1347,7 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs,
     ret = bdrv_flush(bs);
 fail:
     if (l2_table) {
-        qcow2_cache_put(bs, s->l2_table_cache, (void**) &l2_table);
+        qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
     }
 
     s->cache_discards = false;
@@ -2847,7 +2847,7 @@ static int walk_over_reftable(BlockDriverState *bs, uint64_t **new_reftable,
                                     new_reftable_size, new_refblock,
                                     new_refblock_empty, allocated, errp);
                     if (ret < 0) {
-                        qcow2_cache_put(bs, s->refcount_block_cache, &refblock);
+                        qcow2_cache_put(s->refcount_block_cache, &refblock);
                         return ret;
                     }
 
@@ -2860,7 +2860,7 @@ static int walk_over_reftable(BlockDriverState *bs, uint64_t **new_reftable,
                 if (new_refcount_bits < 64 && refcount >> new_refcount_bits) {
                     uint64_t offset;
 
-                    qcow2_cache_put(bs, s->refcount_block_cache, &refblock);
+                    qcow2_cache_put(s->refcount_block_cache, &refblock);
 
                     offset = ((reftable_index << s->refcount_block_bits)
                               + refblock_index) << s->cluster_bits;
@@ -2881,7 +2881,7 @@ static int walk_over_reftable(BlockDriverState *bs, uint64_t **new_reftable,
                 new_refblock_empty = new_refblock_empty && refcount == 0;
             }
 
-            qcow2_cache_put(bs, s->refcount_block_cache, &refblock);
+            qcow2_cache_put(s->refcount_block_cache, &refblock);
         } else {
             /* No refblock means every refcount is 0 */
             for (refblock_index = 0; refblock_index < s->refcount_block_size;
@@ -3173,14 +3173,14 @@ static int qcow2_discard_refcount_block(BlockDriverState *bs,
                                 offset_to_reftable_index(s, discard_block_offs),
                                 discard_block_offs,
                                 s->get_refcount(refblock, block_index));
-        qcow2_cache_put(bs, s->refcount_block_cache, &refblock);
+        qcow2_cache_put(s->refcount_block_cache, &refblock);
         return -EINVAL;
     }
     s->set_refcount(refblock, block_index, 0);
 
     qcow2_cache_entry_mark_dirty(s->refcount_block_cache, refblock);
 
-    qcow2_cache_put(bs, s->refcount_block_cache, &refblock);
+    qcow2_cache_put(s->refcount_block_cache, &refblock);
 
     if (cluster_index < s->free_cluster_index) {
         s->free_cluster_index = cluster_index;
@@ -3233,7 +3233,7 @@ int qcow2_shrink_reftable(BlockDriverState *bs)
         } else {
             unused_block = buffer_is_zero(refblock, s->cluster_size);
         }
-        qcow2_cache_put(bs, s->refcount_block_cache, &refblock);
+        qcow2_cache_put(s->refcount_block_cache, &refblock);
 
         reftable_tmp[i] = unused_block ? 0 : cpu_to_be64(s->refcount_table[i]);
     }
-- 
2.13.6

  parent reply	other threads:[~2018-02-13 17:06 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-13 17:04 [Qemu-devel] [PULL 00/55] Block layer patches Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 01/55] iotests: Fix CID for VMDK afl image Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 02/55] qemu-img.texi: Clean up parameter list Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 03/55] qemu-img: Document --force-share / -U Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 04/55] docs: Document share-rw property more thoroughly Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 05/55] qcow2: Use g_try_realloc() in qcow2_expand_zero_clusters() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 06/55] block: early check for blockers on drive-mirror Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 07/55] iotests: Use virtio-blk in 155 Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 08/55] qemu-io: fix EOF Ctrl-D handling in qemu-io readline code Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 09/55] gluster: Move glfs_close() to create's clean-up Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 10/55] gluster: Pull truncation from qemu_gluster_create Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 11/55] gluster: Query current size in do_truncate() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 12/55] gluster: Add preallocated truncation Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 13/55] sheepdog: Make sd_prealloc() take a BDS Kevin Wolf
2018-05-08 15:33   ` Peter Maydell
2018-02-13 17:04 ` [Qemu-devel] [PULL 14/55] sheepdog: Pass old and new size to sd_prealloc() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 15/55] sheepdog: Allow fully preallocated truncation Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 16/55] block: maintain persistent disabled bitmaps Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 17/55] qcow2: Fix documentation of get_cluster_table() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 18/55] qcow2: Add table size field to Qcow2Cache Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 19/55] qcow2: Remove BDS parameter from qcow2_cache_get_table_addr() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 20/55] qcow2: Remove BDS parameter from qcow2_cache_get_table_idx() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 21/55] qcow2: Remove BDS parameter from qcow2_cache_table_release() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 22/55] qcow2: Remove BDS parameter from qcow2_cache_entry_mark_dirty() Kevin Wolf
2018-02-13 17:04 ` Kevin Wolf [this message]
2018-02-13 17:04 ` [Qemu-devel] [PULL 24/55] qcow2: Remove BDS parameter from qcow2_cache_destroy() Kevin Wolf
2018-02-13 17:04 ` [Qemu-devel] [PULL 25/55] qcow2: Remove BDS parameter from qcow2_cache_clean_unused() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 26/55] qcow2: Remove BDS parameter from qcow2_cache_discard() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 27/55] qcow2: Remove BDS parameter from qcow2_cache_is_table_offset() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 28/55] qcow2: Add offset_to_l1_index() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 29/55] qcow2: Add l2_slice_size field to BDRVQcow2State Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 30/55] qcow2: Add offset_to_l2_slice_index() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 31/55] qcow2: Update l2_load() to support L2 slices Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 32/55] qcow2: Prepare l2_allocate() for adding L2 slice support Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 33/55] qcow2: Update l2_allocate() to support L2 slices Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 34/55] qcow2: Refactor get_cluster_table() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 35/55] qcow2: Update get_cluster_table() to support L2 slices Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 36/55] qcow2: Update qcow2_get_cluster_offset() " Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 37/55] qcow2: Update qcow2_alloc_cluster_link_l2() " Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 38/55] qcow2: Update handle_copied() " Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 39/55] qcow2: Update handle_alloc() " Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 40/55] qcow2: Update discard_single_l2() " Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 41/55] qcow2: Update zero_single_l2() " Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 42/55] qcow2: Prepare qcow2_update_snapshot_refcount() for adding L2 slice support Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 43/55] qcow2: Update qcow2_update_snapshot_refcount() to support L2 slices Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 44/55] qcow2: Read refcount before L2 table in expand_zero_clusters_in_l1() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 45/55] qcow2: Prepare expand_zero_clusters_in_l1() for adding L2 slice support Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 46/55] qcow2: Update expand_zero_clusters_in_l1() to support L2 slices Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 47/55] qcow2: Update qcow2_truncate() " Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 48/55] qcow2: Rename l2_table in qcow2_alloc_compressed_cluster_offset() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 49/55] qcow2: Rename l2_table in count_contiguous_clusters() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 50/55] qcow2: Rename l2_table in count_contiguous_clusters_unallocated() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 51/55] qcow2: Rename l2_table in count_cow_clusters() Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 52/55] qcow2: Allow configuring the L2 slice size Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 53/55] iotests: Test valid values of l2-cache-entry-size Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 54/55] iotests: Test downgrading an image using a small L2 slice size Kevin Wolf
2018-02-13 17:05 ` [Qemu-devel] [PULL 55/55] iotests: Add l2-cache-entry-size to iotest 137 Kevin Wolf
2018-02-15 10:13 ` [Qemu-devel] [PULL 00/55] Block layer patches Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180213170529.10858-24-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).