From 16b38080e3383252f9606c484eb5b43cff70b673 Mon Sep 17 00:00:00 2001 From: Gonglei Date: Mon, 11 Aug 2014 17:34:21 +0800 Subject: channel-posix: using qemu_set_nonblock() instead of fcntl(O_NONBLOCK) Technically, fcntl(soc, F_SETFL, O_NONBLOCK) is incorrect since it clobbers all other file flags. We can use F_GETFL to get the current flags, set or clear the O_NONBLOCK flag, then use F_SETFL to set the flags. Using the qemu_set_nonblock() wrapper. Signed-off-by: Gonglei Signed-off-by: Wangxin Reviewed-by: Eric Blake Signed-off-by: Stefan Hajnoczi --- qga/channel-posix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qga/channel-posix.c b/qga/channel-posix.c index e65dda3822..8aad4fee9f 100644 --- a/qga/channel-posix.c +++ b/qga/channel-posix.c @@ -42,7 +42,7 @@ static gboolean ga_channel_listen_accept(GIOChannel *channel, g_warning("error converting fd to gsocket: %s", strerror(errno)); goto out; } - fcntl(client_fd, F_SETFL, O_NONBLOCK); + qemu_set_nonblock(client_fd); ret = ga_channel_client_add(c, client_fd); if (ret) { g_warning("error setting up connection"); -- cgit v1.2.1