Lines Matching refs:klist

144 	struct keyring_list *klist;  in keyring_destroy()  local
157 klist = rcu_dereference_check(keyring->payload.subscriptions, in keyring_destroy()
159 if (klist) { in keyring_destroy()
160 for (loop = klist->nkeys - 1; loop >= 0; loop--) in keyring_destroy()
161 key_put(klist->keys[loop]); in keyring_destroy()
162 kfree(klist); in keyring_destroy()
171 struct keyring_list *klist; in keyring_describe() local
180 klist = rcu_dereference(keyring->payload.subscriptions); in keyring_describe()
181 if (klist) in keyring_describe()
182 seq_printf(m, ": %u/%u", klist->nkeys, klist->maxkeys); in keyring_describe()
197 struct keyring_list *klist; in keyring_read() local
203 klist = rcu_dereference_locked_keyring(keyring); in keyring_read()
204 if (klist) { in keyring_read()
206 qty = klist->nkeys * sizeof(key_serial_t); in keyring_read()
216 for (loop = 0; loop < klist->nkeys; loop++) { in keyring_read()
217 key = klist->keys[loop]; in keyring_read()
519 struct keyring_list *klist; in __keyring_search_one() local
529 klist = rcu_dereference(keyring->payload.subscriptions); in __keyring_search_one()
530 if (klist) { in __keyring_search_one()
531 nkeys = klist->nkeys; in __keyring_search_one()
534 key = klist->keys[loop]; in __keyring_search_one()
710 struct keyring_list *klist = in keyring_unlink_rcu_disposal() local
713 if (klist->delkey != USHRT_MAX) in keyring_unlink_rcu_disposal()
714 key_put(klist->keys[klist->delkey]); in keyring_unlink_rcu_disposal()
715 kfree(klist); in keyring_unlink_rcu_disposal()
725 struct keyring_list *klist, *nklist; in __key_link_begin() local
747 klist = rcu_dereference_locked_keyring(keyring); in __key_link_begin()
750 if (klist && klist->nkeys > 0) { in __key_link_begin()
751 for (loop = klist->nkeys - 1; loop >= 0; loop--) { in __key_link_begin()
752 if (klist->keys[loop]->type == type && in __key_link_begin()
753 strcmp(klist->keys[loop]->description, in __key_link_begin()
758 size = sizeof(struct key *) * klist->maxkeys; in __key_link_begin()
759 size += sizeof(*klist); in __key_link_begin()
763 nklist = kmemdup(klist, size, GFP_KERNEL); in __key_link_begin()
768 klist->delkey = nklist->delkey = loop; in __key_link_begin()
781 if (klist && klist->nkeys < klist->maxkeys) { in __key_link_begin()
788 if (klist) in __key_link_begin()
789 max += klist->maxkeys; in __key_link_begin()
794 size = sizeof(*klist) + sizeof(struct key *) * max; in __key_link_begin()
804 if (klist) { in __key_link_begin()
805 memcpy(nklist->keys, klist->keys, in __key_link_begin()
806 sizeof(struct key *) * klist->nkeys); in __key_link_begin()
807 nklist->delkey = klist->nkeys; in __key_link_begin()
808 nklist->nkeys = klist->nkeys + 1; in __key_link_begin()
809 klist->delkey = USHRT_MAX; in __key_link_begin()
864 struct keyring_list *klist, *nklist; in __key_link() local
871 klist = rcu_dereference_locked_keyring(keyring); in __key_link()
887 if (klist) { in __key_link()
889 klist->delkey, klist->nkeys, klist->maxkeys); in __key_link()
890 call_rcu(&klist->rcu, keyring_unlink_rcu_disposal); in __key_link()
894 klist->keys[klist->nkeys] = key; in __key_link()
896 klist->nkeys++; in __key_link()
985 struct keyring_list *klist, *nklist; in key_unlink() local
997 klist = rcu_dereference_locked_keyring(keyring); in key_unlink()
998 if (klist) { in key_unlink()
1000 for (loop = 0; loop < klist->nkeys; loop++) in key_unlink()
1001 if (klist->keys[loop] == key) in key_unlink()
1011 nklist = kmalloc(sizeof(*klist) + in key_unlink()
1012 sizeof(struct key *) * klist->maxkeys, in key_unlink()
1016 nklist->maxkeys = klist->maxkeys; in key_unlink()
1017 nklist->nkeys = klist->nkeys - 1; in key_unlink()
1021 &klist->keys[0], in key_unlink()
1026 &klist->keys[loop + 1], in key_unlink()
1038 klist->delkey = loop; in key_unlink()
1039 call_rcu(&klist->rcu, keyring_unlink_rcu_disposal); in key_unlink()
1058 struct keyring_list *klist; in keyring_clear_rcu_disposal() local
1061 klist = container_of(rcu, struct keyring_list, rcu); in keyring_clear_rcu_disposal()
1063 for (loop = klist->nkeys - 1; loop >= 0; loop--) in keyring_clear_rcu_disposal()
1064 key_put(klist->keys[loop]); in keyring_clear_rcu_disposal()
1066 kfree(klist); in keyring_clear_rcu_disposal()
1079 struct keyring_list *klist; in keyring_clear() local
1087 klist = rcu_dereference_locked_keyring(keyring); in keyring_clear()
1088 if (klist) { in keyring_clear()
1100 if (klist) in keyring_clear()
1101 call_rcu(&klist->rcu, keyring_clear_rcu_disposal); in keyring_clear()
1117 struct keyring_list *klist; in keyring_revoke() local
1119 klist = rcu_dereference_locked_keyring(keyring); in keyring_revoke()
1124 if (klist) { in keyring_revoke()
1126 call_rcu(&klist->rcu, keyring_clear_rcu_disposal); in keyring_revoke()
1149 struct keyring_list *klist, *new; in keyring_gc() local
1157 klist = rcu_dereference_locked_keyring(keyring); in keyring_gc()
1158 if (!klist) in keyring_gc()
1163 for (loop = klist->nkeys - 1; loop >= 0; loop--) in keyring_gc()
1164 if (!key_is_dead(klist->keys[loop], limit)) in keyring_gc()
1167 if (keep == klist->nkeys) in keyring_gc()
1184 for (loop = klist->nkeys - 1; loop >= 0; loop--) { in keyring_gc()
1185 key = klist->keys[loop]; in keyring_gc()
1208 call_rcu(&klist->rcu, keyring_clear_rcu_disposal); in keyring_gc()