avtab.c (9cdf083f981b8d37b3212400a359368661385099) | avtab.c (c376222960ae91d5ffb9197ee36771aaed1d9f90) |
---|---|
1/* 2 * Implementation of the access vector table type. 3 * 4 * Author : Stephen Smalley, <sds@epoch.ncsc.mil> 5 */ 6 7/* Updated: Frank Mayer <mayerf@tresys.com> and Karl MacMillan <kmacmillan@tresys.com> 8 * --- 22 unchanged lines hidden (view full) --- 31static struct kmem_cache *avtab_node_cachep; 32 33static struct avtab_node* 34avtab_insert_node(struct avtab *h, int hvalue, 35 struct avtab_node * prev, struct avtab_node * cur, 36 struct avtab_key *key, struct avtab_datum *datum) 37{ 38 struct avtab_node * newnode; | 1/* 2 * Implementation of the access vector table type. 3 * 4 * Author : Stephen Smalley, <sds@epoch.ncsc.mil> 5 */ 6 7/* Updated: Frank Mayer <mayerf@tresys.com> and Karl MacMillan <kmacmillan@tresys.com> 8 * --- 22 unchanged lines hidden (view full) --- 31static struct kmem_cache *avtab_node_cachep; 32 33static struct avtab_node* 34avtab_insert_node(struct avtab *h, int hvalue, 35 struct avtab_node * prev, struct avtab_node * cur, 36 struct avtab_key *key, struct avtab_datum *datum) 37{ 38 struct avtab_node * newnode; |
39 newnode = kmem_cache_alloc(avtab_node_cachep, GFP_KERNEL); | 39 newnode = kmem_cache_zalloc(avtab_node_cachep, GFP_KERNEL); |
40 if (newnode == NULL) 41 return NULL; | 40 if (newnode == NULL) 41 return NULL; |
42 memset(newnode, 0, sizeof(struct avtab_node)); | |
43 newnode->key = *key; 44 newnode->datum = *datum; 45 if (prev) { 46 newnode->next = prev->next; 47 prev->next = newnode; 48 } else { 49 newnode->next = h->htable[hvalue]; 50 h->htable[hvalue] = newnode; --- 405 unchanged lines hidden --- | 42 newnode->key = *key; 43 newnode->datum = *datum; 44 if (prev) { 45 newnode->next = prev->next; 46 prev->next = newnode; 47 } else { 48 newnode->next = h->htable[hvalue]; 49 h->htable[hvalue] = newnode; --- 405 unchanged lines hidden --- |