[libvirt] [PATCH] bhyve: don't fail on busy tap devices

Ján Tomko jtomko at redhat.com
Tue Mar 25 13:49:31 UTC 2014


On 03/23/2014 11:28 AM, Roman Bogorodskiy wrote:
> We use virBhyveTapGetRealDeviceName() to map network interface name
> to a real device path, trying to open possible devices and getting
> names by ioctl.
> 
> Make it skip devices that fail to open with EBUSY because they're
> most likely already used by other VMs.
> ---
>  src/bhyve/bhyve_command.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c
> index 6d64c27..e569aab 100644
> --- a/src/bhyve/bhyve_command.c
> +++ b/src/bhyve/bhyve_command.c
> @@ -69,6 +69,8 @@ virBhyveTapGetRealDeviceName(char *name)
>                  goto cleanup;
>              }
>              if ((fd = open(devpath, O_RDWR)) < 0) {
> +                if (errno == EBUSY)
> +                    continue;
>                  virReportSystemError(errno, _("Unable to open '%s'"), devpath);
>                  goto cleanup;
>              }
> 

This would leak devpath.

ACK with VIR_FREE(devpath) added either before 'continue', or the virAsprintf
allocating it.

Jan

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140325/8ceea687/attachment-0001.sig>


More information about the libvir-list mailing list