Commit f7f89250 authored by Stefan Metzmacher's avatar Stefan Metzmacher Committed by Steve French
Browse files

smb: server: use disable_work_sync in transport_rdma.c



This makes it safer during the disconnect and avoids
requeueing.

It's ok to call disable_work[_sync]() more than once.

Cc: Namjae Jeon <linkinjeon@kernel.org>
Cc: Steve French <smfrench@gmail.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: linux-cifs@vger.kernel.org
Cc: samba-technical@lists.samba.org
Fixes: 0626e664 ("cifsd: add server handler for central processing and tranport layers")
Signed-off-by: default avatarStefan Metzmacher <metze@samba.org>
Acked-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 1cde0a74
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -399,9 +399,9 @@ static void free_transport(struct smb_direct_transport *t)
	wait_event(t->wait_send_pending,
		   atomic_read(&t->send_pending) == 0);

	cancel_work_sync(&t->disconnect_work);
	cancel_work_sync(&t->post_recv_credits_work);
	cancel_work_sync(&t->send_immediate_work);
	disable_work_sync(&t->disconnect_work);
	disable_work_sync(&t->post_recv_credits_work);
	disable_work_sync(&t->send_immediate_work);

	if (t->qp) {
		ib_drain_qp(t->qp);