On Wed, Nov 21, 2018 at 11:57:18AM +0000, Daniel P. Berrangé wrote: > On Wed, Nov 21, 2018 at 03:28:29PM +0400, Marc-André Lureau wrote: > > Hi > > > > On Wed, Nov 21, 2018 at 3:22 PM Li Qiang <liq...@gmail.com> wrote: > > > > > > The fcntl will change the flags directly, use qemu_set_nonblock() > > > instead. > > > > qemu_set_nonblock() will preserve the existing flags. And on windows, > > it will register the FD to the event loop. > > that's a reasonable thing to do, is this fixing an actual bug? > > tap.c is only built with CONFIG_POSIX. Win32 is completely separate > in tap-win32.c. So the event loop reg doesn't apply. > > I agree it is good to preserve fcntl flags though, so this patch > looks desirable. > > Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Sure Acked-by: Michael S. Tsirkin <m...@redhat.com> but really not for this release I guess as we are in freeze. So thanks! And pls remember to ping after the release. > > > > > > > > > Signed-off-by: Li Qiang <liq...@gmail.com> > > > --- > > > net/tap.c | 10 +++++----- > > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > > > diff --git a/net/tap.c b/net/tap.c > > > index cc8525f154..e8aadd8d4b 100644 > > > --- a/net/tap.c > > > +++ b/net/tap.c > > > @@ -592,7 +592,7 @@ int net_init_bridge(const Netdev *netdev, const char > > > *name, > > > return -1; > > > } > > > > > > - fcntl(fd, F_SETFL, O_NONBLOCK); > > > + qemu_set_nonblock(fd); > > > vnet_hdr = tap_probe_vnet_hdr(fd); > > > s = net_tap_fd_init(peer, "bridge", name, fd, vnet_hdr); > > > > > > @@ -707,7 +707,7 @@ static void net_init_tap_one(const NetdevTapOptions > > > *tap, NetClientState *peer, > > > } > > > return; > > > } > > > - fcntl(vhostfd, F_SETFL, O_NONBLOCK); > > > + qemu_set_nonblock(vhostfd); > > > } > > > options.opaque = (void *)(uintptr_t)vhostfd; > > > > > > @@ -791,7 +791,7 @@ int net_init_tap(const Netdev *netdev, const char > > > *name, > > > return -1; > > > } > > > > > > - fcntl(fd, F_SETFL, O_NONBLOCK); > > > + qemu_set_nonblock(fd); > > > > > > vnet_hdr = tap_probe_vnet_hdr(fd); > > > > > > @@ -839,7 +839,7 @@ int net_init_tap(const Netdev *netdev, const char > > > *name, > > > goto free_fail; > > > } > > > > > > - fcntl(fd, F_SETFL, O_NONBLOCK); > > > + qemu_set_nonblock(fd); > > > > > > if (i == 0) { > > > vnet_hdr = tap_probe_vnet_hdr(fd); > > > @@ -887,7 +887,7 @@ free_fail: > > > return -1; > > > } > > > > > > - fcntl(fd, F_SETFL, O_NONBLOCK); > > > + qemu_set_nonblock(fd); > > > vnet_hdr = tap_probe_vnet_hdr(fd); > > > > > > net_init_tap_one(tap, peer, "bridge", name, ifname, > > > -- > > > 2.11.0 > > > > > > > > > > > > -- > > Marc-André Lureau > > > > Regards, > Daniel > -- > |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| > |: https://libvirt.org -o- https://fstop138.berrange.com :| > |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|