On 05/13/2011 02:10 PM, Cole Robinson wrote:
v2:
Use virCommand auto-cleanup
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
src/storage/storage_backend_iscsi.c | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
memset(line, 0, LINE_SIZE);
- if (virExec(prog, NULL, NULL, &child, -1, &fd, NULL, VIR_EXEC_NONE) < 0)
{
- virStorageReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to run '%s' when looking for
existing interface with IQN '%s'"),
- prog[0], initiatoriqn);
-
+ virCommandSetOutputFD(cmd, &fd);
+ if (virCommandRunAsync(cmd, NULL) < 0) {
ret = IQN_ERROR;
...
+ if (virCommandWait(cmd, NULL) < 0)
+ ret = IQN_ERROR;
+
out:
if (ret == IQN_MISSING) {
VIR_DEBUG("Could not find interface with IQN '%s'", iqn);
@@ -259,6 +257,7 @@ out:
VIR_FREE(line);
VIR_FORCE_FCLOSE(fp);
VIR_FORCE_CLOSE(fd);
+ virCommandFree(cmd);
Yep, that does the trick for auto-cleanup (I'm liking virCommand more
and more as we convert things to use it).
ACK.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org