qcow2: Use unsigned addend for update_refcount()
commit2aabe7c7a16cee6b1b54592fa05b5f9c23c89bc0
authorMax Reitz <mreitz@redhat.com>
Tue, 10 Feb 2015 20:28:47 +0000 (10 15:28 -0500)
committerKevin Wolf <kwolf@redhat.com>
Tue, 10 Mar 2015 13:02:21 +0000 (10 14:02 +0100)
treeda45f57f7fcd1a09b6e2835c04cd93ff95737a37
parent7324c10f96c821b00d691e2c8ced67d8536bf1d6
qcow2: Use unsigned addend for update_refcount()

update_refcount() and qcow2_update_cluster_refcount() currently take a
signed addend. At least one caller passes a value directly derived from
an absolute refcount that should be reached ("l2_refcount - 1" in
expand_zero_clusters_in_l1()). Therefore, the addend should be unsigned
as well; this will be especially important for 64 bit refcounts.

Because update_refcount() then no longer knows whether the refcount
should be increased or decreased, it now requires an additional flag
which specified exactly that. The same applies to
qcow2_update_cluster_refcount().

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/qcow2-cluster.c
block/qcow2-refcount.c
block/qcow2.h