From: Richard W.M. Jones Date: Thu, 11 Aug 2011 10:45:25 +0000 (+0100) Subject: Fix 'unknown filesystem' warnings in old inspection code (RHBZ#678231 RHBZ#666578). X-Git-Tag: 1.8.12~4 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=af081cd2c9dd3ad89472ad081588eac03ccfe512;p=libguestfs.git Fix 'unknown filesystem' warnings in old inspection code (RHBZ#678231 RHBZ#666578). This is a comprehensive fix for the warnings from the old (and obsolete) Perl inspection code. For a full description and reproducer, see: https://bugzilla.redhat.com/show_bug.cgi?id=678231#c5 (cherry picked from commit b9838001015a06a69a08b69d9f013d82f0ea3139) --- diff --git a/perl/lib/Sys/Guestfs/Lib.pm b/perl/lib/Sys/Guestfs/Lib.pm index fc6a10f..007db64 100644 --- a/perl/lib/Sys/Guestfs/Lib.pm +++ b/perl/lib/Sys/Guestfs/Lib.pm @@ -892,23 +892,29 @@ sub _find_filesystem if (/^LABEL=(.*)/) { my $label = $1; - foreach (sort keys %$fses) { - if (exists $fses->{$_}->{label} && - $fses->{$_}->{label} eq $label) { - return ($_, $fses->{$_}); - } - } - warn __x("unknown filesystem label {label}\n", label => $label); + my $dev; + eval { + $dev = $g->findfs_label ($label); + }; + warn "unknown filesystem LABEL=$label in /etc/fstab: $@\n" if $@; + return () if !defined $dev; + $dev = _canonical_dev ($dev); + return ($dev, $fses->{$dev}) if exists $fses->{$dev}; + # Otherwise return nothing. It's just a filesystem that we are + # ignoring, eg. swap. return (); } elsif (/^UUID=(.*)/) { my $uuid = $1; - foreach (sort keys %$fses) { - if (exists $fses->{$_}->{uuid} && - $fses->{$_}->{uuid} eq $uuid) { - return ($_, $fses->{$_}); - } - } - warn __x("unknown filesystem UUID {uuid}\n", uuid => $uuid); + my $dev; + eval { + $dev = $g->findfs_uuid ($uuid); + }; + warn "unknown filesystem UUID=$uuid in /etc/fstab: $@\n" if $@; + return () if !defined $dev; + $dev = _canonical_dev ($dev); + return ($dev, $fses->{$dev}) if exists $fses->{$dev}; + # Otherwise return nothing. It's just a filesystem that we are + # ignoring, eg. swap. return (); } else { return ($_, $fses->{$_}) if exists $fses->{$_};