]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
smb: server: fill in smbdirect_socket.first_error on error
authorStefan Metzmacher <metze@samba.org>
Thu, 28 Aug 2025 10:14:07 +0000 (12:14 +0200)
committerSteve French <stfrench@microsoft.com>
Sun, 28 Sep 2025 23:29:54 +0000 (18:29 -0500)
For now we just use -ECONNABORTED, but it will get more detailed
later.

Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Cc: Steve French <smfrench@gmail.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: linux-cifs@vger.kernel.org
Cc: samba-technical@lists.samba.org
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/transport_rdma.c

index 67345c58bfe9abca691b6f9c568d53c3c00f118a..44fa0af21b453ddc2de41888e2aa9e1f77c525e2 100644 (file)
@@ -222,6 +222,9 @@ static void smb_direct_disconnect_rdma_work(struct work_struct *work)
        disable_delayed_work(&sc->idle.timer_work);
        disable_work(&sc->idle.immediate_work);
 
+       if (sc->first_error == 0)
+               sc->first_error = -ECONNABORTED;
+
        switch (sc->status) {
        case SMBDIRECT_SOCKET_NEGOTIATE_NEEDED:
        case SMBDIRECT_SOCKET_NEGOTIATE_RUNNING:
@@ -259,6 +262,9 @@ static void smb_direct_disconnect_rdma_work(struct work_struct *work)
 static void
 smb_direct_disconnect_rdma_connection(struct smbdirect_socket *sc)
 {
+       if (sc->first_error == 0)
+               sc->first_error = -ECONNABORTED;
+
        switch (sc->status) {
        case SMBDIRECT_SOCKET_RESOLVE_ADDR_FAILED:
        case SMBDIRECT_SOCKET_RESOLVE_ROUTE_FAILED: