smb: server: initialize recv_io->cqe.done = recv_done just once
smbdirect_recv_io structures are pre-allocated so we can set the callback function just once. This will make it easy to move smb_direct_post_recv to common code soon. Cc: Tom Talpey <tom@talpey.com> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Signed-off-by: Stefan Metzmacher <metze@samba.org> Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>pull/1354/merge
parent
49ca214774
commit
c1fb124f2a
|
|
@ -758,7 +758,6 @@ static int smb_direct_post_recv(struct smbdirect_socket *sc,
|
||||||
return ret;
|
return ret;
|
||||||
recvmsg->sge.length = sp->max_recv_size;
|
recvmsg->sge.length = sp->max_recv_size;
|
||||||
recvmsg->sge.lkey = sc->ib.pd->local_dma_lkey;
|
recvmsg->sge.lkey = sc->ib.pd->local_dma_lkey;
|
||||||
recvmsg->cqe.done = recv_done;
|
|
||||||
|
|
||||||
wr.wr_cqe = &recvmsg->cqe;
|
wr.wr_cqe = &recvmsg->cqe;
|
||||||
wr.next = NULL;
|
wr.next = NULL;
|
||||||
|
|
@ -2339,6 +2338,7 @@ respond:
|
||||||
|
|
||||||
static int smb_direct_connect(struct smbdirect_socket *sc)
|
static int smb_direct_connect(struct smbdirect_socket *sc)
|
||||||
{
|
{
|
||||||
|
struct smbdirect_recv_io *recv_io;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = smb_direct_init_params(sc);
|
ret = smb_direct_init_params(sc);
|
||||||
|
|
@ -2353,6 +2353,9 @@ static int smb_direct_connect(struct smbdirect_socket *sc)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list_for_each_entry(recv_io, &sc->recv_io.free.list, list)
|
||||||
|
recv_io->cqe.done = recv_done;
|
||||||
|
|
||||||
ret = smb_direct_create_qpair(sc);
|
ret = smb_direct_create_qpair(sc);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pr_err("Can't accept RDMA client: %d\n", ret);
|
pr_err("Can't accept RDMA client: %d\n", ret);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue