Commit e14e8ba5 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

qcow2: Return real error code in load_refcount_block



This fixes load_refcount_block which completely ignored the return value of
write_refcount_block and always returned -EIO for bdrv_pwrite failure.

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 2eaa8f63
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -93,14 +93,19 @@ static int load_refcount_block(BlockDriverState *bs,
    int ret;

    if (cache_refcount_updates) {
        write_refcount_block(bs);
        ret = write_refcount_block(bs);
        if (ret < 0) {
            return ret;
        }
    }

    BLKDBG_EVENT(bs->file, BLKDBG_REFBLOCK_LOAD);
    ret = bdrv_pread(bs->file, refcount_block_offset, s->refcount_block_cache,
                     s->cluster_size);
    if (ret != s->cluster_size)
        return -EIO;
    if (ret < 0) {
        return ret;
    }

    s->refcount_block_cache_offset = refcount_block_offset;
    return 0;
}