Bug 219581

Summary: NFSv4.1 client recovery from NFSERR_BADSESSION errors from Solaris server
Product: Base System Reporter: Rick Macklem <rmacklem>
Component: kernAssignee: Rick Macklem <rmacklem>
Status: New ---    
Severity: Affects Only Me CC: emaste
Priority: ---    
Version: CURRENT   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
do CreateSession with extant ClientID first for BADSESSION recovery none

Description Rick Macklem freebsd_committer freebsd_triage 2017-05-26 22:04:26 UTC
Created attachment 182948 [details]
do CreateSession with extant ClientID first for BADSESSION recovery

Some NFSv4.1 servers return NFS4ERR_BAD_SESSION for cases where the ClientID
is still valid. I believe that Solaris servers do this.
As such, the recovery that starts with ExchangeID to acquire a new ClientID
is not correct for these servers.
This patch modifies the code so that it first attempts a CreateSession with
the extant ClientID and only does the ExchangeID, CreateSession recovery
if this fails.

I believe this is correct for Solaris servers, but since I do not have any
Solaris server to test against, I don't actually know if this patch works
for Solaris servers?