summaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_fs_sb.h
diff options
context:
space:
mode:
authorNeilBrown2018-12-03 01:30:30 +0100
committerAnna Schumaker2018-12-19 19:52:45 +0100
commita534ecb013bfc58a7f03653c7f2976bc341da98f (patch)
tree55d3c1b4a992afc33c28b5d1d4e37943de4b1389 /include/linux/nfs_fs_sb.h
parentSUNRPC: remove machine_cred field from struct auth_cred (diff)
downloadkernel-qcow2-linux-a534ecb013bfc58a7f03653c7f2976bc341da98f.tar.gz
kernel-qcow2-linux-a534ecb013bfc58a7f03653c7f2976bc341da98f.tar.xz
kernel-qcow2-linux-a534ecb013bfc58a7f03653c7f2976bc341da98f.zip
NFSv4: add cl_root_cred for use when machine cred is not available.
NFSv4 state management tries a root credential when no machine credential is available, as can happen with kerberos. It does this by replacing the cl_machine_cred with a root credential. This means that any user of the machine credential needs to take a lock while getting a reference to the machine credential, which is a little cumbersome. So introduce an explicit cl_root_cred, and never free either credential until client shutdown. This means that no locking is needed to reference these credentials. Future patches will make use of this. This is only a temporary addition. both cl_machine_cred and cl_root_cred will disappear later in the series. Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'include/linux/nfs_fs_sb.h')
-rw-r--r--include/linux/nfs_fs_sb.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index 0fc0b9135d46..fea51b44fe50 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -59,6 +59,7 @@ struct nfs_client {
u32 cl_minorversion;/* NFSv4 minorversion */
struct rpc_cred *cl_machine_cred;
+ struct rpc_cred *cl_root_cred; /* Use when machine_cred is ineffective */
#if IS_ENABLED(CONFIG_NFS_V4)
struct list_head cl_ds_clients; /* auth flavor data servers */