[PATCH 2/2] virnetdevtap: Add better error message for a possible common user error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When users pre-create a tap device to use with multiqueue interface that
has `managed="no"`, change the error so that it does not indicate we are
trying to create the device, and on top of that hint at the most
probable error cause.

Resolves: https://issues.redhat.com/browse/RHEL-55749
Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx>
---
 src/util/virnetdevtap.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c
index 55536b5f4be2..3df4dc129f0c 100644
--- a/src/util/virnetdevtap.c
+++ b/src/util/virnetdevtap.c
@@ -230,9 +230,16 @@ int virNetDevTapCreate(char **ifname,
         }
 
         if (ioctl(fd, TUNSETIFF, &ifr) < 0) {
-            virReportSystemError(errno,
-                                 _("Unable to create tap device %1$s"),
-                                 *ifname);
+            if (flags & VIR_NETDEV_TAP_CREATE_ALLOW_EXISTING &&
+                tapfdSize > 0) {
+                virReportSystemError(errno,
+                                     _("Unable to create multiple fds for tap device %1$s (maybe existing device was created without multi_queue flag)"),
+                                     *ifname);
+            } else {
+                virReportSystemError(errno,
+                                     _("Unable to create tap device %1$s"),
+                                     *ifname);
+            }
             goto cleanup;
         }
 
@@ -247,7 +254,7 @@ int virNetDevTapCreate(char **ifname,
             ioctl(fd, TUNSETPERSIST, 1) < 0) {
             virReportSystemError(errno,
                                  _("Unable to set tap device %1$s to persistent"),
-                                 *ifname);
+                                 NULLSTR(*ifname));
             goto cleanup;
         }
         tapfd[i] = fd;
-- 
2.46.0




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux