mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	NFSv4.1: Handle NFS4ERR_SEQ_MISORDERED when confirming the lease
Apparently the patch "NFS: Always use the same SETCLIENTID boot verifier" is tickling a Linux nfs server bug, and causing a regression: the server can get into a situation where it keeps replying NFS4ERR_SEQ_MISORDERED to our CREATE_SESSION request even when we are sending the correct sequence ID. Fix this by purging the lease and then retrying. Reported-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
		
							parent
							
								
									be0bfed002
								
							
						
					
					
						commit
						89a217360e
					
				
					 1 changed files with 5 additions and 0 deletions
				
			
		|  | @ -1580,6 +1580,11 @@ out: | |||
| static int nfs4_handle_reclaim_lease_error(struct nfs_client *clp, int status) | ||||
| { | ||||
| 	switch (status) { | ||||
| 	case -NFS4ERR_SEQ_MISORDERED: | ||||
| 		if (test_and_set_bit(NFS4CLNT_PURGE_STATE, &clp->cl_state)) | ||||
| 			return -ESERVERFAULT; | ||||
| 		/* Lease confirmation error: retry after purging the lease */ | ||||
| 		ssleep(1); | ||||
| 	case -NFS4ERR_CLID_INUSE: | ||||
| 	case -NFS4ERR_STALE_CLIENTID: | ||||
| 		clear_bit(NFS4CLNT_LEASE_CONFIRM, &clp->cl_state); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Trond Myklebust
						Trond Myklebust