]> www.infradead.org Git - users/hch/misc.git/commitdiff
sunrpc: handle -ENOTCONN in xs_tcp_setup_socket()
authorNeilBrown <neilb@suse.de>
Wed, 9 Oct 2024 05:28:06 +0000 (16:28 +1100)
committerAnna Schumaker <anna.schumaker@oracle.com>
Mon, 4 Nov 2024 15:24:18 +0000 (10:24 -0500)
xs_tcp_finish_connecting() can return -ENOTCONN but the switch statement
in xs_tcp_setup_socket() treats that as an unhandled error.

If we treat it as a known error it would propagate back to
call_connect_status() which does handle that error code.  This appears
to be the intention of the commit (given below) which added -ENOTCONN as
a return status for xs_tcp_finish_connecting().

So add -ENOTCONN to the switch statement as an error to pass through to
the caller.

Link: https://bugzilla.suse.com/show_bug.cgi?id=1231050
Link: https://access.redhat.com/discussions/3434091
Fixes: 01d37c428ae0 ("SUNRPC: xprt_connect() don't abort the task if the transport isn't bound")
Signed-off-by: NeilBrown <neilb@suse.de>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
net/sunrpc/xprtsock.c

index 0e1691316f4234ef859bd179d56c90469faa7033..1326fbf45a3479b5b3668487842f945ca5f2cc84 100644 (file)
@@ -2459,6 +2459,7 @@ static void xs_tcp_setup_socket(struct work_struct *work)
        case -EHOSTUNREACH:
        case -EADDRINUSE:
        case -ENOBUFS:
+       case -ENOTCONN:
                break;
        default:
                printk("%s: connect returned unhandled error %d\n",