net/smc: sync err code when tcp connection was refused
stable inclusion from stable-v5.10.114 commit 83d128daff2e7f92cde38ebf7b06f83f77d79ba0 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I5IY1V Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=83d128daff2e7f92cde38ebf7b06f83f77d79ba0 -------------------------------- [ Upstream commit 4e2e65e2 ] In the current implementation, when TCP initiates a connection to an unavailable [ip,port], ECONNREFUSED will be stored in the TCP socket, but SMC will not. However, some apps (like curl) use getsockopt(,,SO_ERROR,,) to get the error information, which makes them miss the error message and behave strangely. Fixes: 50717a37 ("net/smc: nonblocking connect rework") Signed-off-by: Nliuyacan <liuyacan@corp.netease.com> Reviewed-by: NTony Lu <tonylu@linux.alibaba.com> Acked-by: NKarsten Graul <kgraul@linux.ibm.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net> Signed-off-by: NSasha Levin <sashal@kernel.org> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com> Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
Showing
想要评论请 注册 或 登录