[Libguestfs] [PATCH] Fix virt-v2v exit codes

Richard W.M. Jones rjones at redhat.com
Mon Apr 26 12:38:02 UTC 2010


On Mon, Apr 26, 2010 at 12:04:23PM +0100, Matthew Booth wrote:
>      # Make certain the child process dies with the object
>      if (defined($self->{pid})) {
>          kill(9, $self->{pid});
>          waitpid($self->{pid}, WNOHANG);
> +        $retval ||= $?;

So the non-obvious reason why this works is because waitpid returns
the child status in $?.

> +        my $retval = $?
> +
>          # Note that this undef is what actually causes the underlying handle to
>          # be closed. This is required to allow the RHEV target's temporary mount
>          # directory to be unmounted and deleted prior to exit.
>          $g = undef;
> +
> +        $? ||= $retval;

I'm a bit confused by this though.  AFAICT the Guestfs::DESTROY
function shouldn't change $?.

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




More information about the Libguestfs mailing list