Lines Matching refs:key
72 void key_set_expiry(struct key *key, time64_t expiry) in key_set_expiry() argument
74 key->expiry = expiry; in key_set_expiry()
76 if (!(key->type->flags & KEY_TYPE_INSTANT_REAP)) in key_set_expiry()
138 struct key *key = in key_gc_unused_keys() local
139 list_entry(keys->next, struct key, graveyard_link); in key_gc_unused_keys()
140 short state = key->state; in key_gc_unused_keys()
142 list_del(&key->graveyard_link); in key_gc_unused_keys()
144 kdebug("- %u", key->serial); in key_gc_unused_keys()
145 key_check(key); in key_gc_unused_keys()
148 remove_watch_list(key->watchers, key->serial); in key_gc_unused_keys()
149 key->watchers = NULL; in key_gc_unused_keys()
153 if (state == KEY_IS_POSITIVE && key->type->destroy) in key_gc_unused_keys()
154 key->type->destroy(key); in key_gc_unused_keys()
156 security_key_free(key); in key_gc_unused_keys()
158 atomic_dec(&key->user->nkeys); in key_gc_unused_keys()
160 atomic_dec(&key->user->nikeys); in key_gc_unused_keys()
162 key_user_put(key->user); in key_gc_unused_keys()
163 key_put_tag(key->domain_tag); in key_gc_unused_keys()
164 kfree(key->description); in key_gc_unused_keys()
166 memzero_explicit(key, sizeof(*key)); in key_gc_unused_keys()
167 kmem_cache_free(key_jar, key); in key_gc_unused_keys()
190 struct key *key; in key_garbage_collector() local
218 key = rb_entry(cursor, struct key, serial_node); in key_garbage_collector()
221 if (refcount_read(&key->usage) == 0) in key_garbage_collector()
225 if (key->type == key_gc_dead_keytype) { in key_garbage_collector()
227 set_bit(KEY_FLAG_DEAD, &key->flags); in key_garbage_collector()
228 key->perm = 0; in key_garbage_collector()
230 } else if (key->type == &key_type_keyring && in key_garbage_collector()
231 key->restrict_link) { in key_garbage_collector()
236 expiry = key->expiry; in key_garbage_collector()
238 if (!(key->type->flags & KEY_TYPE_INSTANT_REAP)) in key_garbage_collector()
242 key_serial(key), key->expiry - limit); in key_garbage_collector()
243 new_timer = key->expiry; in key_garbage_collector()
248 if (key->type == key_gc_dead_keytype) in key_garbage_collector()
253 if (key->type == &key_type_keyring) in key_garbage_collector()
258 if (key->type == key_gc_dead_keytype) in key_garbage_collector()
333 kdebug("unrefd key %d", key->serial); in key_garbage_collector()
334 rb_erase(&key->serial_node, &key_serial_tree); in key_garbage_collector()
337 list_add_tail(&key->graveyard_link, &graveyard); in key_garbage_collector()
346 keyring_restriction_gc(key, key_gc_dead_keytype); in key_garbage_collector()
356 keyring_gc(key, limit); in key_garbage_collector()
364 kdebug("destroy key %d", key->serial); in key_garbage_collector()
365 down_write(&key->sem); in key_garbage_collector()
366 key->type = &key_type_dead; in key_garbage_collector()
368 key_gc_dead_keytype->destroy(key); in key_garbage_collector()
369 memset(&key->payload, KEY_DESTROY, sizeof(key->payload)); in key_garbage_collector()
370 up_write(&key->sem); in key_garbage_collector()