diff options
author | Hyunchul Lee <[email protected]> | 2022-05-18 06:46:08 +0900 |
---|---|---|
committer | Steve French <[email protected]> | 2022-05-21 15:01:43 -0500 |
commit | 5366afc4065075a4456941fbd51c33604d631ee5 (patch) | |
tree | 8cba6dd1c083ea5b1a923c86b97a9911b23b789a | |
parent | 7820c6ee029548290b318e522eb2578516d05393 (diff) |
ksmbd: smbd: fix connection dropped issue
When there are bursty connection requests,
RDMA connection event handler is deferred and
Negotiation requests are received even if
connection status is NEW.
To handle it, set the status to CONNECTED
if Negotiation requests are received.
Reported-by: Yufan Chen <[email protected]>
Signed-off-by: Hyunchul Lee <[email protected]>
Tested-by: Yufan Chen <[email protected]>
Acked-by: Namjae Jeon <[email protected]>
Signed-off-by: Steve French <[email protected]>
-rw-r--r-- | fs/ksmbd/transport_rdma.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index 0741fd129d16..e91acc2746bc 100644 --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -576,6 +576,7 @@ static void recv_done(struct ib_cq *cq, struct ib_wc *wc) } t->negotiation_requested = true; t->full_packet_received = true; + t->status = SMB_DIRECT_CS_CONNECTED; enqueue_reassembly(t, recvmsg, 0); wake_up_interruptible(&t->wait_status); break; |