rbconn 269 net/netfilter/nf_conncount.c struct nf_conncount_rb *rbconn; rbconn 271 net/netfilter/nf_conncount.c rbconn = container_of(h, struct nf_conncount_rb, rcu_head); rbconn 272 net/netfilter/nf_conncount.c kmem_cache_free(conncount_rb_cachep, rbconn); rbconn 280 net/netfilter/nf_conncount.c struct nf_conncount_rb *rbconn; rbconn 283 net/netfilter/nf_conncount.c rbconn = gc_nodes[--gc_count]; rbconn 284 net/netfilter/nf_conncount.c spin_lock(&rbconn->list.list_lock); rbconn 285 net/netfilter/nf_conncount.c if (!rbconn->list.count) { rbconn 286 net/netfilter/nf_conncount.c rb_erase(&rbconn->node, root); rbconn 287 net/netfilter/nf_conncount.c call_rcu(&rbconn->rcu_head, __tree_nodes_free); rbconn 289 net/netfilter/nf_conncount.c spin_unlock(&rbconn->list.list_lock); rbconn 310 net/netfilter/nf_conncount.c struct nf_conncount_rb *rbconn; rbconn 322 net/netfilter/nf_conncount.c rbconn = rb_entry(*rbnode, struct nf_conncount_rb, node); rbconn 325 net/netfilter/nf_conncount.c diff = key_diff(key, rbconn->key, keylen); rbconn 333 net/netfilter/nf_conncount.c ret = nf_conncount_add(net, &rbconn->list, tuple, zone); rbconn 337 net/netfilter/nf_conncount.c count = rbconn->list.count; rbconn 345 net/netfilter/nf_conncount.c if (do_gc && nf_conncount_gc_list(net, &rbconn->list)) rbconn 346 net/netfilter/nf_conncount.c gc_nodes[gc_count++] = rbconn; rbconn 358 net/netfilter/nf_conncount.c rbconn = kmem_cache_alloc(conncount_rb_cachep, GFP_ATOMIC); rbconn 359 net/netfilter/nf_conncount.c if (rbconn == NULL) rbconn 364 net/netfilter/nf_conncount.c kmem_cache_free(conncount_rb_cachep, rbconn); rbconn 370 net/netfilter/nf_conncount.c memcpy(rbconn->key, key, sizeof(u32) * keylen); rbconn 372 net/netfilter/nf_conncount.c nf_conncount_list_init(&rbconn->list); rbconn 373 net/netfilter/nf_conncount.c list_add(&conn->node, &rbconn->list.head); rbconn 375 net/netfilter/nf_conncount.c rbconn->list.count = count; rbconn 377 net/netfilter/nf_conncount.c rb_link_node_rcu(&rbconn->node, parent, rbnode); rbconn 378 net/netfilter/nf_conncount.c rb_insert_color(&rbconn->node, root); rbconn 393 net/netfilter/nf_conncount.c struct nf_conncount_rb *rbconn; rbconn 404 net/netfilter/nf_conncount.c rbconn = rb_entry(parent, struct nf_conncount_rb, node); rbconn 406 net/netfilter/nf_conncount.c diff = key_diff(key, rbconn->key, keylen); rbconn 415 net/netfilter/nf_conncount.c nf_conncount_gc_list(net, &rbconn->list); rbconn 416 net/netfilter/nf_conncount.c return rbconn->list.count; rbconn 419 net/netfilter/nf_conncount.c spin_lock_bh(&rbconn->list.list_lock); rbconn 423 net/netfilter/nf_conncount.c if (rbconn->list.count == 0) { rbconn 424 net/netfilter/nf_conncount.c spin_unlock_bh(&rbconn->list.list_lock); rbconn 429 net/netfilter/nf_conncount.c ret = __nf_conncount_add(net, &rbconn->list, tuple, zone); rbconn 430 net/netfilter/nf_conncount.c spin_unlock_bh(&rbconn->list.list_lock); rbconn 434 net/netfilter/nf_conncount.c return rbconn->list.count; rbconn 447 net/netfilter/nf_conncount.c struct nf_conncount_rb *gc_nodes[CONNCOUNT_GC_MAX_NODES], *rbconn; rbconn 458 net/netfilter/nf_conncount.c rbconn = rb_entry(node, struct nf_conncount_rb, node); rbconn 459 net/netfilter/nf_conncount.c if (nf_conncount_gc_list(data->net, &rbconn->list)) rbconn 474 net/netfilter/nf_conncount.c rbconn = rb_entry(node, struct nf_conncount_rb, node); rbconn 477 net/netfilter/nf_conncount.c if (rbconn->list.count > 0) rbconn 480 net/netfilter/nf_conncount.c gc_nodes[gc_count++] = rbconn; rbconn 561 net/netfilter/nf_conncount.c struct nf_conncount_rb *rbconn; rbconn 565 net/netfilter/nf_conncount.c rbconn = rb_entry(node, struct nf_conncount_rb, node); rbconn 569 net/netfilter/nf_conncount.c nf_conncount_cache_free(&rbconn->list); rbconn 571 net/netfilter/nf_conncount.c kmem_cache_free(conncount_rb_cachep, rbconn);