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

Roman Bogorodskiy bogorodskiy at gmail.com
Sun Mar 23 10:28:41 UTC 2014


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;
             }
-- 
1.8.4.2




More information about the libvir-list mailing list