From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58794) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvqwU-00047U-9F for qemu-devel@nongnu.org; Tue, 23 Aug 2011 09:23:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QvqwT-0007Nz-8C for qemu-devel@nongnu.org; Tue, 23 Aug 2011 09:22:58 -0400 Received: from mail-yw0-f45.google.com ([209.85.213.45]:35054) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvqwT-0007Nt-2Y for qemu-devel@nongnu.org; Tue, 23 Aug 2011 09:22:57 -0400 Received: by ywf9 with SMTP id 9so85580ywf.4 for ; Tue, 23 Aug 2011 06:22:56 -0700 (PDT) From: Frediano Ziglio Date: Tue, 23 Aug 2011 15:21:22 +0200 Message-Id: <1314105682-28396-16-git-send-email-freddy77@gmail.com> In-Reply-To: <1314105682-28396-1-git-send-email-freddy77@gmail.com> References: <1314105682-28396-1-git-send-email-freddy77@gmail.com> Subject: [Qemu-devel] [PATCH v3 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 0f9a64a..243c24b 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