mirror of https://gitee.com/openkylin/qemu.git
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)
|
||||
{
|
||||
int fd, create;
|
||||
int ret = 0;
|
||||
int ret = 0, remaining = size;
|
||||
unsigned int data_len;
|
||||
uint64_t vmstate_oid;
|
||||
uint32_t vdi_index;
|
||||
|
@ -1968,11 +1968,11 @@ static int do_load_save_vmstate(BDRVSheepdogState *s, uint8_t *data,
|
|||
return fd;
|
||||
}
|
||||
|
||||
while (size) {
|
||||
while (remaining) {
|
||||
vdi_index = 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);
|
||||
|
||||
|
@ -1993,9 +1993,9 @@ static int do_load_save_vmstate(BDRVSheepdogState *s, uint8_t *data,
|
|||
}
|
||||
|
||||
pos += data_len;
|
||||
size -= data_len;
|
||||
ret += data_len;
|
||||
remaining -= data_len;
|
||||
}
|
||||
ret = size;
|
||||
cleanup:
|
||||
closesocket(fd);
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue