Whamcloud - gitweb
LU-6122 lnet: Allocate the correct number of rtr buffers
[fs/lustre-release.git] / lnet / lnet / lib-move.c
index e53370f..6d3a31e 100644 (file)
@@ -1095,9 +1095,11 @@ lnet_return_rx_credits_locked(lnet_msg_t *msg)
                /* It is possible that a user has lowered the desired number of
                 * buffers in this pool.  Make sure we never put back
                 * more buffers than the stated number. */
-               if (rbp->rbp_credits >= rbp->rbp_nbuffers) {
-                       /* Discard this buffer so we don't have too many. */
+               if (unlikely(rbp->rbp_credits >= rbp->rbp_req_nbuffers)) {
+                       /* Discard this buffer so we don't have too
+                        * many. */
                        lnet_destroy_rtrbuf(rb, rbp->rbp_npages);
+                       rbp->rbp_nbuffers--;
                } else {
                        list_add(&rb->rb_list, &rbp->rbp_bufs);
                        rbp->rbp_credits++;