From 2cd948c4a6fb0b26a495dfc861d26f7dfe9bc90d Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Wed, 2 Jun 2021 19:35:53 +0800 Subject: [PATCH] sock/posix: fix the socket pipe_has_data or socket_has_data. After reading the code in detail, I think that we should not set pipe_has_data= true and socket_has_data at the same time. Signed-off-by: Ziye Yang Change-Id: I8f9f96b16f4f0e0c585877a0dd687a240252a7cf Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8283 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- module/sock/posix/posix.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/module/sock/posix/posix.c b/module/sock/posix/posix.c index a23751357..444d5df42 100644 --- a/module/sock/posix/posix.c +++ b/module/sock/posix/posix.c @@ -958,10 +958,7 @@ posix_sock_read(struct spdk_posix_sock *sock) #endif sock->pipe_has_data = true; - if (bytes_recvd < bytes_avail) { - /* We drained the kernel socket entirely. */ - sock->socket_has_data = false; - } + sock->socket_has_data = false; return bytes_recvd; } @@ -1454,6 +1451,7 @@ posix_sock_group_impl_poll(struct spdk_sock_group_impl *_group, int max_events, if (!psock->socket_has_data && !psock->pipe_has_data) { TAILQ_INSERT_TAIL(&group->socks_with_data, psock, link); } + psock->socket_has_data = true; }