diff options
| author | Chris Metcalf <cmetcalf@tilera.com> | 2010-08-06 10:37:02 -0400 | 
|---|---|---|
| committer | Chris Metcalf <cmetcalf@tilera.com> | 2010-08-06 10:37:02 -0400 | 
| commit | ab11b487402f97975f3ac1eeea09c82f4431481e (patch) | |
| tree | 86337c5cbbd2b0c4bd07c0847a1dc7de3d898147 /kernel/cred.c | |
| parent | 1c689cbcf2c2b7a35cd237abddd9206bb1b6fee1 (diff) | |
| parent | fc1caf6eafb30ea185720e29f7f5eccca61ecd60 (diff) | |
Merge branch 'master' into for-linus
Diffstat (limited to 'kernel/cred.c')
| -rw-r--r-- | kernel/cred.c | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/kernel/cred.c b/kernel/cred.c index a2d5504fbcc2..60bc8b1e32e6 100644 --- a/kernel/cred.c +++ b/kernel/cred.c  | |||
| @@ -209,6 +209,31 @@ void exit_creds(struct task_struct *tsk) | |||
| 209 | } | 209 | } | 
| 210 | } | 210 | } | 
| 211 | 211 | ||
| 212 | /** | ||
| 213 | * get_task_cred - Get another task's objective credentials | ||
| 214 | * @task: The task to query | ||
| 215 | * | ||
| 216 | * Get the objective credentials of a task, pinning them so that they can't go | ||
| 217 | * away. Accessing a task's credentials directly is not permitted. | ||
| 218 | * | ||
| 219 | * The caller must also make sure task doesn't get deleted, either by holding a | ||
| 220 | * ref on task or by holding tasklist_lock to prevent it from being unlinked. | ||
| 221 | */ | ||
| 222 | const struct cred *get_task_cred(struct task_struct *task) | ||
| 223 | { | ||
| 224 | const struct cred *cred; | ||
| 225 | |||
| 226 | rcu_read_lock(); | ||
| 227 | |||
| 228 | do { | ||
| 229 | cred = __task_cred((task)); | ||
| 230 | BUG_ON(!cred); | ||
| 231 | } while (!atomic_inc_not_zero(&((struct cred *)cred)->usage)); | ||
| 232 | |||
| 233 | rcu_read_unlock(); | ||
| 234 | return cred; | ||
| 235 | } | ||
| 236 | |||
| 212 | /* | 237 | /* | 
| 213 | * Allocate blank credentials, such that the credentials can be filled in at a | 238 | * Allocate blank credentials, such that the credentials can be filled in at a | 
| 214 | * later date without risk of ENOMEM. | 239 | * later date without risk of ENOMEM. | 
