diff options
Diffstat (limited to 'net/tipc/name_table.c')
-rw-r--r-- | net/tipc/name_table.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c index 9be6592e4a6f..bd0aac87b41a 100644 --- a/net/tipc/name_table.c +++ b/net/tipc/name_table.c | |||
@@ -416,6 +416,7 @@ static void tipc_nameseq_subscribe(struct name_seq *nseq, | |||
416 | 416 | ||
417 | tipc_subscrp_convert_seq(&s->evt.s.seq, s->swap, &ns); | 417 | tipc_subscrp_convert_seq(&s->evt.s.seq, s->swap, &ns); |
418 | 418 | ||
419 | tipc_subscrp_get(s); | ||
419 | list_add(&s->nameseq_list, &nseq->subscriptions); | 420 | list_add(&s->nameseq_list, &nseq->subscriptions); |
420 | 421 | ||
421 | if (!sseq) | 422 | if (!sseq) |
@@ -787,6 +788,7 @@ void tipc_nametbl_unsubscribe(struct tipc_subscription *s) | |||
787 | if (seq != NULL) { | 788 | if (seq != NULL) { |
788 | spin_lock_bh(&seq->lock); | 789 | spin_lock_bh(&seq->lock); |
789 | list_del_init(&s->nameseq_list); | 790 | list_del_init(&s->nameseq_list); |
791 | tipc_subscrp_put(s); | ||
790 | if (!seq->first_free && list_empty(&seq->subscriptions)) { | 792 | if (!seq->first_free && list_empty(&seq->subscriptions)) { |
791 | hlist_del_init_rcu(&seq->ns_list); | 793 | hlist_del_init_rcu(&seq->ns_list); |
792 | kfree(seq->sseqs); | 794 | kfree(seq->sseqs); |