summaryrefslogtreecommitdiffstats
path: root/fs/nfs/pnfs_nfs.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2016-11-28 09:02:52 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2016-12-01 17:43:31 -0500
commitced85a7568b57a671fe186562dfc601a5baab54d (patch)
treebf8045efb9b8580aed2095d9c838e21702a57e33 /fs/nfs/pnfs_nfs.c
parent2c2ee6d20b10594892c1d31c7b959f4780adde63 (diff)
downloadlinux-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