mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
NFS/NFSD/SUNRPC: replace generic creds with 'struct cred'.
SUNRPC has two sorts of credentials, both of which appear as "struct rpc_cred". There are "generic credentials" which are supplied by clients such as NFS and passed in 'struct rpc_message' to indicate which user should be used to authorize the request, and there are low-level credentials such as AUTH_NULL, AUTH_UNIX, AUTH_GSS which describe the credential to be sent over the wires. This patch replaces all the generic credentials by 'struct cred' pointers - the credential structure used throughout Linux. For machine credentials, there is a special 'struct cred *' pointer which is statically allocated and recognized where needed as having a special meaning. A look-up of a low-level cred will map this to a machine credential. Signed-off-by: NeilBrown <neilb@suse.com> Acked-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
684f39b4cf
commit
a52458b48a
33 changed files with 261 additions and 343 deletions
|
@ -67,7 +67,7 @@ struct rpc_cred {
|
|||
#define RPCAUTH_CRED_HASHED 2
|
||||
#define RPCAUTH_CRED_NEGATIVE 3
|
||||
|
||||
struct rpc_cred *rpc_machine_cred(void);
|
||||
const struct cred *rpc_machine_cred(void);
|
||||
|
||||
/*
|
||||
* Client authentication handle
|
||||
|
@ -196,21 +196,5 @@ struct rpc_cred *get_rpccred(struct rpc_cred *cred)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_rpccred_rcu - get a reference to a cred using rcu-protected pointer
|
||||
* @cred: cred of which to take a reference
|
||||
*
|
||||
* In some cases, we may have a pointer to a credential to which we
|
||||
* want to take a reference, but don't already have one. Because these
|
||||
* objects are freed using RCU, we can access the cr_count while its
|
||||
* on its way to destruction and only take a reference if it's not already
|
||||
* zero.
|
||||
*/
|
||||
static inline struct rpc_cred *
|
||||
get_rpccred_rcu(struct rpc_cred *cred)
|
||||
{
|
||||
return get_rpccred(cred);
|
||||
}
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _LINUX_SUNRPC_AUTH_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue