qcow2: Do not return new value after refcount update

qcow2_update_cluster_refcount() does not have any quick access to the
new refcount value, it has to call qcow2_get_refcount(). Some callers do
not need that new value at all, others call qcow2_get_refcount()
themselves anyway (albeit in a different code path, which can however be
easily changed), therefore there is no advantage in making
qcow2_update_cluster_refcount() return the new value. Drop it.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Max Reitz 2015-02-10 15:28:45 -05:00 committed by Kevin Wolf
parent 0709c5a153
commit c6e9d8ae66

View file

@ -631,8 +631,7 @@ fail:
/* /*
* Increases or decreases the refcount of a given cluster. * Increases or decreases the refcount of a given cluster.
* *
* If the return value is non-negative, it is the new refcount of the cluster. * On success 0 is returned; on failure -errno is returned.
* If it is negative, it is -errno and indicates an error.
*/ */
int qcow2_update_cluster_refcount(BlockDriverState *bs, int qcow2_update_cluster_refcount(BlockDriverState *bs,
int64_t cluster_index, int64_t cluster_index,
@ -648,7 +647,7 @@ int qcow2_update_cluster_refcount(BlockDriverState *bs,
return ret; return ret;
} }
return qcow2_get_refcount(bs, cluster_index); return 0;
} }
@ -976,13 +975,15 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs,
break; break;
} }
if (addend != 0) { if (addend != 0) {
refcount = qcow2_update_cluster_refcount(bs, ret = qcow2_update_cluster_refcount(bs,
cluster_index, addend, cluster_index, addend,
QCOW2_DISCARD_SNAPSHOT); QCOW2_DISCARD_SNAPSHOT);
} else { if (ret < 0) {
refcount = qcow2_get_refcount(bs, cluster_index); goto fail;
}
} }
refcount = qcow2_get_refcount(bs, cluster_index);
if (refcount < 0) { if (refcount < 0) {
ret = refcount; ret = refcount;
goto fail; goto fail;
@ -1017,11 +1018,15 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs,
if (addend != 0) { if (addend != 0) {
refcount = qcow2_update_cluster_refcount(bs, l2_offset >> ret = qcow2_update_cluster_refcount(bs, l2_offset >>
s->cluster_bits, addend, QCOW2_DISCARD_SNAPSHOT); s->cluster_bits,
} else { addend,
refcount = qcow2_get_refcount(bs, l2_offset >> s->cluster_bits); QCOW2_DISCARD_SNAPSHOT);
if (ret < 0) {
goto fail;
} }
}
refcount = qcow2_get_refcount(bs, l2_offset >> s->cluster_bits);
if (refcount < 0) { if (refcount < 0) {
ret = refcount; ret = refcount;
goto fail; goto fail;