From 583689215f3c3b59cc36ad5df63be4d1d8d32d6b Mon Sep 17 00:00:00 2001 From: Zhiqiang Liu Date: Sun, 13 Jun 2021 21:29:33 +0800 Subject: [PATCH] uring: set fd to -1 after close(fd) in uring_sock_create() In uring_sock_create(), we loops through all the addresses available. If something is wrong, we should close(fd) and set fd to -1, and try the next address. Only, when one fd satisfies all conditions, we will break the loop with the useful fd. Signed-off-by: Zhiqiang Liu Change-Id: I22eada5437776fe90a6b57ab42cbad6dc4b0585c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8311 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Aleksey Marchuk Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris Reviewed-by: Ziye Yang --- module/sock/uring/uring.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module/sock/uring/uring.c b/module/sock/uring/uring.c index 3f4b54762..ea19c228d 100644 --- a/module/sock/uring/uring.c +++ b/module/sock/uring/uring.c @@ -441,12 +441,14 @@ retry: rc = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof val); if (rc != 0) { close(fd); + fd = -1; /* error */ continue; } rc = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &val, sizeof val); if (rc != 0) { close(fd); + fd = -1; /* error */ continue; } @@ -456,6 +458,7 @@ retry: rc = setsockopt(fd, SOL_SOCKET, SO_PRIORITY, &opts->priority, sizeof val); if (rc != 0) { close(fd); + fd = -1; /* error */ continue; } @@ -465,6 +468,7 @@ retry: rc = setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof val); if (rc != 0) { close(fd); + fd = -1; /* error */ continue; }