On Tue, Jul 24, 2012 at 04:47:22PM +0800, Wanlong Gao wrote:
Resolve device first, like do_umount. Use Dev_or_Path.
Signed-off-by: Wanlong Gao <gaowanlong@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
ACK, this looks a lot better. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into Xen guests. http://et.redhat.com/~rjones/virt-p2v