mirror of
https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
synced 2025-09-26 18:38:20 +10:00
NFSv4: Treat ENETUNREACH errors as fatal for state recovery
If a containerised process is killed and causes an ENETUNREACH or ENETDOWN error to be propagated to the state manager, then mark the nfs_client as being dead so that we don't loop in functions that are expecting recovery to succeed. Reviewed-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
c81d5bcb7b
commit
0af5fb5ed3
@ -2739,7 +2739,15 @@ out_error:
|
||||
pr_warn_ratelimited("NFS: state manager%s%s failed on NFSv4 server %s"
|
||||
" with error %d\n", section_sep, section,
|
||||
clp->cl_hostname, -status);
|
||||
ssleep(1);
|
||||
switch (status) {
|
||||
case -ENETDOWN:
|
||||
case -ENETUNREACH:
|
||||
nfs_mark_client_ready(clp, -EIO);
|
||||
break;
|
||||
default:
|
||||
ssleep(1);
|
||||
break;
|
||||
}
|
||||
out_drain:
|
||||
memalloc_nofs_restore(memflags);
|
||||
nfs4_end_drain_session(clp);
|
||||
|
Loading…
Reference in New Issue
Block a user