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

Cc: Steve French <smfrench@gmail.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Long Li <longli@microsoft.com>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
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/client/smbdirect.c

index 45f137487ba1fc8e155136e627c764a656be30ab..86d32bd5f1136609d23d67fd9e301797538f0a59 100644 (file)
@@ -181,6 +181,9 @@ static void smbd_disconnect_rdma_work(struct work_struct *work)
        disable_work(&sc->idle.immediate_work);
        disable_delayed_work(&sc->idle.timer_work);
 
+       if (sc->first_error == 0)
+               sc->first_error = -ECONNABORTED;
+
        switch (sc->status) {
        case SMBDIRECT_SOCKET_NEGOTIATE_NEEDED:
        case SMBDIRECT_SOCKET_NEGOTIATE_RUNNING:
@@ -217,6 +220,9 @@ static void smbd_disconnect_rdma_work(struct work_struct *work)
 
 static void smbd_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: