Lines Matching refs:fle
87 static int flow_entry_valid(struct flow_cache_entry *fle)
89 if (atomic_read(&flow_cache_genid) != fle->genid)
91 if (fle->object && !fle->object->ops->check(fle->object))
96 static void flow_entry_kill(struct flow_cache_entry *fle)
98 if (fle->object)
99 fle->object->ops->delete(fle->object);
100 kmem_cache_free(flow_cachep, fle);
134 struct flow_cache_entry *fle;
142 hlist_for_each_entry_safe(fle, entry, tmp,
145 flow_entry_valid(fle)) {
149 hlist_del(&fle->u.hlist);
150 list_add_tail(&fle->u.gc_list, &gc_list);
220 struct flow_cache_entry *fle, *tfle;
228 fle = NULL;
243 fle = tfle;
248 if (unlikely(!fle)) {
252 fle = kmem_cache_alloc(flow_cachep, GFP_ATOMIC);
253 if (fle) {
254 fle->family = family;
255 fle->dir = dir;
256 memcpy(&fle->key, key, sizeof(*key));
257 fle->object = NULL;
258 hlist_add_head(&fle->u.hlist, &fcp->hash_table[hash]);
261 } else if (likely(fle->genid == atomic_read(&flow_cache_genid))) {
262 flo = fle->object;
268 } else if (fle->object) {
269 flo = fle->object;
271 fle->object = NULL;
276 if (fle) {
277 flo = fle->object;
278 fle->object = NULL;
281 if (fle) {
282 fle->genid = atomic_read(&flow_cache_genid);
284 fle->object = flo;
286 fle->genid--;
302 struct flow_cache_entry *fle;
309 hlist_for_each_entry_safe(fle, entry, tmp,
311 if (flow_entry_valid(fle))
315 hlist_del(&fle->u.hlist);
316 list_add_tail(&fle->u.gc_list, &gc_list);