projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8e70c52
)
NFSv4.1: Fix an Oops in nfs41_walk_client_list
author
Trond Myklebust
<trond.myklebust@primarydata.com>
Wed, 21 Jan 2015 19:37:44 +0000
(14:37 -0500)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Fri, 6 Feb 2015 06:35:36 +0000
(22:35 -0800)
commit
3175e1dcec40fab1a444c010087f2068b6b04732
upstream.
If we start state recovery on a client that failed to initialise correctly,
then we are very likely to Oops.
Reported-by: "Mkrtchyan, Tigran" <tigran.mkrtchyan@desy.de>
Link:
http://lkml.kernel.org/r/130621862.279655.1421851650684.JavaMail.zimbra@desy.de
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/nfs4client.c
patch
|
blob
|
history
diff --git
a/fs/nfs/nfs4client.c
b/fs/nfs/nfs4client.c
index 519833d0457ec75b9dc5519424b59ba3e073a20d..5f8d5ffdad8f8f2f39903682671363722d6ccc16 100644
(file)
--- a/
fs/nfs/nfs4client.c
+++ b/
fs/nfs/nfs4client.c
@@
-462,7
+462,7
@@
int nfs41_walk_client_list(struct nfs_client *new,
prev = pos;
status = nfs_wait_client_init_complete(pos);
prev = pos;
status = nfs_wait_client_init_complete(pos);
- if (
status == 0
) {
+ if (
pos->cl_cons_state == NFS_CS_SESSION_INITING
) {
nfs4_schedule_lease_recovery(pos);
status = nfs4_wait_clnt_recover(pos);
}
nfs4_schedule_lease_recovery(pos);
status = nfs4_wait_clnt_recover(pos);
}