All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alberto Garcia <berto@igalia.com>
To: qemu-devel@nongnu.org
Cc: Alberto Garcia <berto@igalia.com>,
	qemu-block@nongnu.org, Max Reitz <mreitz@redhat.com>,
	Kevin Wolf <kwolf@redhat.com>, "Denis V . Lunev" <den@openvz.org>
Subject: [Qemu-devel] [PATCH v2 19/32] qcow2: Update qcow2_alloc_cluster_link_l2() to support L2 slices
Date: Fri, 15 Dec 2017 13:53:47 +0100	[thread overview]
Message-ID: <c209a6903edc99329e9f8693851a180e33a80c75.1513342045.git.berto@igalia.com> (raw)
In-Reply-To: <cover.1513342045.git.berto@igalia.com>
In-Reply-To: <cover.1513342045.git.berto@igalia.com>

There's a loop in this function that iterates over the L2 entries in a
table, so now we need to assert that it remains within the limits of
an L2 slice.

Apart from that, this function doesn't need any additional changes, so
this patch simply updates the variable name from l2_table to l2_slice.

Signed-off-by: Alberto Garcia <berto@igalia.com>
---
 block/qcow2-cluster.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index f167bb6336..f8c22ca2be 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -931,7 +931,7 @@ int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m)
 {
     BDRVQcow2State *s = bs->opaque;
     int i, j = 0, l2_index, ret;
-    uint64_t *old_cluster, *l2_table;
+    uint64_t *old_cluster, *l2_slice;
     uint64_t cluster_offset = m->alloc_offset;
 
     trace_qcow2_cluster_link_l2(qemu_coroutine_self(), m->nb_clusters);
@@ -958,13 +958,13 @@ int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m)
                                    s->refcount_block_cache);
     }
 
-    ret = get_cluster_table(bs, m->offset, &l2_table, &l2_index);
+    ret = get_cluster_table(bs, m->offset, &l2_slice, &l2_index);
     if (ret < 0) {
         goto err;
     }
-    qcow2_cache_entry_mark_dirty(s->l2_table_cache, l2_table);
+    qcow2_cache_entry_mark_dirty(s->l2_table_cache, l2_slice);
 
-    assert(l2_index + m->nb_clusters <= s->l2_size);
+    assert(l2_index + m->nb_clusters <= s->l2_slice_size);
     for (i = 0; i < m->nb_clusters; i++) {
         /* if two concurrent writes happen to the same unallocated cluster
          * each write allocates separate cluster and writes data concurrently.
@@ -972,16 +972,16 @@ int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m)
          * cluster the second one has to do RMW (which is done above by
          * perform_cow()), update l2 table with its cluster pointer and free
          * old cluster. This is what this loop does */
-        if (l2_table[l2_index + i] != 0) {
-            old_cluster[j++] = l2_table[l2_index + i];
+        if (l2_slice[l2_index + i] != 0) {
+            old_cluster[j++] = l2_slice[l2_index + i];
         }
 
-        l2_table[l2_index + i] = cpu_to_be64((cluster_offset +
+        l2_slice[l2_index + i] = cpu_to_be64((cluster_offset +
                     (i << s->cluster_bits)) | QCOW_OFLAG_COPIED);
      }
 
 
-    qcow2_cache_put(s->l2_table_cache, (void **) &l2_table);
+    qcow2_cache_put(s->l2_table_cache, (void **) &l2_slice);
 
     /*
      * If this was a COW, we need to decrease the refcount of the old cluster.
-- 
2.11.0

  parent reply	other threads:[~2017-12-15 12:54 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-15 12:53 [Qemu-devel] [PATCH v2 00/32] Allow configuring the qcow2 L2 cache entry size Alberto Garcia
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 01/32] qcow2: Fix documentation of get_cluster_table() Alberto Garcia
2018-01-16 20:47   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 02/32] qcow2: Add table size field to Qcow2Cache Alberto Garcia
2018-01-16 21:05   ` Eric Blake
2018-01-17 12:54     ` Alberto Garcia
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 03/32] qcow2: Remove BDS parameter from qcow2_cache_get_table_addr() Alberto Garcia
2018-01-16 21:25   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 04/32] qcow2: Remove BDS parameter from qcow2_cache_get_table_idx() Alberto Garcia
2018-01-16 21:30   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 05/32] qcow2: Remove BDS parameter from qcow2_cache_table_release() Alberto Garcia
2018-01-16 21:32   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 06/32] qcow2: Remove BDS parameter from qcow2_cache_entry_mark_dirty() Alberto Garcia
2018-01-16 21:39   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 07/32] qcow2: Remove BDS parameter from qcow2_cache_put() Alberto Garcia
2018-01-16 21:42   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 08/32] qcow2: Remove BDS parameter from qcow2_cache_destroy() Alberto Garcia
2018-01-16 21:46   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 09/32] qcow2: Remove BDS parameter from qcow2_cache_clean_unused() Alberto Garcia
2018-01-16 21:47   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 10/32] qcow2: Remove BDS parameter from qcow2_cache_discard() Alberto Garcia
2018-01-16 21:50   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 11/32] qcow2: Remove BDS parameter from qcow2_cache_is_table_offset() Alberto Garcia
2018-01-16 21:50   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 12/32] qcow2: Add offset_to_l1_index() Alberto Garcia
2018-01-16 22:03   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 13/32] qcow2: Add l2_slice_size field to BDRVQcow2State Alberto Garcia
2018-01-16 22:06   ` Eric Blake
2018-01-17 15:30     ` Alberto Garcia
2018-01-17 16:04       ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 14/32] qcow2: Add offset_to_l2_slice_index() Alberto Garcia
2018-01-16 22:10   ` Eric Blake
2018-01-17 14:55     ` Alberto Garcia
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 15/32] qcow2: Update l2_load() to support L2 slices Alberto Garcia
2018-01-16 22:14   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 16/32] qcow2: Update l2_allocate() " Alberto Garcia
2018-01-16 16:52   ` Anton Nefedov
2018-01-17 15:42     ` Alberto Garcia
2018-01-17 16:57       ` Anton Nefedov
2018-01-18 14:46         ` Alberto Garcia
2018-01-16 22:26   ` Eric Blake
2018-01-17 15:55     ` Alberto Garcia
2018-01-17 16:06       ` Eric Blake
2018-01-17 16:13         ` Alberto Garcia
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 17/32] qcow2: Update get_cluster_table() " Alberto Garcia
2018-01-16 22:31   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 18/32] qcow2: Update qcow2_get_cluster_offset() " Alberto Garcia
2018-01-16 22:42   ` Eric Blake
2018-01-19 13:28     ` Alberto Garcia
2017-12-15 12:53 ` Alberto Garcia [this message]
2018-01-16 22:49   ` [Qemu-devel] [PATCH v2 19/32] qcow2: Update qcow2_alloc_cluster_link_l2() " Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 20/32] qcow2: Update handle_copied() " Alberto Garcia
2018-01-16 22:51   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 21/32] qcow2: Update handle_alloc() " Alberto Garcia
2018-01-16 22:52   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 22/32] qcow2: Update discard_single_l2() " Alberto Garcia
2018-01-16 22:55   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 23/32] qcow2: Update zero_single_l2() " Alberto Garcia
2018-01-16 22:58   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 24/32] qcow2: Update qcow2_update_snapshot_refcount() " Alberto Garcia
2018-01-16 23:00   ` Eric Blake
2018-01-18 15:43     ` Alberto Garcia
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 25/32] qcow2: Update expand_zero_clusters_in_l1() " Alberto Garcia
2018-01-16 16:54   ` Anton Nefedov
2018-01-16 23:09   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 26/32] qcow2: Update qcow2_truncate() " Alberto Garcia
2018-01-16 23:14   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 27/32] qcow2: Rename l2_table in qcow2_alloc_compressed_cluster_offset() Alberto Garcia
2018-01-17 16:31   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 28/32] qcow2: Rename l2_table in count_contiguous_clusters() Alberto Garcia
2018-01-17 16:57   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 29/32] qcow2: Rename l2_table in count_contiguous_clusters_unallocated() Alberto Garcia
2018-01-22 20:34   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 30/32] qcow2: Rename l2_table in count_cow_clusters() Alberto Garcia
2018-01-22 20:39   ` Eric Blake
2017-12-15 12:53 ` [Qemu-devel] [PATCH v2 31/32] qcow2: Allow configuring the L2 slice size Alberto Garcia
2018-01-16 16:57   ` Anton Nefedov
2018-01-22 15:56     ` Alberto Garcia
2018-01-16 23:18   ` Eric Blake
2018-01-18 16:08     ` Alberto Garcia
2017-12-15 12:54 ` [Qemu-devel] [PATCH v2 32/32] iotests: Add test for l2-cache-entry-size Alberto Garcia
2017-12-15 13:26 ` [Qemu-devel] [PATCH v2 00/32] Allow configuring the qcow2 L2 cache entry size no-reply
2017-12-15 13:37 ` no-reply
2018-01-12 11:58 ` Alberto Garcia

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=c209a6903edc99329e9f8693851a180e33a80c75.1513342045.git.berto@igalia.com \
    --to=berto@igalia.com \
    --cc=den@openvz.org \
    --cc=kwolf@redhat.com \
    --cc=mreitz@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.