diff options
author | J. Bruce Fields <bfields@redhat.com> | 2016-11-28 09:02:52 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-01 17:43:31 -0500 |
commit | ced85a7568b57a671fe186562dfc601a5baab54d (patch) | |
tree | bf8045efb9b8580aed2095d9c838e21702a57e33 /fs/nfs/pnfs_nfs.c | |
parent | 2c2ee6d20b10594892c1d31c7b959f4780adde63 (diff) | |
download | linux-ced85a7568b57a671fe186562dfc601a5baab54d.tar.bz2 |
nfs: fix false positives in nfs40_walk_client_list()
It's possible that two different servers can return the same (clientid,
verifier) pair purely by coincidence. Both are 64-bit values, but
depending on the server implementation, they can be highly predictable
and collisions may be quite likely, especially when there are lots of
servers.
So, check for this case. If the clientid and verifier both match, then
we actually know they *can't* be the same server, since a new
SETCLIENTID to an already-known server should have changed the verifier.
This helps fix a bug that could cause the client to mount a filesystem
from the wrong server.
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Tested-by: Yongcheng Yang <yoyang@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/pnfs_nfs.c')
0 files changed, 0 insertions, 0 deletions