Lines Matching refs:ntbl
75 static void nested_table_free(union nested_table *ntbl, unsigned int size)
81 ntbl = rcu_dereference_protected(ntbl->table, 1);
82 if (!ntbl)
88 nested_table_free(ntbl + i, size);
91 kfree(ntbl);
98 union nested_table *ntbl;
101 ntbl = nested_table_top(tbl);
104 nested_table_free(ntbl + i, size);
106 kfree(ntbl);
126 union nested_table *ntbl;
129 ntbl = rcu_dereference(*prev);
130 if (ntbl)
131 return ntbl;
133 ntbl = kzalloc(PAGE_SIZE, GFP_ATOMIC);
135 if (ntbl && leaf) {
136 for (i = 0; i < PAGE_SIZE / sizeof(ntbl[0]); i++)
137 INIT_RHT_NULLS_HEAD(ntbl[i].bucket);
140 if (cmpxchg((union nested_table **)prev, NULL, ntbl) == NULL)
141 return ntbl;
143 kfree(ntbl);
1185 union nested_table *ntbl;
1187 ntbl = nested_table_top(tbl);
1188 ntbl = rht_dereference_bucket_rcu(ntbl[index].table, tbl, hash);
1191 while (ntbl && size > (1 << shift)) {
1193 ntbl = rht_dereference_bucket_rcu(ntbl[index].table,
1199 if (!ntbl)
1202 return &ntbl[subhash].bucket;
1224 union nested_table *ntbl;
1226 ntbl = nested_table_top(tbl);
1228 ntbl = nested_table_alloc(ht, &ntbl[index].table,
1231 while (ntbl && size > (1 << shift)) {
1235 ntbl = nested_table_alloc(ht, &ntbl[index].table,
1239 if (!ntbl)
1242 return &ntbl[hash].bucket;