return rc;
 }
 
-static struct rpcrdma_req *
-rpcrdma_buffer_get_req_locked(struct rpcrdma_buffer *buf)
-{
-       struct rpcrdma_req *req;
-
-       req = list_first_entry(&buf->rb_send_bufs,
-                              struct rpcrdma_req, rl_list);
-       list_del_init(&req->rl_list);
-       return req;
-}
-
 static struct rpcrdma_rep *
 rpcrdma_buffer_get_rep_locked(struct rpcrdma_buffer *buf)
 {
        struct rpcrdma_req *req;
 
        spin_lock(&buffers->rb_lock);
-       if (unlikely(list_empty(&buffers->rb_send_bufs)))
-               goto out_noreqs;
-       req = rpcrdma_buffer_get_req_locked(buffers);
+       req = list_first_entry_or_null(&buffers->rb_send_bufs,
+                                      struct rpcrdma_req, rl_list);
+       if (req)
+               list_del_init(&req->rl_list);
        spin_unlock(&buffers->rb_lock);
        return req;
-
-out_noreqs:
-       spin_unlock(&buffers->rb_lock);
-       return NULL;
 }
 
 /**