Lines Matching refs:node

181 	struct avc_node *node;  in avc_get_hash_stats()  local
193 hlist_for_each_entry_rcu(node, head, list) in avc_get_hash_stats()
210 struct avc_node *node = container_of(rhead, struct avc_node, rhead); in avc_node_free() local
211 kmem_cache_free(avc_node_cachep, node); in avc_node_free()
215 static void avc_node_delete(struct avc_node *node) in avc_node_delete() argument
217 hlist_del_rcu(&node->list); in avc_node_delete()
218 call_rcu(&node->rhead, avc_node_free); in avc_node_delete()
222 static void avc_node_kill(struct avc_node *node) in avc_node_kill() argument
224 kmem_cache_free(avc_node_cachep, node); in avc_node_kill()
238 struct avc_node *node; in avc_reclaim_node() local
253 hlist_for_each_entry(node, head, list) { in avc_reclaim_node()
254 avc_node_delete(node); in avc_reclaim_node()
272 struct avc_node *node; in avc_alloc_node() local
274 node = kmem_cache_zalloc(avc_node_cachep, GFP_ATOMIC|__GFP_NOMEMALLOC); in avc_alloc_node()
275 if (!node) in avc_alloc_node()
278 INIT_HLIST_NODE(&node->list); in avc_alloc_node()
285 return node; in avc_alloc_node()
288 static void avc_node_populate(struct avc_node *node, u32 ssid, u32 tsid, u16 tclass, struct av_deci… in avc_node_populate() argument
290 node->ae.ssid = ssid; in avc_node_populate()
291 node->ae.tsid = tsid; in avc_node_populate()
292 node->ae.tclass = tclass; in avc_node_populate()
293 memcpy(&node->ae.avd, avd, sizeof(node->ae.avd)); in avc_node_populate()
298 struct avc_node *node, *ret = NULL; in avc_search_node() local
304 hlist_for_each_entry_rcu(node, head, list) { in avc_search_node()
305 if (ssid == node->ae.ssid && in avc_search_node()
306 tclass == node->ae.tclass && in avc_search_node()
307 tsid == node->ae.tsid) { in avc_search_node()
308 ret = node; in avc_search_node()
330 struct avc_node *node; in avc_lookup() local
333 node = avc_search_node(ssid, tsid, tclass); in avc_lookup()
335 if (node) in avc_lookup()
336 return node; in avc_lookup()
383 struct avc_node *pos, *node = NULL; in avc_insert() local
390 node = avc_alloc_node(); in avc_insert()
391 if (node) { in avc_insert()
396 avc_node_populate(node, ssid, tsid, tclass, avd); in avc_insert()
406 avc_node_replace(node, pos); in avc_insert()
410 hlist_add_head_rcu(&node->list, head); in avc_insert()
415 return node; in avc_insert()
537 struct avc_node *pos, *node, *orig = NULL; in avc_update_node() local
541 node = avc_alloc_node(); in avc_update_node()
542 if (!node) { in avc_update_node()
567 avc_node_kill(node); in avc_update_node()
575 avc_node_populate(node, ssid, tsid, tclass, &orig->ae.avd); in avc_update_node()
579 node->ae.avd.allowed |= perms; in avc_update_node()
583 node->ae.avd.allowed &= ~perms; in avc_update_node()
586 node->ae.avd.auditallow |= perms; in avc_update_node()
589 node->ae.avd.auditallow &= ~perms; in avc_update_node()
592 node->ae.avd.auditdeny |= perms; in avc_update_node()
595 node->ae.avd.auditdeny &= ~perms; in avc_update_node()
598 avc_node_replace(node, orig); in avc_update_node()
611 struct avc_node *node; in avc_flush() local
626 hlist_for_each_entry(node, head, list) in avc_flush()
627 avc_node_delete(node); in avc_flush()
718 struct avc_node *node; in avc_has_perm_noaudit() local
726 node = avc_lookup(ssid, tsid, tclass); in avc_has_perm_noaudit()
727 if (unlikely(!node)) in avc_has_perm_noaudit()
728 node = avc_compute_av(ssid, tsid, tclass, avd); in avc_has_perm_noaudit()
730 memcpy(avd, &node->ae.avd, sizeof(*avd)); in avc_has_perm_noaudit()