[Libguestfs] [PATCH V4 2/3] xfs_info: resolve device when doing xfs_info on a device

Wanlong Gao gaowanlong at cn.fujitsu.com
Tue Jul 24 08:47:22 UTC 2012


Resolve device first, like do_umount.
Use Dev_or_Path.

Signed-off-by: Wanlong Gao <gaowanlong at cn.fujitsu.com>
---
 daemon/xfs.c                   | 21 ++++++++-------------
 generator/generator_actions.ml |  2 +-
 2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/daemon/xfs.c b/daemon/xfs.c
index 3efc14f..e0f0062 100644
--- a/daemon/xfs.c
+++ b/daemon/xfs.c
@@ -311,26 +311,21 @@ error:
 }
 
 guestfs_int_xfsinfo *
-do_xfs_info (const char *path)
+do_xfs_info (const char *pathordevice)
 {
   int r;
   char *buf;
   char *out = NULL, *err = NULL;
   char **lines = NULL;
   guestfs_int_xfsinfo *ret = NULL;
+  int is_dev;
 
-  if (do_is_dir (path)) {
-    buf = sysroot_path (path);
-    if (!buf) {
-      reply_with_perror ("malloc");
-      return NULL;
-    }
-  } else {
-    buf = strdup(path);
-    if (!buf) {
-      reply_with_perror ("strdup");
-      return NULL;
-    }
+  is_dev = STREQLEN (pathordevice, "/dev/", 5);
+  buf = is_dev ? strdup (pathordevice)
+               : sysroot_path (pathordevice);
+  if (buf == NULL) {
+    reply_with_perror ("malloc");
+    return NULL;
   }
 
   r = command (&out, &err, "xfs_info", buf, NULL);
diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml
index d512d7c..4e18b4e 100644
--- a/generator/generator_actions.ml
+++ b/generator/generator_actions.ml
@@ -8954,7 +8954,7 @@ call C<guestfs_max_disks>." };
 
   { defaults with
     name = "xfs_info";
-    style = RStruct ("info", "xfsinfo"), [Pathname "path"], [];
+    style = RStruct ("info", "xfsinfo"), [Dev_or_Path "pathordevice"], [];
     proc_nr = Some 337;
     optional = Some "xfs";
     tests = [
-- 
1.7.12.rc0




More information about the Libguestfs mailing list