virnetdevtap: Add better error message for a possible common user error

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@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Martin Kletzander 2024-09-04 10:18:41 +02:00
parent 4ce9196dc4
commit f6fb097e11

View File

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