From 575012d650af2db4a250becaf7765626cf4fb806 Mon Sep 17 00:00:00 2001 From: liqiang Date: Fri, 8 Sep 2023 11:01:15 +0800 Subject: [PATCH] fix epoll state machine bug Signed-off-by: liqiang --- qtfs/qtfs_common/socket.c | 2 +- qtfs/qtfs_server/qtfs-server.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qtfs/qtfs_common/socket.c b/qtfs/qtfs_common/socket.c index c7e8d8f..e51bc5b 100644 --- a/qtfs/qtfs_common/socket.c +++ b/qtfs/qtfs_common/socket.c @@ -170,7 +170,7 @@ static int qtfs_conn_sock_server_accept(void *connvar, qtfs_conn_type_e type) mutex_unlock(&qtfs_server_main_sock[type].lock); return -EINVAL; } - ret = kernel_accept(sock, &sockvar->client_sock, SOCK_NONBLOCK); + ret = kernel_accept(sock, &sockvar->client_sock, 0); if (ret < 0) { mutex_unlock(&qtfs_server_main_sock[type].lock); return ret; diff --git a/qtfs/qtfs_server/qtfs-server.c b/qtfs/qtfs_server/qtfs-server.c index 12d2ed0..f4e201c 100644 --- a/qtfs/qtfs_server/qtfs-server.c +++ b/qtfs/qtfs_server/qtfs-server.c @@ -73,7 +73,7 @@ long qtfs_server_epoll_thread(struct qtfs_conn_var_s *pvar) qtfs_err("qtfs epoll wait error, epfd is invalid."); return QTERROR; } - if (false == pvar->conn_ops->conn_connected(&pvar->conn_var)) { + if (pvar->state == QTCONN_ACTIVE && false == pvar->conn_ops->conn_connected(&pvar->conn_var)) { qtfs_warn("qtfs epoll thread disconnected, now try to reconnect."); ret = qtfs_sm_reconnect(pvar); } else { -- Gitee