Lines Matching refs:seq

476 	struct name_seq *seq = nametbl_find_seq(net, type);  in tipc_nametbl_insert_publ()  local
486 if (!seq) in tipc_nametbl_insert_publ()
487 seq = tipc_nameseq_create(type, &tn->nametbl->seq_hlist[index]); in tipc_nametbl_insert_publ()
488 if (!seq) in tipc_nametbl_insert_publ()
491 spin_lock_bh(&seq->lock); in tipc_nametbl_insert_publ()
492 publ = tipc_nameseq_insert_publ(net, seq, type, lower, upper, in tipc_nametbl_insert_publ()
494 spin_unlock_bh(&seq->lock); in tipc_nametbl_insert_publ()
503 struct name_seq *seq = nametbl_find_seq(net, type); in tipc_nametbl_remove_publ() local
505 if (!seq) in tipc_nametbl_remove_publ()
508 spin_lock_bh(&seq->lock); in tipc_nametbl_remove_publ()
509 publ = tipc_nameseq_remove_publ(net, seq, lower, node, ref, key); in tipc_nametbl_remove_publ()
510 if (!seq->first_free && list_empty(&seq->subscriptions)) { in tipc_nametbl_remove_publ()
511 hlist_del_init_rcu(&seq->ns_list); in tipc_nametbl_remove_publ()
512 kfree(seq->sseqs); in tipc_nametbl_remove_publ()
513 spin_unlock_bh(&seq->lock); in tipc_nametbl_remove_publ()
514 kfree_rcu(seq, rcu); in tipc_nametbl_remove_publ()
517 spin_unlock_bh(&seq->lock); in tipc_nametbl_remove_publ()
541 struct name_seq *seq; in tipc_nametbl_translate() local
549 seq = nametbl_find_seq(net, type); in tipc_nametbl_translate()
550 if (unlikely(!seq)) in tipc_nametbl_translate()
552 spin_lock_bh(&seq->lock); in tipc_nametbl_translate()
553 sseq = nameseq_find_subseq(seq, instance); in tipc_nametbl_translate()
603 spin_unlock_bh(&seq->lock); in tipc_nametbl_translate()
625 struct name_seq *seq; in tipc_nametbl_mc_translate() local
632 seq = nametbl_find_seq(net, type); in tipc_nametbl_mc_translate()
633 if (!seq) in tipc_nametbl_mc_translate()
636 spin_lock_bh(&seq->lock); in tipc_nametbl_mc_translate()
637 sseq = seq->sseqs + nameseq_locate_subseq(seq, lower); in tipc_nametbl_mc_translate()
638 sseq_stop = seq->sseqs + seq->first_free; in tipc_nametbl_mc_translate()
654 spin_unlock_bh(&seq->lock); in tipc_nametbl_mc_translate()
734 u32 type = s->seq.type; in tipc_nametbl_subscribe()
736 struct name_seq *seq; in tipc_nametbl_subscribe() local
739 seq = nametbl_find_seq(s->net, type); in tipc_nametbl_subscribe()
740 if (!seq) in tipc_nametbl_subscribe()
741 seq = tipc_nameseq_create(type, &tn->nametbl->seq_hlist[index]); in tipc_nametbl_subscribe()
742 if (seq) { in tipc_nametbl_subscribe()
743 spin_lock_bh(&seq->lock); in tipc_nametbl_subscribe()
744 tipc_nameseq_subscribe(seq, s); in tipc_nametbl_subscribe()
745 spin_unlock_bh(&seq->lock); in tipc_nametbl_subscribe()
748 s->seq.type, s->seq.lower, s->seq.upper); in tipc_nametbl_subscribe()
759 struct name_seq *seq; in tipc_nametbl_unsubscribe() local
762 seq = nametbl_find_seq(s->net, s->seq.type); in tipc_nametbl_unsubscribe()
763 if (seq != NULL) { in tipc_nametbl_unsubscribe()
764 spin_lock_bh(&seq->lock); in tipc_nametbl_unsubscribe()
766 if (!seq->first_free && list_empty(&seq->subscriptions)) { in tipc_nametbl_unsubscribe()
767 hlist_del_init_rcu(&seq->ns_list); in tipc_nametbl_unsubscribe()
768 kfree(seq->sseqs); in tipc_nametbl_unsubscribe()
769 spin_unlock_bh(&seq->lock); in tipc_nametbl_unsubscribe()
770 kfree_rcu(seq, rcu); in tipc_nametbl_unsubscribe()
772 spin_unlock_bh(&seq->lock); in tipc_nametbl_unsubscribe()
804 static void tipc_purge_publications(struct net *net, struct name_seq *seq) in tipc_purge_publications() argument
810 spin_lock_bh(&seq->lock); in tipc_purge_publications()
811 sseq = seq->sseqs; in tipc_purge_publications()
814 tipc_nameseq_remove_publ(net, seq, publ->lower, publ->node, in tipc_purge_publications()
818 hlist_del_init_rcu(&seq->ns_list); in tipc_purge_publications()
819 kfree(seq->sseqs); in tipc_purge_publications()
820 spin_unlock_bh(&seq->lock); in tipc_purge_publications()
822 kfree_rcu(seq, rcu); in tipc_purge_publications()
828 struct name_seq *seq; in tipc_nametbl_stop() local
841 hlist_for_each_entry_rcu(seq, seq_head, ns_list) { in tipc_nametbl_stop()
842 tipc_purge_publications(net, seq); in tipc_nametbl_stop()
853 struct name_seq *seq, in __tipc_nl_add_nametable_publ() argument
875 hdr = genlmsg_put(msg->skb, msg->portid, msg->seq, in __tipc_nl_add_nametable_publ()
889 if (nla_put_u32(msg->skb, TIPC_NLA_PUBL_TYPE, seq->type)) in __tipc_nl_add_nametable_publ()
922 static int __tipc_nl_subseq_list(struct tipc_nl_msg *msg, struct name_seq *seq, in __tipc_nl_subseq_list() argument
930 sseq_start = nameseq_find_subseq(seq, *last_lower); in __tipc_nl_subseq_list()
934 sseq_start = seq->sseqs; in __tipc_nl_subseq_list()
937 for (sseq = sseq_start; sseq != &seq->sseqs[seq->first_free]; sseq++) { in __tipc_nl_subseq_list()
938 err = __tipc_nl_add_nametable_publ(msg, seq, sseq, last_publ); in __tipc_nl_subseq_list()
954 struct name_seq *seq = NULL; in tipc_nl_seq_list() local
967 seq = nametbl_find_seq(net, *last_type); in tipc_nl_seq_list()
968 if (!seq) in tipc_nl_seq_list()
971 hlist_for_each_entry_rcu(seq, seq_head, ns_list) in tipc_nl_seq_list()
973 if (!seq) in tipc_nl_seq_list()
977 hlist_for_each_entry_from_rcu(seq, ns_list) { in tipc_nl_seq_list()
978 spin_lock_bh(&seq->lock); in tipc_nl_seq_list()
979 err = __tipc_nl_subseq_list(msg, seq, last_lower, in tipc_nl_seq_list()
983 *last_type = seq->type; in tipc_nl_seq_list()
984 spin_unlock_bh(&seq->lock); in tipc_nl_seq_list()
987 spin_unlock_bh(&seq->lock); in tipc_nl_seq_list()
1009 msg.seq = cb->nlh->nlmsg_seq; in tipc_nl_name_table_dump()