mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 06:31:52 +00:00
NFSv4: Schedule recovery if nfs40_walk_client_list() is interrupted
If a timeout or a signal interrupts the NFSv4 trunking discovery SETCLIENTID_CONFIRM call, then we don't know whether or not the server has changed the callback identifier on us. Assume that it did, and schedule a 'path down' recovery... Tested-by: Steve Dickson <steved@redhat.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
706cb8db3b
commit
f9b7ebdf7e
@ -531,6 +531,13 @@ int nfs40_walk_client_list(struct nfs_client *new,
|
||||
*result = pos;
|
||||
dprintk("NFS: <-- %s using nfs_client = %p ({%d})\n",
|
||||
__func__, pos, atomic_read(&pos->cl_count));
|
||||
goto out;
|
||||
case -ERESTARTSYS:
|
||||
case -ETIMEDOUT:
|
||||
/* The callback path may have been inadvertently
|
||||
* changed. Schedule recovery!
|
||||
*/
|
||||
nfs4_schedule_path_down_recovery(pos);
|
||||
default:
|
||||
goto out;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user