X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=fish%2Finspect.c;h=5e1948cd143bffeb0bea8c20c6403a6a635dd463;hp=cc3916b1bc171cda4a35b0fa941690cd77060808;hb=dc8e4b057ecd3984d7c27c8e;hpb=a232e62dcf508517a32b9a8d7e4529e827be721b diff --git a/fish/inspect.c b/fish/inspect.c index cc3916b..5e1948c 100644 --- a/fish/inspect.c +++ b/fish/inspect.c @@ -28,8 +28,6 @@ #include "options.h" -static void do_decrypt (void); - /* Global that saves the root device between inspect_mount and * print_inspect_prompt. */ @@ -75,7 +73,13 @@ compare_keys (const void *p1, const void *p2) void inspect_mount (void) { - do_decrypt (); + if (live) { + fprintf (stderr, _("%s: don't use --live and -i options together\n"), + program_name); + exit (EXIT_FAILURE); + } + + inspect_do_decrypt (); char **roots = guestfs_inspect_os (g); if (roots == NULL) @@ -96,6 +100,12 @@ inspect_mount (void) root = roots[0]; free (roots); + inspect_mount_root (root); +} + +void +inspect_mount_root (const char *root) +{ char **mountpoints = guestfs_inspect_get_mountpoints (g, root); if (mountpoints == NULL) exit (EXIT_FAILURE); @@ -107,6 +117,7 @@ inspect_mount (void) compare_keys_len); size_t i; + size_t mount_errors = 0; for (i = 0; mountpoints[i] != NULL; i += 2) { int r; if (!read_only) @@ -114,10 +125,14 @@ inspect_mount (void) else r = guestfs_mount_ro (g, mountpoints[i+1], mountpoints[i]); if (r == -1) - exit (EXIT_FAILURE); + mount_errors++; } free_strings (mountpoints); + + if (mount_errors) + fprintf (stderr, _("%s: some filesystems could not be mounted (ignored)\n"), + program_name); } /* This function is called only if the above function was called, @@ -178,8 +193,8 @@ make_mapname (const char *device, char *mapname, size_t len) * for Fedora whole-disk encryption. WIP to make this work for other * encryption schemes. */ -static void -do_decrypt (void) +void +inspect_do_decrypt (void) { char **partitions = guestfs_list_partitions (g); if (partitions == NULL) @@ -204,6 +219,7 @@ do_decrypt (void) need_rescan = 1; } + free (type); } free_strings (partitions);