mirror of https://gitee.com/openkylin/qemu.git
qcow2: Allow updating no refcounts
There's absolutely no problem with updating the refcounts of 0 clusters. At least snapshot code is doing this and would fail once the result of update_refcount isn't ignored any more. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
09508d13f3
commit
7322afe7ea
|
@ -284,8 +284,12 @@ static int update_refcount(BlockDriverState *bs,
|
||||||
printf("update_refcount: offset=%" PRId64 " size=%" PRId64 " addend=%d\n",
|
printf("update_refcount: offset=%" PRId64 " size=%" PRId64 " addend=%d\n",
|
||||||
offset, length, addend);
|
offset, length, addend);
|
||||||
#endif
|
#endif
|
||||||
if (length <= 0)
|
if (length < 0) {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
} else if (length == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
start = offset & ~(s->cluster_size - 1);
|
start = offset & ~(s->cluster_size - 1);
|
||||||
last = (offset + length - 1) & ~(s->cluster_size - 1);
|
last = (offset + length - 1) & ~(s->cluster_size - 1);
|
||||||
for(cluster_offset = start; cluster_offset <= last;
|
for(cluster_offset = start; cluster_offset <= last;
|
||||||
|
|
Loading…
Reference in New Issue