summaryrefslogtreecommitdiffstats
path: root/kernel/cred.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2018-12-03 01:30:30 +0100
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2018-12-19 19:52:44 +0100
commit97d0fb239c041f5f99655af74812c3ab75cc4346 (patch)
tree767e0ff0ed918579b3afb8d9fcd1e37d4143d12b /kernel/cred.c
parentcred: add cred_fscmp() for comparing creds. (diff)
downloadlinux-97d0fb239c041f5f99655af74812c3ab75cc4346.tar.xz
linux-97d0fb239c041f5f99655af74812c3ab75cc4346.zip
cred: add get_cred_rcu()
Sometimes we want to opportunistically get a ref to a cred in an rcu_read_lock protected section. get_task_cred() does this, and NFS does as similar thing with its own credential structures. To prepare for NFS converting to use 'struct cred' more uniformly, define get_cred_rcu(), and use it in get_task_cred(). Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'kernel/cred.c')
-rw-r--r--kernel/cred.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/cred.c b/kernel/cred.c
index 0b3ac72bd717..ba60162249e8 100644
--- a/kernel/cred.c
+++ b/kernel/cred.c
@@ -195,7 +195,7 @@ const struct cred *get_task_cred(struct task_struct *task)
do {
cred = __task_cred((task));
BUG_ON(!cred);
- } while (!atomic_inc_not_zero(&((struct cred *)cred)->usage));
+ } while (!get_cred_rcu(cred));
rcu_read_unlock();
return cred;