Lines Matching refs:key
130 struct key *key = in key_gc_unused_keys() local
131 list_entry(keys->next, struct key, graveyard_link); in key_gc_unused_keys()
132 list_del(&key->graveyard_link); in key_gc_unused_keys()
134 kdebug("- %u", key->serial); in key_gc_unused_keys()
135 key_check(key); in key_gc_unused_keys()
138 if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags) && in key_gc_unused_keys()
139 !test_bit(KEY_FLAG_NEGATIVE, &key->flags) && in key_gc_unused_keys()
140 key->type->destroy) in key_gc_unused_keys()
141 key->type->destroy(key); in key_gc_unused_keys()
143 security_key_free(key); in key_gc_unused_keys()
146 if (test_bit(KEY_FLAG_IN_QUOTA, &key->flags)) { in key_gc_unused_keys()
147 spin_lock(&key->user->lock); in key_gc_unused_keys()
148 key->user->qnkeys--; in key_gc_unused_keys()
149 key->user->qnbytes -= key->quotalen; in key_gc_unused_keys()
150 spin_unlock(&key->user->lock); in key_gc_unused_keys()
153 atomic_dec(&key->user->nkeys); in key_gc_unused_keys()
154 if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) in key_gc_unused_keys()
155 atomic_dec(&key->user->nikeys); in key_gc_unused_keys()
157 key_user_put(key->user); in key_gc_unused_keys()
159 kfree(key->description); in key_gc_unused_keys()
162 key->magic = KEY_DEBUG_MAGIC_X; in key_gc_unused_keys()
164 kmem_cache_free(key_jar, key); in key_gc_unused_keys()
188 struct key *key; in key_garbage_collector() local
220 key = rb_entry(cursor, struct key, serial_node); in key_garbage_collector()
223 if (atomic_read(&key->usage) == 0) in key_garbage_collector()
227 if (key->type == key_gc_dead_keytype) { in key_garbage_collector()
229 set_bit(KEY_FLAG_DEAD, &key->flags); in key_garbage_collector()
230 key->perm = 0; in key_garbage_collector()
236 if (key->expiry > limit && key->expiry < new_timer) { in key_garbage_collector()
238 key_serial(key), key->expiry - limit); in key_garbage_collector()
239 new_timer = key->expiry; in key_garbage_collector()
244 if (key->type == key_gc_dead_keytype) in key_garbage_collector()
249 if (key->type == &key_type_keyring) in key_garbage_collector()
254 if (key->type == key_gc_dead_keytype) in key_garbage_collector()
329 kdebug("unrefd key %d", key->serial); in key_garbage_collector()
330 rb_erase(&key->serial_node, &key_serial_tree); in key_garbage_collector()
333 list_add_tail(&key->graveyard_link, &graveyard); in key_garbage_collector()
344 keyring_gc(key, limit); in key_garbage_collector()
352 kdebug("destroy key %d", key->serial); in key_garbage_collector()
353 down_write(&key->sem); in key_garbage_collector()
354 key->type = &key_type_dead; in key_garbage_collector()
356 key_gc_dead_keytype->destroy(key); in key_garbage_collector()
357 memset(&key->payload, KEY_DESTROY, sizeof(key->payload)); in key_garbage_collector()
358 up_write(&key->sem); in key_garbage_collector()