Lines Matching refs:seq

466 	struct name_seq *seq = nametbl_find_seq(net, type);  in tipc_nametbl_insert_publ()  local
476 if (!seq) in tipc_nametbl_insert_publ()
477 seq = tipc_nameseq_create(type, &tn->nametbl->seq_hlist[index]); in tipc_nametbl_insert_publ()
478 if (!seq) in tipc_nametbl_insert_publ()
481 spin_lock_bh(&seq->lock); in tipc_nametbl_insert_publ()
482 publ = tipc_nameseq_insert_publ(net, seq, type, lower, upper, in tipc_nametbl_insert_publ()
484 spin_unlock_bh(&seq->lock); in tipc_nametbl_insert_publ()
493 struct name_seq *seq = nametbl_find_seq(net, type); in tipc_nametbl_remove_publ() local
495 if (!seq) in tipc_nametbl_remove_publ()
498 spin_lock_bh(&seq->lock); in tipc_nametbl_remove_publ()
499 publ = tipc_nameseq_remove_publ(net, seq, lower, node, ref, key); in tipc_nametbl_remove_publ()
500 if (!seq->first_free && list_empty(&seq->subscriptions)) { in tipc_nametbl_remove_publ()
501 hlist_del_init_rcu(&seq->ns_list); in tipc_nametbl_remove_publ()
502 kfree(seq->sseqs); in tipc_nametbl_remove_publ()
503 spin_unlock_bh(&seq->lock); in tipc_nametbl_remove_publ()
504 kfree_rcu(seq, rcu); in tipc_nametbl_remove_publ()
507 spin_unlock_bh(&seq->lock); in tipc_nametbl_remove_publ()
531 struct name_seq *seq; in tipc_nametbl_translate() local
539 seq = nametbl_find_seq(net, type); in tipc_nametbl_translate()
540 if (unlikely(!seq)) in tipc_nametbl_translate()
542 spin_lock_bh(&seq->lock); in tipc_nametbl_translate()
543 sseq = nameseq_find_subseq(seq, instance); in tipc_nametbl_translate()
593 spin_unlock_bh(&seq->lock); in tipc_nametbl_translate()
615 struct name_seq *seq; in tipc_nametbl_mc_translate() local
622 seq = nametbl_find_seq(net, type); in tipc_nametbl_mc_translate()
623 if (!seq) in tipc_nametbl_mc_translate()
626 spin_lock_bh(&seq->lock); in tipc_nametbl_mc_translate()
627 sseq = seq->sseqs + nameseq_locate_subseq(seq, lower); in tipc_nametbl_mc_translate()
628 sseq_stop = seq->sseqs + seq->first_free; in tipc_nametbl_mc_translate()
644 spin_unlock_bh(&seq->lock); in tipc_nametbl_mc_translate()
724 u32 type = s->seq.type; in tipc_nametbl_subscribe()
726 struct name_seq *seq; in tipc_nametbl_subscribe() local
729 seq = nametbl_find_seq(s->net, type); in tipc_nametbl_subscribe()
730 if (!seq) in tipc_nametbl_subscribe()
731 seq = tipc_nameseq_create(type, &tn->nametbl->seq_hlist[index]); in tipc_nametbl_subscribe()
732 if (seq) { in tipc_nametbl_subscribe()
733 spin_lock_bh(&seq->lock); in tipc_nametbl_subscribe()
734 tipc_nameseq_subscribe(seq, s); in tipc_nametbl_subscribe()
735 spin_unlock_bh(&seq->lock); in tipc_nametbl_subscribe()
738 s->seq.type, s->seq.lower, s->seq.upper); in tipc_nametbl_subscribe()
749 struct name_seq *seq; in tipc_nametbl_unsubscribe() local
752 seq = nametbl_find_seq(s->net, s->seq.type); in tipc_nametbl_unsubscribe()
753 if (seq != NULL) { in tipc_nametbl_unsubscribe()
754 spin_lock_bh(&seq->lock); in tipc_nametbl_unsubscribe()
756 if (!seq->first_free && list_empty(&seq->subscriptions)) { in tipc_nametbl_unsubscribe()
757 hlist_del_init_rcu(&seq->ns_list); in tipc_nametbl_unsubscribe()
758 kfree(seq->sseqs); in tipc_nametbl_unsubscribe()
759 spin_unlock_bh(&seq->lock); in tipc_nametbl_unsubscribe()
760 kfree_rcu(seq, rcu); in tipc_nametbl_unsubscribe()
762 spin_unlock_bh(&seq->lock); in tipc_nametbl_unsubscribe()
794 static void tipc_purge_publications(struct net *net, struct name_seq *seq) in tipc_purge_publications() argument
800 spin_lock_bh(&seq->lock); in tipc_purge_publications()
801 sseq = seq->sseqs; in tipc_purge_publications()
804 tipc_nameseq_remove_publ(net, seq, publ->lower, publ->node, in tipc_purge_publications()
808 hlist_del_init_rcu(&seq->ns_list); in tipc_purge_publications()
809 kfree(seq->sseqs); in tipc_purge_publications()
810 spin_unlock_bh(&seq->lock); in tipc_purge_publications()
812 kfree_rcu(seq, rcu); in tipc_purge_publications()
818 struct name_seq *seq; in tipc_nametbl_stop() local
831 hlist_for_each_entry_rcu(seq, seq_head, ns_list) { in tipc_nametbl_stop()
832 tipc_purge_publications(net, seq); in tipc_nametbl_stop()
843 struct name_seq *seq, in __tipc_nl_add_nametable_publ() argument
865 hdr = genlmsg_put(msg->skb, msg->portid, msg->seq, in __tipc_nl_add_nametable_publ()
879 if (nla_put_u32(msg->skb, TIPC_NLA_PUBL_TYPE, seq->type)) in __tipc_nl_add_nametable_publ()
912 static int __tipc_nl_subseq_list(struct tipc_nl_msg *msg, struct name_seq *seq, in __tipc_nl_subseq_list() argument
920 sseq_start = nameseq_find_subseq(seq, *last_lower); in __tipc_nl_subseq_list()
924 sseq_start = seq->sseqs; in __tipc_nl_subseq_list()
927 for (sseq = sseq_start; sseq != &seq->sseqs[seq->first_free]; sseq++) { in __tipc_nl_subseq_list()
928 err = __tipc_nl_add_nametable_publ(msg, seq, sseq, last_publ); in __tipc_nl_subseq_list()
944 struct name_seq *seq = NULL; in tipc_nl_seq_list() local
957 seq = nametbl_find_seq(net, *last_type); in tipc_nl_seq_list()
958 if (!seq) in tipc_nl_seq_list()
961 hlist_for_each_entry_rcu(seq, seq_head, ns_list) in tipc_nl_seq_list()
963 if (!seq) in tipc_nl_seq_list()
967 hlist_for_each_entry_from_rcu(seq, ns_list) { in tipc_nl_seq_list()
968 spin_lock_bh(&seq->lock); in tipc_nl_seq_list()
969 err = __tipc_nl_subseq_list(msg, seq, last_lower, in tipc_nl_seq_list()
973 *last_type = seq->type; in tipc_nl_seq_list()
974 spin_unlock_bh(&seq->lock); in tipc_nl_seq_list()
977 spin_unlock_bh(&seq->lock); in tipc_nl_seq_list()
999 msg.seq = cb->nlh->nlmsg_seq; in tipc_nl_name_table_dump()