kernel/user.c: clean up some leftover code
The out_unlock label is misleading; no unlocking happens after it, so just return NULL directly. Also, nothing between the kmem_cache_zalloc() that creates new and the two key_put() can initialize new->uid_keyring or new->session_keyring, so those calls are no-ops. Link: http://lkml.kernel.org/r/20190424200404.9114-1-linux@rasmusvillemoes.dk Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>hifive-unleashed-5.2
parent
e02c9b0d65
commit
6c4e121fda
|
@ -185,7 +185,7 @@ struct user_struct *alloc_uid(kuid_t uid)
|
||||||
if (!up) {
|
if (!up) {
|
||||||
new = kmem_cache_zalloc(uid_cachep, GFP_KERNEL);
|
new = kmem_cache_zalloc(uid_cachep, GFP_KERNEL);
|
||||||
if (!new)
|
if (!new)
|
||||||
goto out_unlock;
|
return NULL;
|
||||||
|
|
||||||
new->uid = uid;
|
new->uid = uid;
|
||||||
refcount_set(&new->__count, 1);
|
refcount_set(&new->__count, 1);
|
||||||
|
@ -199,8 +199,6 @@ struct user_struct *alloc_uid(kuid_t uid)
|
||||||
spin_lock_irq(&uidhash_lock);
|
spin_lock_irq(&uidhash_lock);
|
||||||
up = uid_hash_find(uid, hashent);
|
up = uid_hash_find(uid, hashent);
|
||||||
if (up) {
|
if (up) {
|
||||||
key_put(new->uid_keyring);
|
|
||||||
key_put(new->session_keyring);
|
|
||||||
kmem_cache_free(uid_cachep, new);
|
kmem_cache_free(uid_cachep, new);
|
||||||
} else {
|
} else {
|
||||||
uid_hash_insert(new, hashent);
|
uid_hash_insert(new, hashent);
|
||||||
|
@ -210,9 +208,6 @@ struct user_struct *alloc_uid(kuid_t uid)
|
||||||
}
|
}
|
||||||
|
|
||||||
return up;
|
return up;
|
||||||
|
|
||||||
out_unlock:
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init uid_cache_init(void)
|
static int __init uid_cache_init(void)
|
||||||
|
|
Loading…
Reference in New Issue