From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qqh2E-00063U-04 for qemu-devel@nongnu.org; Tue, 09 Aug 2011 03:47:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qqh2B-00071X-NI for qemu-devel@nongnu.org; Tue, 09 Aug 2011 03:47:33 -0400 Received: from mail-ey0-f171.google.com ([209.85.215.171]:43960) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qqh2B-0006nW-BN for qemu-devel@nongnu.org; Tue, 09 Aug 2011 03:47:31 -0400 Received: by mail-ey0-f171.google.com with SMTP id 24so3371321eyg.16 for ; Tue, 09 Aug 2011 00:47:30 -0700 (PDT) From: Frediano Ziglio Date: Tue, 9 Aug 2011 09:46:50 +0200 Message-Id: <1312876010-15361-16-git-send-email-freddy77@gmail.com> In-Reply-To: <1312876010-15361-1-git-send-email-freddy77@gmail.com> References: <1312876010-15361-1-git-send-email-freddy77@gmail.com> Subject: [Qemu-devel] [PATCH v2 15/15] qcow2: small optimization List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: kwolf@redhat.com Cc: qemu-devel@nongnu.org, Frediano Ziglio Signed-off-by: Frediano Ziglio --- block/qcow2-refcount.c | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c index 0e31868..318d66d 100644 --- a/block/qcow2-refcount.c +++ b/block/qcow2-refcount.c @@ -681,14 +681,13 @@ void qcow2_create_refcount_update(QCowCreateState *s, int64_t offset, int64_t size) { int refcount; - int64_t start, last, cluster_offset; + int64_t start, last, cluster; uint16_t *p; - start = offset & ~(s->cluster_size - 1); - last = (offset + size - 1) & ~(s->cluster_size - 1); - for(cluster_offset = start; cluster_offset <= last; - cluster_offset += s->cluster_size) { - p = &s->refcount_block[cluster_offset >> s->cluster_bits]; + start = offset >> s->cluster_bits; + last = (offset + size - 1) >> s->cluster_bits; + for (cluster = start; cluster <= last; ++cluster) { + p = &s->refcount_block[cluster]; refcount = be16_to_cpu(*p); refcount++; *p = cpu_to_be16(refcount); -- 1.7.1