Lines Matching refs:group

40 				 struct psample_group *group,  in psample_group_nl_fill()  argument
51 ret = nla_put_u32(msg, PSAMPLE_ATTR_SAMPLE_GROUP, group->group_num); in psample_group_nl_fill()
55 ret = nla_put_u32(msg, PSAMPLE_ATTR_GROUP_REFCOUNT, group->refcount); in psample_group_nl_fill()
59 ret = nla_put_u32(msg, PSAMPLE_ATTR_GROUP_SEQ, group->seq); in psample_group_nl_fill()
74 struct psample_group *group; in psample_nl_cmd_get_group_dumpit() local
80 list_for_each_entry(group, &psample_groups_list, list) { in psample_nl_cmd_get_group_dumpit()
81 if (!net_eq(group->net, sock_net(msg->sk))) in psample_nl_cmd_get_group_dumpit()
87 err = psample_group_nl_fill(msg, group, PSAMPLE_CMD_NEW_GROUP, in psample_nl_cmd_get_group_dumpit()
122 static void psample_group_notify(struct psample_group *group, in psample_group_notify() argument
132 err = psample_group_nl_fill(msg, group, cmd, 0, 0, NLM_F_MULTI); in psample_group_notify()
134 genlmsg_multicast_netns(&psample_nl_family, group->net, msg, 0, in psample_group_notify()
143 struct psample_group *group; in psample_group_create() local
145 group = kzalloc(sizeof(*group), GFP_ATOMIC); in psample_group_create()
146 if (!group) in psample_group_create()
149 group->net = net; in psample_group_create()
150 group->group_num = group_num; in psample_group_create()
151 list_add_tail(&group->list, &psample_groups_list); in psample_group_create()
153 psample_group_notify(group, PSAMPLE_CMD_NEW_GROUP); in psample_group_create()
154 return group; in psample_group_create()
157 static void psample_group_destroy(struct psample_group *group) in psample_group_destroy() argument
159 psample_group_notify(group, PSAMPLE_CMD_DEL_GROUP); in psample_group_destroy()
160 list_del(&group->list); in psample_group_destroy()
161 kfree_rcu(group, rcu); in psample_group_destroy()
167 struct psample_group *group; in psample_group_lookup() local
169 list_for_each_entry(group, &psample_groups_list, list) in psample_group_lookup()
170 if ((group->group_num == group_num) && (group->net == net)) in psample_group_lookup()
171 return group; in psample_group_lookup()
177 struct psample_group *group; in psample_group_get() local
181 group = psample_group_lookup(net, group_num); in psample_group_get()
182 if (!group) { in psample_group_get()
183 group = psample_group_create(net, group_num); in psample_group_get()
184 if (!group) in psample_group_get()
187 group->refcount++; in psample_group_get()
191 return group; in psample_group_get()
195 void psample_group_take(struct psample_group *group) in psample_group_take() argument
198 group->refcount++; in psample_group_take()
203 void psample_group_put(struct psample_group *group) in psample_group_put() argument
207 if (--group->refcount == 0) in psample_group_put()
208 psample_group_destroy(group); in psample_group_put()
360 void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, in psample_sample_packet() argument
428 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_SAMPLE_GROUP, group->group_num); in psample_sample_packet()
432 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_GROUP_SEQ, group->seq++); in psample_sample_packet()
487 genlmsg_multicast_netns(&psample_nl_family, group->net, nl_skb, 0, in psample_sample_packet()