done:
visit_free(iv);
- qobject_decref(crumpled_server);
- QDECREF(server);
+ qobject_unref(crumpled_server);
+ qobject_unref(server);
return saddr;
}
error_setg_errno(errp, -ret, "Can't pre-allocate");
}
out_with_err_set:
- if (blk) {
- blk_unref(blk);
- }
+ blk_unref(blk);
g_free(buf);
return ret;
if (local_err) {
error_propagate(errp, local_err);
- qobject_decref(obj);
+ qobject_unref(obj);
return -EINVAL;
}
ret = sd_prealloc(bs, 0, size, errp);
fail:
bdrv_unref(bs);
- QDECREF(qdict);
+ qobject_unref(qdict);
return ret;
}
} else {
ret = qemu_strtol(n2, NULL, 10, &parity);
if (ret < 0) {
+ g_free(redundancy);
return NULL;
}
QDict *qdict, *location_qdict;
QObject *crumpled;
Visitor *v;
- const char *redundancy;
+ char *redundancy;
Error *local_err = NULL;
int ret;
v = qobject_input_visitor_new_keyval(crumpled);
visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
visit_free(v);
- qobject_decref(crumpled);
+ qobject_unref(crumpled);
if (local_err) {
error_propagate(errp, local_err);
ret = sd_co_create(create_options, errp);
fail:
qapi_free_BlockdevCreateOptions(create_options);
- QDECREF(qdict);
+ qobject_unref(qdict);
+ g_free(redundancy);
return ret;
}
}
static coroutine_fn int sd_co_writev(BlockDriverState *bs, int64_t sector_num,
- int nb_sectors, QEMUIOVector *qiov)
+ int nb_sectors, QEMUIOVector *qiov,
+ int flags)
{
SheepdogAIOCB acb;
int ret;
int64_t offset = (sector_num + nb_sectors) * BDRV_SECTOR_SIZE;
BDRVSheepdogState *s = bs->opaque;
+ assert(!flags);
if (offset > s->inode.vdi_size) {
ret = sd_truncate(bs, offset, PREALLOC_MODE_OFF, NULL);
if (ret < 0) {