From: Jason Wang <jasow...@redhat.com>

Only tap->vhostfd were checked net_init_tap_one(), but tap->vhostfds were
forgot, this will lead qemu to ignore all fds passed by management through
vhostfds, and tries to create vhost_net device itself. Fix by adding this check
also.

Reportyed-by: Michal Privoznik <mpriv...@redhat.com>
Cc: Michal Privoznik <mpriv...@redhat.com>
Cc: qemu-sta...@nongnu.org
Signed-off-by: Jason Wang <jasow...@redhat.com>
Reviewed-by: Michal Privoznik <mpriv...@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
(cherry picked from commit 7873df408dd44eb92840b108211d5aa5db7db526)

Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com>
---
 net/tap.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/tap.c b/net/tap.c
index daab350..0da48b1 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -628,7 +628,7 @@ static int net_init_tap_one(const NetdevTapOptions *tap, 
NetClientState *peer,
         vhostfdname || (tap->has_vhostforce && tap->vhostforce)) {
         int vhostfd;
 
-        if (tap->has_vhostfd) {
+        if (tap->has_vhostfd || tap->has_vhostfds) {
             vhostfd = monitor_handle_fd_param(cur_mon, vhostfdname);
             if (vhostfd == -1) {
                 return -1;
-- 
1.7.9.5


Reply via email to