Commit 97b7702c authored by David Howells's avatar David Howells Committed by James Morris

CRED: Wrap task credential accesses in the Coda filesystem

Wrap access to task credentials so that they can be separated more easily from
the task_struct during the introduction of COW creds.

Change most current->(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().

Change some task->e?[ug]id to task_e?[ug]id().  In some places it makes more
sense to use RCU directly rather than a convenient wrapper; these will be
addressed by later patches.
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Reviewed-by: default avatarJames Morris <jmorris@namei.org>
Acked-by: default avatarSerge Hallyn <serue@us.ibm.com>
Cc: Jan Harkes <jaharkes@cs.cmu.edu>
Cc: codalist@coda.cs.cmu.edu
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent a001e5b5
...@@ -32,8 +32,8 @@ void coda_cache_enter(struct inode *inode, int mask) ...@@ -32,8 +32,8 @@ void coda_cache_enter(struct inode *inode, int mask)
struct coda_inode_info *cii = ITOC(inode); struct coda_inode_info *cii = ITOC(inode);
cii->c_cached_epoch = atomic_read(&permission_epoch); cii->c_cached_epoch = atomic_read(&permission_epoch);
if (cii->c_uid != current->fsuid) { if (cii->c_uid != current_fsuid()) {
cii->c_uid = current->fsuid; cii->c_uid = current_fsuid();
cii->c_cached_perm = mask; cii->c_cached_perm = mask;
} else } else
cii->c_cached_perm |= mask; cii->c_cached_perm |= mask;
...@@ -60,7 +60,7 @@ int coda_cache_check(struct inode *inode, int mask) ...@@ -60,7 +60,7 @@ int coda_cache_check(struct inode *inode, int mask)
int hit; int hit;
hit = (mask & cii->c_cached_perm) == mask && hit = (mask & cii->c_cached_perm) == mask &&
cii->c_uid == current->fsuid && cii->c_uid == current_fsuid() &&
cii->c_cached_epoch == atomic_read(&permission_epoch); cii->c_cached_epoch == atomic_read(&permission_epoch);
return hit; return hit;
......
...@@ -52,7 +52,7 @@ static void *alloc_upcall(int opcode, int size) ...@@ -52,7 +52,7 @@ static void *alloc_upcall(int opcode, int size)
inp->ih.opcode = opcode; inp->ih.opcode = opcode;
inp->ih.pid = current->pid; inp->ih.pid = current->pid;
inp->ih.pgid = task_pgrp_nr(current); inp->ih.pgid = task_pgrp_nr(current);
inp->ih.uid = current->fsuid; inp->ih.uid = current_fsuid();
return (void*)inp; return (void*)inp;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment