nfs4: copy acceptor name from context to nfs_client
authorJeff Layton <jlayton@poochiereds.net>
Sun, 22 Jun 2014 00:52:17 +0000 (20:52 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Sat, 12 Jul 2014 22:41:25 +0000 (18:41 -0400)
commitf11b2a1cfbf5dd783eb55cb470509d06e20d1c78
tree3e7ecb73670953ef7067551582dd3c432736a86c
parenta0337d1ddb5a4bd609e3ff0955551cb240340340
nfs4: copy acceptor name from context to nfs_client

The current CB_COMPOUND handling code tries to compare the principal
name of the request with the cl_hostname in the client. This is not
guaranteed to ever work, particularly if the client happened to mount
a CNAME of the server or a non-fqdn.

Fix this by instead comparing the cr_principal string with the acceptor
name that we get from gssd. In the event that gssd didn't send one
down (i.e. it was too old), then we fall back to trying to use the
cl_hostname as we do today.

Signed-off-by: Jeff Layton <jlayton@poochiereds.net>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/callback.c
fs/nfs/client.c
fs/nfs/nfs4proc.c
include/linux/nfs_fs_sb.h
include/linux/nfs_xdr.h