1 Star 0 Fork 44

陈亚强/spdk

forked from src-openEuler/spdk 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0011-uring-set-fd-to-1-after-close-fd-in-uring_sock_creat.patch 1.85 KB
一键复制 编辑 原始数据 按行查看 历史
swf504 提交于 2021-11-23 15:52 +08:00 . Rebase to SPDK v21.01.1 Maintenance LTS Version
From b97c91b7d2480ee1cc038e70f6e2de2e2bb5d19d Mon Sep 17 00:00:00 2001
From: Zhiqiang Liu <liuzhiqiang26@huawei.com>
Date: Sun, 13 Jun 2021 21:29:33 +0800
Subject: [PATCH 28/28] 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 <liuzhiqiang26@huawei.com>
Change-Id: I22eada5437776fe90a6b57ab42cbad6dc4b0585c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8311
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
---
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 be76973..8f22758 100644
--- a/module/sock/uring/uring.c
+++ b/module/sock/uring/uring.c
@@ -424,12 +424,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;
}
@@ -439,6 +441,7 @@ retry:
rc = setsockopt(fd, SOL_SOCKET, SO_PRIORITY, &opts->priority, sizeof val);
if (rc != 0) {
close(fd);
+ fd = -1;
/* error */
continue;
}
@@ -448,6 +451,7 @@ retry:
rc = setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof val);
if (rc != 0) {
close(fd);
+ fd = -1;
/* error */
continue;
}
--
1.8.3.1
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yaqiangchen/spdk.git
git@gitee.com:yaqiangchen/spdk.git
yaqiangchen
spdk
spdk
master

搜索帮助

371d5123 14472233 46e8bd33 14472233