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