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>
(cherry picked from commit 7322afe7ea)
This commit is contained in:
parent
868dab5dc2
commit
afa328b1b2
|
|
@ -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