Re: [PATCH v2 1/1] smb: client: Fix hang in smb2_reconnect

From: Rickard x Andersson
Date: Mon Apr 15 2024 - 10:38:08 EST


On 4/13/24 11:02, Steve French wrote:
Shyam and I tried some experiments and there are two cases where the
patch breaks:
1) ChangeNotify will time out
2) Certainly byte range lock calls (they can be allowed to block) will timeout

An obvious alternative would be to not make this change for the
commands like ChangeNotify and blocking locks but allow it for the
others.


Would it make sense to make the patch less intrusive by doing something like the following?:

@@ -1209,7 +1216,12 @@ compound_send_recv(const unsigned int xid, struct cifs_ses *ses,
spin_unlock(&ses->ses_lock);

for (i = 0; i < num_rqst; i++) {
- rc = wait_for_response(server, midQ[i]);
+ if (flags == CIFS_NEG_OP) {

+ rc = wait_for_response(server, midQ[i], 50*1000);
+ }
+ else
+ rc = wait_for_response(server, midQ[i], -1);
if (rc != 0)
break;



So, we are just waiting with timeout in the case it is a "CIFS_NEG_OP".

Note that I am not familiar at all with this code base.

Best regards,
Rickard