Skip to content

Commit 0c2b539

Browse files
metze-sambasmfrench
authored andcommitted
smb: server: make use of rdma_destroy_qp()
The qp is created by rdma_create_qp() as t->cm_id->qp and t->qp is just a shortcut. rdma_destroy_qp() also calls ib_destroy_qp(cm_id->qp) internally, but it is protected by a mutex, clears the cm_id and also calls trace_cm_qp_destroy(). This should make the tracing more useful as both rdma_create_qp() and rdma_destroy_qp() are traces and it makes the code look more sane as functions from the same layer are used for the specific qp object. trace-cmd stream -e rdma_cma:cm_qp_create -e rdma_cma:cm_qp_destroy shows this now while doing a mount and unmount from a client: <...>-80 [002] 378.514182: cm_qp_create: cm.id=1 src=172.31.9.167:5445 dst=172.31.9.166:37113 tos=0 pd.id=0 qp_type=RC send_wr=867 recv_wr=255 qp_num=1 rc=0 <...>-6283 [001] 381.686172: cm_qp_destroy: cm.id=1 src=172.31.9.167:5445 dst=172.31.9.166:37113 tos=0 qp_num=1 Before we only saw the first line. Cc: Namjae Jeon <[email protected]> Cc: Steve French <[email protected]> Cc: Sergey Senozhatsky <[email protected]> Cc: Hyunchul Lee <[email protected]> Cc: Tom Talpey <[email protected]> Cc: [email protected] Fixes: 0626e66 ("cifsd: add server handler for central processing and tranport layers") Signed-off-by: Stefan Metzmacher <[email protected]> Reviewed-by: Tom Talpey <[email protected]> Acked-by: Namjae Jeon <[email protected]> Signed-off-by: Steve French <[email protected]>
1 parent d7b8f8e commit 0c2b539

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

fs/smb/server/transport_rdma.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,8 @@ static void free_transport(struct smb_direct_transport *t)
433433
if (t->qp) {
434434
ib_drain_qp(t->qp);
435435
ib_mr_pool_destroy(t->qp, &t->qp->rdma_mrs);
436-
ib_destroy_qp(t->qp);
436+
t->qp = NULL;
437+
rdma_destroy_qp(t->cm_id);
437438
}
438439

439440
ksmbd_debug(RDMA, "drain the reassembly queue\n");
@@ -1940,8 +1941,8 @@ static int smb_direct_create_qpair(struct smb_direct_transport *t,
19401941
return 0;
19411942
err:
19421943
if (t->qp) {
1943-
ib_destroy_qp(t->qp);
19441944
t->qp = NULL;
1945+
rdma_destroy_qp(t->cm_id);
19451946
}
19461947
if (t->recv_cq) {
19471948
ib_destroy_cq(t->recv_cq);

0 commit comments

Comments
 (0)