]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
smb: client: make use of ib_wc_status_msg() and skip IB_WC_WR_FLUSH_ERR logging
authorStefan Metzmacher <metze@samba.org>
Tue, 12 Aug 2025 07:44:07 +0000 (09:44 +0200)
committerSteve French <stfrench@microsoft.com>
Sun, 28 Sep 2025 23:29:49 +0000 (18:29 -0500)
There's no need to get log message for every IB_WC_WR_FLUSH_ERR
completion, but any other error should be logged at level ERR.

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

index d8a8382624ada0796b36641b78b0ac46046bf452..0ec09841362f5cda74ce98c305d8dd1526897478 100644 (file)
@@ -415,8 +415,8 @@ static void send_done(struct ib_cq *cq, struct ib_wc *wc)
        struct smbd_connection *info =
                container_of(sc, struct smbd_connection, socket);
 
-       log_rdma_send(INFO, "smbdirect_send_io 0x%p completed wc->status=%d\n",
-               request, wc->status);
+       log_rdma_send(INFO, "smbdirect_send_io 0x%p completed wc->status=%s\n",
+               request, ib_wc_status_msg(wc->status));
 
        for (i = 0; i < request->num_sge; i++)
                ib_dma_unmap_single(sc->ib.dev,
@@ -425,8 +425,9 @@ static void send_done(struct ib_cq *cq, struct ib_wc *wc)
                        DMA_TO_DEVICE);
 
        if (wc->status != IB_WC_SUCCESS || wc->opcode != IB_WC_SEND) {
-               log_rdma_send(ERR, "wc->status=%d wc->opcode=%d\n",
-                       wc->status, wc->opcode);
+               if (wc->status != IB_WC_WR_FLUSH_ERR)
+                       log_rdma_send(ERR, "wc->status=%s wc->opcode=%d\n",
+                               ib_wc_status_msg(wc->status), wc->opcode);
                mempool_free(request, sc->send_io.mem.pool);
                smbd_disconnect_rdma_connection(info);
                return;
@@ -596,13 +597,16 @@ static void recv_done(struct ib_cq *cq, struct ib_wc *wc)
        u32 remaining_data_length = 0;
        bool negotiate_done = false;
 
-       log_rdma_recv(INFO, "response=0x%p type=%d wc status=%d wc opcode %d byte_len=%d pkey_index=%u\n",
-                     response, sc->recv_io.expected, wc->status, wc->opcode,
+       log_rdma_recv(INFO,
+                     "response=0x%p type=%d wc status=%s wc opcode %d byte_len=%d pkey_index=%u\n",
+                     response, sc->recv_io.expected,
+                     ib_wc_status_msg(wc->status), wc->opcode,
                      wc->byte_len, wc->pkey_index);
 
        if (wc->status != IB_WC_SUCCESS || wc->opcode != IB_WC_RECV) {
-               log_rdma_recv(INFO, "wc->status=%d opcode=%d\n",
-                       wc->status, wc->opcode);
+               if (wc->status != IB_WC_WR_FLUSH_ERR)
+                       log_rdma_recv(ERR, "wc->status=%s opcode=%d\n",
+                               ib_wc_status_msg(wc->status), wc->opcode);
                goto error;
        }