[libvirt] [PATCH 2/3] Remove virFileAbsPath() from virDomainSave*() and virDomainCoreDump() calls

Hong Xiang hxiang at linux.vnet.ibm.com
Tue Oct 25 07:43:21 UTC 2011


Change the semantics of '--file' parameter user provides in cmdline from a
relative/absolute filesystem path to an id which is to be converted in
driver to form a filesystem path.

* src/libvirt.c: remove virFileAbsPath() calls

Signed-off-by: Hong Xiang <hxiang at linux.vnet.ibm.com>
---
 src/libvirt.c |   84 +++++----------------------------------------------------
 1 files changed, 7 insertions(+), 77 deletions(-)

diff --git a/src/libvirt.c b/src/libvirt.c
index a6bcee6..5de60c7 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -2470,18 +2470,8 @@ virDomainSave(virDomainPtr domain, const char *to)
 
     if (conn->driver->domainSave) {
         int ret;
-        char *absolute_to;
 
-        /* We must absolutize the file path as the save is done out of process */
-        if (virFileAbsPath(to, &absolute_to) < 0) {
-            virLibConnError(VIR_ERR_INTERNAL_ERROR,
-                            _("could not build absolute output file path"));
-            goto error;
-        }
-
-        ret = conn->driver->domainSave(domain, absolute_to);
-
-        VIR_FREE(absolute_to);
+        ret = conn->driver->domainSave(domain, to);
 
         if (ret < 0)
             goto error;
@@ -2564,18 +2554,8 @@ virDomainSaveFlags(virDomainPtr domain, const char *to,
 
     if (conn->driver->domainSaveFlags) {
         int ret;
-        char *absolute_to;
-
-        /* We must absolutize the file path as the save is done out of process */
-        if (virFileAbsPath(to, &absolute_to) < 0) {
-            virLibConnError(VIR_ERR_INTERNAL_ERROR,
-                            _("could not build absolute output file path"));
-            goto error;
-        }
 
-        ret = conn->driver->domainSaveFlags(domain, absolute_to, dxml, flags);
-
-        VIR_FREE(absolute_to);
+        ret = conn->driver->domainSaveFlags(domain, to, dxml, flags);
 
         if (ret < 0)
             goto error;
@@ -2623,18 +2603,8 @@ virDomainRestore(virConnectPtr conn, const char *from)
 
     if (conn->driver->domainRestore) {
         int ret;
-        char *absolute_from;
-
-        /* We must absolutize the file path as the restore is done out of process */
-        if (virFileAbsPath(from, &absolute_from) < 0) {
-            virLibConnError(VIR_ERR_INTERNAL_ERROR,
-                            _("could not build absolute input file path"));
-            goto error;
-        }
 
-        ret = conn->driver->domainRestore(conn, absolute_from);
-
-        VIR_FREE(absolute_from);
+        ret = conn->driver->domainRestore(conn, from);
 
         if (ret < 0)
             goto error;
@@ -2708,20 +2678,10 @@ virDomainRestoreFlags(virConnectPtr conn, const char *from, const char *dxml,
 
     if (conn->driver->domainRestoreFlags) {
         int ret;
-        char *absolute_from;
-
-        /* We must absolutize the file path as the restore is done out of process */
-        if (virFileAbsPath(from, &absolute_from) < 0) {
-            virLibConnError(VIR_ERR_INTERNAL_ERROR,
-                            _("could not build absolute input file path"));
-            goto error;
-        }
 
-        ret = conn->driver->domainRestoreFlags(conn, absolute_from, dxml,
+        ret = conn->driver->domainRestoreFlags(conn, from, dxml,
                                                flags);
 
-        VIR_FREE(absolute_from);
-
         if (ret < 0)
             goto error;
         return ret;
@@ -2779,20 +2739,10 @@ virDomainSaveImageGetXMLDesc(virConnectPtr conn, const char *file,
 
     if (conn->driver->domainSaveImageGetXMLDesc) {
         char *ret;
-        char *absolute_file;
 
-        /* We must absolutize the file path as the read is done out of process */
-        if (virFileAbsPath(file, &absolute_file) < 0) {
-            virLibConnError(VIR_ERR_INTERNAL_ERROR,
-                            _("could not build absolute input file path"));
-            goto error;
-        }
-
-        ret = conn->driver->domainSaveImageGetXMLDesc(conn, absolute_file,
+        ret = conn->driver->domainSaveImageGetXMLDesc(conn, file,
                                                       flags);
 
-        VIR_FREE(absolute_file);
-
         if (!ret)
             goto error;
         return ret;
@@ -2862,20 +2812,10 @@ virDomainSaveImageDefineXML(virConnectPtr conn, const char *file,
 
     if (conn->driver->domainSaveImageDefineXML) {
         int ret;
-        char *absolute_file;
-
-        /* We must absolutize the file path as the read is done out of process */
-        if (virFileAbsPath(file, &absolute_file) < 0) {
-            virLibConnError(VIR_ERR_INTERNAL_ERROR,
-                            _("could not build absolute input file path"));
-            goto error;
-        }
 
-        ret = conn->driver->domainSaveImageDefineXML(conn, absolute_file,
+        ret = conn->driver->domainSaveImageDefineXML(conn, file,
                                                      dxml, flags);
 
-        VIR_FREE(absolute_file);
-
         if (ret < 0)
             goto error;
         return ret;
@@ -2957,18 +2897,8 @@ virDomainCoreDump(virDomainPtr domain, const char *to, unsigned int flags)
 
     if (conn->driver->domainCoreDump) {
         int ret;
-        char *absolute_to;
-
-        /* We must absolutize the file path as the save is done out of process */
-        if (virFileAbsPath(to, &absolute_to) < 0) {
-            virLibConnError(VIR_ERR_INTERNAL_ERROR,
-                            _("could not build absolute core file path"));
-            goto error;
-        }
-
-        ret = conn->driver->domainCoreDump(domain, absolute_to, flags);
 
-        VIR_FREE(absolute_to);
+        ret = conn->driver->domainCoreDump(domain, to, flags);
 
         if (ret < 0)
             goto error;
-- 
1.7.1




More information about the libvir-list mailing list