char size[100];
const char *cmdargvnew[] = {
LVCREATE, "--name", vol->name, "-L", size,
- pool->def->target.path, NULL
+ pool->def->source.name, NULL
};
const char *cmdargvsnap[] = {
LVCREATE, "--name", vol->name, "-L", size,
unsigned int flags)
{
int ret = -1;
+ char *volpath = NULL;
virCommandPtr lvchange_cmd = NULL;
virCommandPtr lvremove_cmd = NULL;
virCheckFlags(0, -1);
- virFileWaitForDevices();
+ if (virAsprintf(&volpath, "%s/%s",
+ pool->def->source.name, vol->name) < 0) {
+ virReportOOMError();
+ goto cleanup;
+ }
- lvchange_cmd = virCommandNewArgList(LVCHANGE,
- "-aln",
- vol->target.path,
- NULL);
+ virFileWaitForDevices();
- lvremove_cmd = virCommandNewArgList(LVREMOVE,
- "-f",
- vol->target.path,
- NULL);
+ lvchange_cmd = virCommandNewArgList(LVCHANGE, "-aln", volpath, NULL);
+ lvremove_cmd = virCommandNewArgList(LVREMOVE, "-f", volpath, NULL);
if (virCommandRun(lvremove_cmd, NULL) < 0) {
if (virCommandRun(lvchange_cmd, NULL) < 0) {
ret = 0;
cleanup:
+ VIR_FREE(volpath);
virCommandFree(lvchange_cmd);
virCommandFree(lvremove_cmd);
return ret;