mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +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
|
@ -70,7 +70,7 @@ struct nfs_open_context {
|
|||
struct nfs_lock_context lock_context;
|
||||
fl_owner_t flock_owner;
|
||||
struct dentry *dentry;
|
||||
struct rpc_cred *cred;
|
||||
const struct cred *cred;
|
||||
struct rpc_cred *ll_cred; /* low-level cred - use to check for expiry */
|
||||
struct nfs4_state *state;
|
||||
fmode_t mode;
|
||||
|
@ -391,7 +391,7 @@ extern void nfs_setsecurity(struct inode *inode, struct nfs_fattr *fattr,
|
|||
struct nfs4_label *label);
|
||||
extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx);
|
||||
extern void put_nfs_open_context(struct nfs_open_context *ctx);
|
||||
extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, fmode_t mode);
|
||||
extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, const struct cred *cred, fmode_t mode);
|
||||
extern struct nfs_open_context *alloc_nfs_open_context(struct dentry *dentry, fmode_t f_mode, struct file *filp);
|
||||
extern void nfs_inode_attach_open_context(struct nfs_open_context *ctx);
|
||||
extern void nfs_file_set_open_context(struct file *filp, struct nfs_open_context *ctx);
|
||||
|
@ -462,7 +462,7 @@ static inline struct nfs_open_context *nfs_file_open_context(struct file *filp)
|
|||
return filp->private_data;
|
||||
}
|
||||
|
||||
static inline struct rpc_cred *nfs_file_cred(struct file *file)
|
||||
static inline const struct cred *nfs_file_cred(struct file *file)
|
||||
{
|
||||
if (file != NULL) {
|
||||
struct nfs_open_context *ctx =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue