[Pkg-libvirt-commits] [libguestfs] 27/66: listfs: If LDM not available, don't inhibit partition detection (RHBZ#1079182).

Hilko Bengen bengen at moszumanska.debian.org
Fri May 9 12:56:22 UTC 2014


This is an automated email from the git hooks/post-receive script.

bengen pushed a commit to branch master
in repository libguestfs.

commit e1b60988b0924758d48bb27eeff00db241f4ccd6
Author: Richard W.M. Jones <rjones at redhat.com>
Date:   Fri Mar 21 15:24:01 2014 +0000

    listfs: If LDM not available, don't inhibit partition detection (RHBZ#1079182).
    
    If a disk has type 0x42 partition (which would indicate LDM), but LDM
    is not available then try parsing the partition anyway.  It might be
    parseable as plain old NTFS.
    
    (cherry picked from commit 47ec61e9af19f8a750750ad498adc10fa7ae0521)
---
 src/listfs.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/listfs.c b/src/listfs.c
index bbdb0a2..ffb0adc 100644
--- a/src/listfs.c
+++ b/src/listfs.c
@@ -47,8 +47,11 @@ guestfs__list_filesystems (guestfs_h *g)
 {
   size_t i;
   DECLARE_STRINGSBUF (ret);
+
   const char *lvm2[] = { "lvm2", NULL };
+  int has_lvm2 = guestfs_feature_available (g, (char **) lvm2);
   const char *ldm[] = { "ldm", NULL };
+  int has_ldm = guestfs_feature_available (g, (char **) ldm);
 
   CLEANUP_FREE_STRING_LIST char **devices = NULL;
   CLEANUP_FREE_STRING_LIST char **partitions = NULL;
@@ -83,7 +86,7 @@ guestfs__list_filesystems (guestfs_h *g)
 
   /* Use vfs-type to check for filesystems on partitions. */
   for (i = 0; partitions[i] != NULL; ++i) {
-    if (! is_mbr_partition_type_42 (g, partitions[i])) {
+    if (has_ldm == 0 || ! is_mbr_partition_type_42 (g, partitions[i])) {
       if (check_with_vfs_type (g, partitions[i], &ret) == -1)
         goto error;
     }
@@ -94,7 +97,7 @@ guestfs__list_filesystems (guestfs_h *g)
     if (check_with_vfs_type (g, mds[i], &ret) == -1)
       goto error;
 
-  if (guestfs_feature_available (g, (char **) lvm2)) {
+  if (has_lvm2 > 0) {
     /* Use vfs-type to check for filesystems on LVs. */
     lvs = guestfs_lvs (g);
     if (lvs == NULL) goto error;
@@ -104,7 +107,7 @@ guestfs__list_filesystems (guestfs_h *g)
         goto error;
   }
 
-  if (guestfs_feature_available (g, (char **) ldm)) {
+  if (has_ldm > 0) {
     /* Use vfs-type to check for filesystems on Windows dynamic disks. */
     ldmvols = guestfs_list_ldm_volumes (g);
     if (ldmvols == NULL) goto error;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/libguestfs.git



More information about the Pkg-libvirt-commits mailing list