mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
ksmbd: call ib_drain_qp when disconnected
[ Upstream commit 141fa9824c ]
When disconnected, call ib_drain_qp to cancel all pending work requests
and prevent ksmbd_conn_handler_loop from waiting for a long time
for those work requests to compelete.
Signed-off-by: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Reviewed-by: Tom Talpey <tom@talpey.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b3e852bea8
commit
ef97ccd0fc
@@ -1527,6 +1527,8 @@ static int smb_direct_cm_handler(struct rdma_cm_id *cm_id,
|
|||||||
}
|
}
|
||||||
case RDMA_CM_EVENT_DEVICE_REMOVAL:
|
case RDMA_CM_EVENT_DEVICE_REMOVAL:
|
||||||
case RDMA_CM_EVENT_DISCONNECTED: {
|
case RDMA_CM_EVENT_DISCONNECTED: {
|
||||||
|
ib_drain_qp(t->qp);
|
||||||
|
|
||||||
t->status = SMB_DIRECT_CS_DISCONNECTED;
|
t->status = SMB_DIRECT_CS_DISCONNECTED;
|
||||||
wake_up_interruptible(&t->wait_status);
|
wake_up_interruptible(&t->wait_status);
|
||||||
wake_up_interruptible(&t->wait_reassembly_queue);
|
wake_up_interruptible(&t->wait_reassembly_queue);
|
||||||
|
|||||||
Reference in New Issue
Block a user