]> www.infradead.org Git - users/dhowells/kafs-utils.git/commitdiff
fixes
authorDavid Howells <dhowells@redhat.com>
Fri, 5 May 2023 15:13:07 +0000 (16:13 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 5 May 2023 15:13:20 +0000 (16:13 +0100)
lib/af_rxrpc.C

index 7079c683d700c1b3c05f213ebbbe3d957e47b378..1dc6947104158478a12e257dc9b286d4347fe7e5 100644 (file)
@@ -145,7 +145,7 @@ public:
        std::list<rxrpc::Rx_buffer> rx_spare_buffers;   /* Spare bufferage for receive */
        unsigned int            rx_nr_buffers;          /* Number of buffers on the list */
 #define CONN_MSGS 3
-#define CONN_CMSG_SIZE 128
+#define CONN_CMSG_SIZE 4096
 #define CONN_NR_IOV 4
        struct mmsghdr          rx_msgs[CONN_MSGS];     /* Message headers */
        struct sockaddr_rxrpc   rx_peer[CONN_MSGS];     /* Mass peer address bufferage */
@@ -897,6 +897,16 @@ void af_rxrpc_endpoint::receive(bool nowait)
                rx_nr_buffers++;
        }
 
+       /* Reset the message descriptors. */
+       for (i = 0; i < CONN_MSGS; i++) {
+               struct mmsghdr *m = &rx_msgs[i];
+               struct msghdr *msg = &m->msg_hdr;
+
+               msg->msg_namelen        = sizeof(rx_peer[i]);
+               msg->msg_controllen     = CONN_CMSG_SIZE;
+               msg->msg_flags          = 0;
+       }
+
        /* Receive messages.  The descriptor array is already set up and gets
         * reset as messages are processed.
         */
@@ -917,11 +927,6 @@ void af_rxrpc_endpoint::receive(bool nowait)
                debug("Rx DATA: %d [fl:%x]\n", m->msg_len, msg->msg_flags);
 
                recv_msg(msg, m->msg_len);
-
-               /* Reset the message descriptor. */
-               m->msg_hdr.msg_namelen  = sizeof(rx_peer[i]);
-               m->msg_hdr.msg_controllen = CONN_CMSG_SIZE;
-               m->msg_hdr.msg_flags    = 0;
        }
 }