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>
This commit is contained in:
Родитель
e02c9b0d65
Коммит
6c4e121fda
|
@ -185,7 +185,7 @@ struct user_struct *alloc_uid(kuid_t uid)
|
|||
if (!up) {
|
||||
new = kmem_cache_zalloc(uid_cachep, GFP_KERNEL);
|
||||
if (!new)
|
||||
goto out_unlock;
|
||||
return NULL;
|
||||
|
||||
new->uid = uid;
|
||||
refcount_set(&new->__count, 1);
|
||||
|
@ -199,8 +199,6 @@ struct user_struct *alloc_uid(kuid_t uid)
|
|||
spin_lock_irq(&uidhash_lock);
|
||||
up = uid_hash_find(uid, hashent);
|
||||
if (up) {
|
||||
key_put(new->uid_keyring);
|
||||
key_put(new->session_keyring);
|
||||
kmem_cache_free(uid_cachep, new);
|
||||
} else {
|
||||
uid_hash_insert(new, hashent);
|
||||
|
@ -210,9 +208,6 @@ struct user_struct *alloc_uid(kuid_t uid)
|
|||
}
|
||||
|
||||
return up;
|
||||
|
||||
out_unlock:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int __init uid_cache_init(void)
|
||||
|
|
Загрузка…
Ссылка в новой задаче