mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-07 11:28:46 +00:00
sheepdog: fix return value of do_load_save_vm_state
bdrv_save_vmstate and bdrv_load_vmstate should return the vmstate size on success, and -errno on error. Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
47ce9ef7f8
commit
6f3c714eb7
@ -1957,7 +1957,7 @@ static int do_load_save_vmstate(BDRVSheepdogState *s, uint8_t *data,
|
|||||||
int64_t pos, int size, int load)
|
int64_t pos, int size, int load)
|
||||||
{
|
{
|
||||||
int fd, create;
|
int fd, create;
|
||||||
int ret = 0;
|
int ret = 0, remaining = size;
|
||||||
unsigned int data_len;
|
unsigned int data_len;
|
||||||
uint64_t vmstate_oid;
|
uint64_t vmstate_oid;
|
||||||
uint32_t vdi_index;
|
uint32_t vdi_index;
|
||||||
@ -1968,11 +1968,11 @@ static int do_load_save_vmstate(BDRVSheepdogState *s, uint8_t *data,
|
|||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (size) {
|
while (remaining) {
|
||||||
vdi_index = pos / SD_DATA_OBJ_SIZE;
|
vdi_index = pos / SD_DATA_OBJ_SIZE;
|
||||||
offset = pos % SD_DATA_OBJ_SIZE;
|
offset = pos % SD_DATA_OBJ_SIZE;
|
||||||
|
|
||||||
data_len = MIN(size, SD_DATA_OBJ_SIZE);
|
data_len = MIN(remaining, SD_DATA_OBJ_SIZE);
|
||||||
|
|
||||||
vmstate_oid = vid_to_vmstate_oid(s->inode.vdi_id, vdi_index);
|
vmstate_oid = vid_to_vmstate_oid(s->inode.vdi_id, vdi_index);
|
||||||
|
|
||||||
@ -1993,9 +1993,9 @@ static int do_load_save_vmstate(BDRVSheepdogState *s, uint8_t *data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
pos += data_len;
|
pos += data_len;
|
||||||
size -= data_len;
|
remaining -= data_len;
|
||||||
ret += data_len;
|
|
||||||
}
|
}
|
||||||
|
ret = size;
|
||||||
cleanup:
|
cleanup:
|
||||||
closesocket(fd);
|
closesocket(fd);
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user