* [PATCH] net/smc: sync err info when TCP connection is refused
@ 2022-04-17 12:33 yacanliu
2022-04-19 10:23 ` Tony Lu
2022-04-21 8:09 ` Paolo Abeni
0 siblings, 2 replies; 4+ messages in thread
From: yacanliu @ 2022-04-17 12:33 UTC (permalink / raw)
To: kgraul, davem, kuba, pabeni; +Cc: linux-s390, netdev, linux-kernel, liuyacan
From: liuyacan <liuyacan@corp.netease.com>
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.
Signed-off-by: liuyacan <liuyacan@corp.netease.com>
---
net/smc/af_smc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index fc7b6eb22..bbb1a4ce5 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -1475,6 +1475,8 @@ static void smc_connect_work(struct work_struct *work)
smc->sk.sk_state = SMC_CLOSED;
if (rc == -EPIPE || rc == -EAGAIN)
smc->sk.sk_err = EPIPE;
+ else if (rc == -ECONNREFUSED)
+ smc->sk.sk_err = ECONNREFUSED;
else if (signal_pending(current))
smc->sk.sk_err = -sock_intr_errno(timeo);
sock_put(&smc->sk); /* passive closing */
--
2.20.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] net/smc: sync err info when TCP connection is refused
2022-04-17 12:33 [PATCH] net/smc: sync err info when TCP connection is refused yacanliu
@ 2022-04-19 10:23 ` Tony Lu
2022-04-19 10:37 ` Karsten Graul
2022-04-21 8:09 ` Paolo Abeni
1 sibling, 1 reply; 4+ messages in thread
From: Tony Lu @ 2022-04-19 10:23 UTC (permalink / raw)
To: yacanliu
Cc: kgraul, davem, kuba, pabeni, linux-s390, netdev, linux-kernel, liuyacan
On Sun, Apr 17, 2022 at 08:33:07PM +0800, yacanliu@163.com wrote:
> From: liuyacan <liuyacan@corp.netease.com>
>
> 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.
>
> Signed-off-by: liuyacan <liuyacan@corp.netease.com>
This fix works for me. I have tested it with curl for unavailable
address.
This patch missed net or net-next tag, I think net is preferred.
Reviewed-by: Tony Lu <tonylu@linux.alibaba.com>
Thank you,
Tony Lu
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] net/smc: sync err info when TCP connection is refused
2022-04-19 10:23 ` Tony Lu
@ 2022-04-19 10:37 ` Karsten Graul
0 siblings, 0 replies; 4+ messages in thread
From: Karsten Graul @ 2022-04-19 10:37 UTC (permalink / raw)
To: Tony Lu, yacanliu
Cc: davem, kuba, pabeni, linux-s390, netdev, linux-kernel, liuyacan
On 19/04/2022 12:23, Tony Lu wrote:
> On Sun, Apr 17, 2022 at 08:33:07PM +0800, yacanliu@163.com wrote:
>> From: liuyacan <liuyacan@corp.netease.com>
>>
>> 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.
>>
>> Signed-off-by: liuyacan <liuyacan@corp.netease.com>
>
> This fix works for me. I have tested it with curl for unavailable
> address.
>
> This patch missed net or net-next tag, I think net is preferred.
>
> Reviewed-by: Tony Lu <tonylu@linux.alibaba.com>
>
> Thank you,
> Tony Lu
Thank you both for the fix and the test!
Acked-by: Karsten Graul <kgraul@linux.ibm.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] net/smc: sync err info when TCP connection is refused
2022-04-17 12:33 [PATCH] net/smc: sync err info when TCP connection is refused yacanliu
2022-04-19 10:23 ` Tony Lu
@ 2022-04-21 8:09 ` Paolo Abeni
1 sibling, 0 replies; 4+ messages in thread
From: Paolo Abeni @ 2022-04-21 8:09 UTC (permalink / raw)
To: yacanliu, kgraul, davem, kuba; +Cc: linux-s390, netdev, linux-kernel, liuyacan
On Sun, 2022-04-17 at 20:33 +0800, yacanliu@163.com wrote:
> From: liuyacan <liuyacan@corp.netease.com>
>
> 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.
>
> Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Could you please formally re-submit for -net (inclusing NET into the
patch subj) with a suitable 'fixes' tag? You can retain the already
collected reviewed/ack-by tags.
Thanks!
Paolo
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-04-21 8:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-17 12:33 [PATCH] net/smc: sync err info when TCP connection is refused yacanliu
2022-04-19 10:23 ` Tony Lu
2022-04-19 10:37 ` Karsten Graul
2022-04-21 8:09 ` Paolo Abeni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).