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()
121 static void psample_group_notify(struct psample_group *group, in psample_group_notify() argument
131 err = psample_group_nl_fill(msg, group, cmd, 0, 0, NLM_F_MULTI); in psample_group_notify()
133 genlmsg_multicast_netns(&psample_nl_family, group->net, msg, 0, in psample_group_notify()
142 struct psample_group *group; in psample_group_create() local
144 group = kzalloc(sizeof(*group), GFP_ATOMIC); in psample_group_create()
145 if (!group) in psample_group_create()
148 group->net = net; in psample_group_create()
149 group->group_num = group_num; in psample_group_create()
150 list_add_tail(&group->list, &psample_groups_list); in psample_group_create()
152 psample_group_notify(group, PSAMPLE_CMD_NEW_GROUP); in psample_group_create()
153 return group; in psample_group_create()
156 static void psample_group_destroy(struct psample_group *group) in psample_group_destroy() argument
158 psample_group_notify(group, PSAMPLE_CMD_DEL_GROUP); in psample_group_destroy()
159 list_del(&group->list); in psample_group_destroy()
160 kfree_rcu(group, rcu); in psample_group_destroy()
166 struct psample_group *group; in psample_group_lookup() local
168 list_for_each_entry(group, &psample_groups_list, list) in psample_group_lookup()
169 if ((group->group_num == group_num) && (group->net == net)) in psample_group_lookup()
170 return group; in psample_group_lookup()
176 struct psample_group *group; in psample_group_get() local
180 group = psample_group_lookup(net, group_num); in psample_group_get()
181 if (!group) { in psample_group_get()
182 group = psample_group_create(net, group_num); in psample_group_get()
183 if (!group) in psample_group_get()
186 group->refcount++; in psample_group_get()
190 return group; in psample_group_get()
194 void psample_group_take(struct psample_group *group) in psample_group_take() argument
197 group->refcount++; in psample_group_take()
202 void psample_group_put(struct psample_group *group) in psample_group_put() argument
206 if (--group->refcount == 0) in psample_group_put()
207 psample_group_destroy(group); in psample_group_put()
359 void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, in psample_sample_packet() argument
427 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_SAMPLE_GROUP, group->group_num); in psample_sample_packet()
431 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_GROUP_SEQ, group->seq++); in psample_sample_packet()
486 genlmsg_multicast_netns(&psample_nl_family, group->net, nl_skb, 0, in psample_sample_packet()