tlshd: Pass ETIMEDOUT from gnutls to kernel #84
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We've had some QE work that's created a condition (some types of connection instability) where the handshake attempt has timed out. When this happens, tlshd sends EACESS back to the kernel. However, the kernel may not be expecting this error in the context of some NFS operations, for example: writeback. It can handle ETIMEDOUT, and we would like the kernel to perform its normal hard/soft retry routines for this case to re-connect to the server.
Add an error switch that clearly denotes the error paths we'd like to send back to the kernel. For SUNRPC, there are other insteresting errors that might be included (see call_conenct_status() in net/sunrpc/clnt.c), but are ommitted here because we don't have evidence of them in the wild