epoll_available will only be set if epollfd != -1, os we can swap the two variables in aio_epoll_disable, and aio_context_destroy can call aio_epoll_disable directly.
Signed-off-by: Jie Wang <wangji...@huawei.com> --- util/aio-posix.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/util/aio-posix.c b/util/aio-posix.c index 0ade2c7..118bf57 100644 --- a/util/aio-posix.c +++ b/util/aio-posix.c @@ -45,11 +45,11 @@ struct AioHandler static void aio_epoll_disable(AioContext *ctx) { - ctx->epoll_available = false; - if (!ctx->epoll_enabled) { + ctx->epoll_enabled = false; + if (!ctx->epoll_available) { return; } - ctx->epoll_enabled = false; + ctx->epoll_available = false; close(ctx->epollfd); } @@ -716,9 +716,7 @@ void aio_context_setup(AioContext *ctx) void aio_context_destroy(AioContext *ctx) { #ifdef CONFIG_EPOLL_CREATE1 - if (ctx->epollfd >= 0) { - close(ctx->epollfd); - } + aio_epoll_disable(ctx); #endif } -- 1.8.3.1