mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
virsh: Add wrapper for virStoragePoolFree
Similarly to virshDomainFree add a wrapper for the snapshot object freeing function. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
parent
f8fb5be6c8
commit
663a29f42e
@ -868,7 +868,7 @@ sc_gettext_init:
|
||||
$(_sc_search_regexp)
|
||||
|
||||
sc_prohibit_obj_free_apis_in_virsh:
|
||||
@prohibit='\bvir(Domain|DomainSnapshot|Interface|Secret)Free\b' \
|
||||
@prohibit='\bvir(Domain|DomainSnapshot|Interface|Secret|StoragePool)Free\b' \
|
||||
in_vc_files='virsh.*\.[ch]$$' \
|
||||
exclude='sc_prohibit_obj_free_apis_in_virsh' \
|
||||
halt='avoid using public virXXXFree in virsh, use virsh-prefixed wrappers instead' \
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "virsh-completer-pool.h"
|
||||
#include "virsh-util.h"
|
||||
#include "conf/storage_conf.h"
|
||||
#include "viralloc.h"
|
||||
#include "virsh-pool.h"
|
||||
@ -61,7 +62,7 @@ virshStoragePoolNameCompleter(vshControl *ctl,
|
||||
ret = g_steal_pointer(&tmp);
|
||||
|
||||
for (i = 0; i < npools; i++)
|
||||
virStoragePoolFree(pools[i]);
|
||||
virshStoragePoolFree(pools[i]);
|
||||
g_free(pools);
|
||||
return ret;
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "virsh-completer-volume.h"
|
||||
#include "virsh-util.h"
|
||||
#include "viralloc.h"
|
||||
#include "virsh-pool.h"
|
||||
#include "virsh.h"
|
||||
@ -32,7 +33,7 @@ virshStorageVolNameCompleter(vshControl *ctl,
|
||||
unsigned int flags)
|
||||
{
|
||||
virshControl *priv = ctl->privData;
|
||||
virStoragePoolPtr pool = NULL;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
virStorageVolPtr *vols = NULL;
|
||||
int rc;
|
||||
int nvols = 0;
|
||||
@ -63,7 +64,6 @@ virshStorageVolNameCompleter(vshControl *ctl,
|
||||
ret = g_steal_pointer(&tmp);
|
||||
|
||||
cleanup:
|
||||
virStoragePoolFree(pool);
|
||||
for (i = 0; i < nvols; i++)
|
||||
virStorageVolFree(vols[i]);
|
||||
g_free(vols);
|
||||
|
@ -3801,7 +3801,7 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
|
||||
if (pool) {
|
||||
virStoragePoolPtr storagepool = NULL;
|
||||
g_autoptr(virshStoragePool) storagepool = NULL;
|
||||
|
||||
if (!source) {
|
||||
vshError(ctl,
|
||||
@ -3820,7 +3820,6 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
|
||||
vol.vol = virStorageVolLookupByName(storagepool, source);
|
||||
virStoragePoolFree(storagepool);
|
||||
|
||||
} else {
|
||||
vol.vol = virStorageVolLookupByPath(priv->conn, source);
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include <config.h>
|
||||
#include "virsh-pool.h"
|
||||
#include "virsh-util.h"
|
||||
|
||||
#include "internal.h"
|
||||
#include "virbuffer.h"
|
||||
@ -219,7 +220,7 @@ static const vshCmdOptDef opts_pool_autostart[] = {
|
||||
static bool
|
||||
cmdPoolAutostart(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
const char *name;
|
||||
int autostart;
|
||||
|
||||
@ -233,7 +234,6 @@ cmdPoolAutostart(vshControl *ctl, const vshCmd *cmd)
|
||||
vshError(ctl, _("failed to mark pool %s as autostarted"), name);
|
||||
else
|
||||
vshError(ctl, _("failed to unmark pool %s as autostarted"), name);
|
||||
virStoragePoolFree(pool);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -242,7 +242,6 @@ cmdPoolAutostart(vshControl *ctl, const vshCmd *cmd)
|
||||
else
|
||||
vshPrintExtra(ctl, _("Pool %s unmarked as autostarted\n"), name);
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -271,7 +270,7 @@ static const vshCmdOptDef opts_pool_create[] = {
|
||||
static bool
|
||||
cmdPoolCreate(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
const char *from = NULL;
|
||||
g_autofree char *buffer = NULL;
|
||||
bool build;
|
||||
@ -307,7 +306,6 @@ cmdPoolCreate(vshControl *ctl, const vshCmd *cmd)
|
||||
|
||||
vshPrintExtra(ctl, _("Pool %s created from %s\n"),
|
||||
virStoragePoolGetName(pool), from);
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -462,7 +460,7 @@ static const vshCmdOptDef opts_pool_create_as[] = {
|
||||
static bool
|
||||
cmdPoolCreateAs(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
const char *name;
|
||||
g_autofree char *xml = NULL;
|
||||
bool printXML = vshCommandOptBool(cmd, "print-xml");
|
||||
@ -500,7 +498,6 @@ cmdPoolCreateAs(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
|
||||
vshPrintExtra(ctl, _("Pool %s created\n"), name);
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -530,7 +527,7 @@ static const vshCmdOptDef opts_pool_define[] = {
|
||||
static bool
|
||||
cmdPoolDefine(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
const char *from = NULL;
|
||||
g_autofree char *buffer = NULL;
|
||||
unsigned int flags = 0;
|
||||
@ -552,7 +549,6 @@ cmdPoolDefine(vshControl *ctl, const vshCmd *cmd)
|
||||
|
||||
vshPrintExtra(ctl, _("Pool %s defined from %s\n"),
|
||||
virStoragePoolGetName(pool), from);
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -572,7 +568,7 @@ static const vshCmdInfo info_pool_define_as[] = {
|
||||
static bool
|
||||
cmdPoolDefineAs(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
const char *name;
|
||||
g_autofree char *xml = NULL;
|
||||
bool printXML = vshCommandOptBool(cmd, "print-xml");
|
||||
@ -592,7 +588,6 @@ cmdPoolDefineAs(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
|
||||
vshPrintExtra(ctl, _("Pool %s defined\n"), name);
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -620,7 +615,7 @@ static const vshCmdOptDef opts_pool_build[] = {
|
||||
static bool
|
||||
cmdPoolBuild(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = true;
|
||||
const char *name;
|
||||
unsigned int flags = 0;
|
||||
@ -641,8 +636,6 @@ cmdPoolBuild(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = false;
|
||||
}
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -668,7 +661,7 @@ static const vshCmdOptDef opts_pool_destroy[] = {
|
||||
static bool
|
||||
cmdPoolDestroy(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = true;
|
||||
const char *name;
|
||||
|
||||
@ -682,7 +675,6 @@ cmdPoolDestroy(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = false;
|
||||
}
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -708,7 +700,7 @@ static const vshCmdOptDef opts_pool_delete[] = {
|
||||
static bool
|
||||
cmdPoolDelete(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = true;
|
||||
const char *name;
|
||||
|
||||
@ -722,7 +714,6 @@ cmdPoolDelete(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = false;
|
||||
}
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -748,7 +739,7 @@ static const vshCmdOptDef opts_pool_refresh[] = {
|
||||
static bool
|
||||
cmdPoolRefresh(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = true;
|
||||
const char *name;
|
||||
|
||||
@ -761,7 +752,6 @@ cmdPoolRefresh(vshControl *ctl, const vshCmd *cmd)
|
||||
vshError(ctl, _("Failed to refresh pool %s"), name);
|
||||
ret = false;
|
||||
}
|
||||
virStoragePoolFree(pool);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -792,7 +782,7 @@ static const vshCmdOptDef opts_pool_dumpxml[] = {
|
||||
static bool
|
||||
cmdPoolDumpXML(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = true;
|
||||
bool inactive = vshCommandOptBool(cmd, "inactive");
|
||||
unsigned int flags = 0;
|
||||
@ -811,7 +801,6 @@ cmdPoolDumpXML(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = false;
|
||||
}
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -837,8 +826,7 @@ void virshStoragePoolListFree(struct virshStoragePoolList *list)
|
||||
|
||||
if (list && list->pools) {
|
||||
for (i = 0; i < list->npools; i++) {
|
||||
if (list->pools[i])
|
||||
virStoragePoolFree(list->pools[i]);
|
||||
virshStoragePoolFree(list->pools[i]);
|
||||
}
|
||||
g_free(list->pools);
|
||||
}
|
||||
@ -1003,8 +991,7 @@ virshStoragePoolListCollect(vshControl *ctl,
|
||||
|
||||
remove_entry:
|
||||
/* the pool has to be removed as it failed one of the filters */
|
||||
virStoragePoolFree(list->pools[i]);
|
||||
list->pools[i] = NULL;
|
||||
g_clear_pointer(&list->pools[i], virshStoragePoolFree);
|
||||
deleted++;
|
||||
}
|
||||
|
||||
@ -1570,7 +1557,7 @@ static bool
|
||||
cmdPoolInfo(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolInfo info;
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
int autostart = 0;
|
||||
bool ret = true;
|
||||
bool bytes = false;
|
||||
@ -1630,7 +1617,6 @@ cmdPoolInfo(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = false;
|
||||
}
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1656,13 +1642,12 @@ static const vshCmdOptDef opts_pool_name[] = {
|
||||
static bool
|
||||
cmdPoolName(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
|
||||
if (!(pool = virshCommandOptPoolBy(ctl, cmd, "pool", NULL, VIRSH_BYUUID)))
|
||||
return false;
|
||||
|
||||
vshPrint(ctl, "%s\n", virStoragePoolGetName(pool));
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1691,7 +1676,7 @@ static const vshCmdOptDef opts_pool_start[] = {
|
||||
static bool
|
||||
cmdPoolStart(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = true;
|
||||
const char *name = NULL;
|
||||
bool build;
|
||||
@ -1723,7 +1708,6 @@ cmdPoolStart(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = false;
|
||||
}
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1749,7 +1733,7 @@ static const vshCmdOptDef opts_pool_undefine[] = {
|
||||
static bool
|
||||
cmdPoolUndefine(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = true;
|
||||
const char *name;
|
||||
|
||||
@ -1763,7 +1747,6 @@ cmdPoolUndefine(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = false;
|
||||
}
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1789,7 +1772,7 @@ static const vshCmdOptDef opts_pool_uuid[] = {
|
||||
static bool
|
||||
cmdPoolUuid(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
char uuid[VIR_UUID_STRING_BUFLEN];
|
||||
|
||||
if (!(pool = virshCommandOptPoolBy(ctl, cmd, "pool", NULL, VIRSH_BYNAME)))
|
||||
@ -1800,7 +1783,6 @@ cmdPoolUuid(vshControl *ctl, const vshCmd *cmd)
|
||||
else
|
||||
vshError(ctl, "%s", _("failed to get pool UUID"));
|
||||
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1827,8 +1809,8 @@ static bool
|
||||
cmdPoolEdit(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
bool ret = false;
|
||||
virStoragePoolPtr pool = NULL;
|
||||
virStoragePoolPtr pool_edited = NULL;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
g_autoptr(virshStoragePool) pool_edited = NULL;
|
||||
unsigned int flags = VIR_STORAGE_XML_INACTIVE;
|
||||
g_autofree char *tmp_desc = NULL;
|
||||
virshControl *priv = ctl->privData;
|
||||
@ -1865,11 +1847,6 @@ cmdPoolEdit(vshControl *ctl, const vshCmd *cmd)
|
||||
ret = true;
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
virStoragePoolFree(pool);
|
||||
if (pool_edited)
|
||||
virStoragePoolFree(pool_edited);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2018,7 +1995,7 @@ static const vshCmdOptDef opts_pool_event[] = {
|
||||
static bool
|
||||
cmdPoolEvent(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool = NULL;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
bool ret = false;
|
||||
int eventId = -1;
|
||||
int timeout = 0;
|
||||
@ -2088,8 +2065,6 @@ cmdPoolEvent(vshControl *ctl, const vshCmd *cmd)
|
||||
if (eventId >= 0 &&
|
||||
virConnectStoragePoolEventDeregisterAny(priv->conn, eventId) < 0)
|
||||
ret = false;
|
||||
if (pool)
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -307,6 +307,17 @@ virshSecretFree(virSecretPtr secret)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
virshStoragePoolFree(virStoragePoolPtr pool)
|
||||
{
|
||||
if (!pool)
|
||||
return;
|
||||
|
||||
vshSaveLibvirtHelperError();
|
||||
virStoragePoolFree(pool); /* sc_prohibit_obj_free_apis_in_virsh */
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
virshDomainGetXMLFromDom(vshControl *ctl,
|
||||
virDomainPtr dom,
|
||||
|
@ -64,6 +64,11 @@ void
|
||||
virshSecretFree(virSecretPtr secret);
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virshSecret, virshSecretFree);
|
||||
|
||||
typedef virStoragePool virshStoragePool;
|
||||
void
|
||||
virshStoragePoolFree(virStoragePoolPtr pool);
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virshStoragePool, virshStoragePoolFree);
|
||||
|
||||
int
|
||||
virshDomainState(vshControl *ctl,
|
||||
virDomainPtr dom,
|
||||
|
@ -83,7 +83,7 @@ virshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
|
||||
const char **name, unsigned int flags)
|
||||
{
|
||||
virStorageVolPtr vol = NULL;
|
||||
virStoragePoolPtr pool = NULL;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
const char *n = NULL, *p = NULL;
|
||||
virshControl *priv = ctl->privData;
|
||||
|
||||
@ -102,7 +102,6 @@ virshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
|
||||
|
||||
if (virStoragePoolIsActive(pool) != 1) {
|
||||
vshError(ctl, _("pool '%s' is not active"), p);
|
||||
virStoragePoolFree(pool);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -145,7 +144,7 @@ virshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
|
||||
/* If the pool was specified, then make sure that the returned
|
||||
* volume is from the given pool */
|
||||
if (pool && vol) {
|
||||
virStoragePoolPtr volpool = NULL;
|
||||
g_autoptr(virshStoragePool) volpool = NULL;
|
||||
|
||||
if ((volpool = virStoragePoolLookupByVolume(vol))) {
|
||||
if (STRNEQ(virStoragePoolGetName(volpool),
|
||||
@ -157,13 +156,9 @@ virshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
|
||||
virStorageVolFree(vol);
|
||||
vol = NULL;
|
||||
}
|
||||
virStoragePoolFree(volpool);
|
||||
}
|
||||
}
|
||||
|
||||
if (pool)
|
||||
virStoragePoolFree(pool);
|
||||
|
||||
return vol;
|
||||
}
|
||||
|
||||
@ -234,7 +229,7 @@ virshVolSize(const char *data, unsigned long long *val)
|
||||
static bool
|
||||
cmdVolCreateAs(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
virStorageVolPtr vol = NULL;
|
||||
g_autofree char *xml = NULL;
|
||||
bool printXML = vshCommandOptBool(cmd, "print-xml");
|
||||
@ -373,7 +368,6 @@ cmdVolCreateAs(vshControl *ctl, const vshCmd *cmd)
|
||||
cleanup:
|
||||
if (vol)
|
||||
virStorageVolFree(vol);
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -403,7 +397,7 @@ static const vshCmdOptDef opts_vol_create[] = {
|
||||
static bool
|
||||
cmdVolCreate(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
virStorageVolPtr vol;
|
||||
const char *from = NULL;
|
||||
bool ret = false;
|
||||
@ -434,7 +428,6 @@ cmdVolCreate(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
|
||||
cleanup:
|
||||
virStoragePoolFree(pool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -474,7 +467,7 @@ static const vshCmdOptDef opts_vol_create_from[] = {
|
||||
static bool
|
||||
cmdVolCreateFrom(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool = NULL;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
virStorageVolPtr newvol = NULL, inputvol = NULL;
|
||||
const char *from = NULL;
|
||||
bool ret = false;
|
||||
@ -513,8 +506,6 @@ cmdVolCreateFrom(vshControl *ctl, const vshCmd *cmd)
|
||||
|
||||
ret = true;
|
||||
cleanup:
|
||||
if (pool)
|
||||
virStoragePoolFree(pool);
|
||||
if (inputvol)
|
||||
virStorageVolFree(inputvol);
|
||||
if (newvol)
|
||||
@ -582,7 +573,7 @@ static const vshCmdOptDef opts_vol_clone[] = {
|
||||
static bool
|
||||
cmdVolClone(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr origpool = NULL;
|
||||
g_autoptr(virshStoragePool) origpool = NULL;
|
||||
virStorageVolPtr origvol = NULL, newvol = NULL;
|
||||
const char *name = NULL;
|
||||
g_autofree char *origxml = NULL;
|
||||
@ -637,8 +628,6 @@ cmdVolClone(vshControl *ctl, const vshCmd *cmd)
|
||||
virStorageVolFree(origvol);
|
||||
if (newvol)
|
||||
virStorageVolFree(newvol);
|
||||
if (origpool)
|
||||
virStoragePoolFree(origpool);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1395,7 +1384,7 @@ static bool
|
||||
cmdVolList(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
|
||||
{
|
||||
virStorageVolInfo volumeInfo;
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
const char *unit;
|
||||
double val;
|
||||
bool details = vshCommandOptBool(cmd, "details");
|
||||
@ -1521,7 +1510,6 @@ cmdVolList(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
|
||||
|
||||
/* Cleanup remaining memory */
|
||||
VIR_FREE(volInfoTexts);
|
||||
virStoragePoolFree(pool);
|
||||
virshStorageVolListFree(list);
|
||||
|
||||
/* Return the desired value */
|
||||
@ -1585,7 +1573,7 @@ static const vshCmdOptDef opts_vol_pool[] = {
|
||||
static bool
|
||||
cmdVolPool(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virStoragePoolPtr pool;
|
||||
g_autoptr(virshStoragePool) pool = NULL;
|
||||
virStorageVolPtr vol;
|
||||
char uuid[VIR_UUID_STRING_BUFLEN];
|
||||
|
||||
@ -1615,7 +1603,6 @@ cmdVolPool(vshControl *ctl, const vshCmd *cmd)
|
||||
|
||||
/* Cleanup */
|
||||
virStorageVolFree(vol);
|
||||
virStoragePoolFree(pool);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user