• Home
  • Raw
  • Download

Lines Matching refs:group

39 				 struct psample_group *group,  in psample_group_nl_fill()  argument
50 ret = nla_put_u32(msg, PSAMPLE_ATTR_SAMPLE_GROUP, group->group_num); in psample_group_nl_fill()
54 ret = nla_put_u32(msg, PSAMPLE_ATTR_GROUP_REFCOUNT, group->refcount); in psample_group_nl_fill()
58 ret = nla_put_u32(msg, PSAMPLE_ATTR_GROUP_SEQ, group->seq); in psample_group_nl_fill()
73 struct psample_group *group; in psample_nl_cmd_get_group_dumpit() local
79 list_for_each_entry(group, &psample_groups_list, list) { in psample_nl_cmd_get_group_dumpit()
80 if (!net_eq(group->net, sock_net(msg->sk))) in psample_nl_cmd_get_group_dumpit()
86 err = psample_group_nl_fill(msg, group, PSAMPLE_CMD_NEW_GROUP, in psample_nl_cmd_get_group_dumpit()
120 static void psample_group_notify(struct psample_group *group, in psample_group_notify() argument
130 err = psample_group_nl_fill(msg, group, cmd, 0, 0, NLM_F_MULTI); in psample_group_notify()
132 genlmsg_multicast_netns(&psample_nl_family, group->net, msg, 0, in psample_group_notify()
141 struct psample_group *group; in psample_group_create() local
143 group = kzalloc(sizeof(*group), GFP_ATOMIC); in psample_group_create()
144 if (!group) in psample_group_create()
147 group->net = net; in psample_group_create()
148 group->group_num = group_num; in psample_group_create()
149 list_add_tail(&group->list, &psample_groups_list); in psample_group_create()
151 psample_group_notify(group, PSAMPLE_CMD_NEW_GROUP); in psample_group_create()
152 return group; in psample_group_create()
155 static void psample_group_destroy(struct psample_group *group) in psample_group_destroy() argument
157 psample_group_notify(group, PSAMPLE_CMD_DEL_GROUP); in psample_group_destroy()
158 list_del(&group->list); in psample_group_destroy()
159 kfree_rcu(group, rcu); in psample_group_destroy()
165 struct psample_group *group; in psample_group_lookup() local
167 list_for_each_entry(group, &psample_groups_list, list) in psample_group_lookup()
168 if ((group->group_num == group_num) && (group->net == net)) in psample_group_lookup()
169 return group; in psample_group_lookup()
175 struct psample_group *group; in psample_group_get() local
179 group = psample_group_lookup(net, group_num); in psample_group_get()
180 if (!group) { in psample_group_get()
181 group = psample_group_create(net, group_num); in psample_group_get()
182 if (!group) in psample_group_get()
185 group->refcount++; in psample_group_get()
189 return group; in psample_group_get()
193 void psample_group_take(struct psample_group *group) in psample_group_take() argument
196 group->refcount++; in psample_group_take()
201 void psample_group_put(struct psample_group *group) in psample_group_put() argument
205 if (--group->refcount == 0) in psample_group_put()
206 psample_group_destroy(group); in psample_group_put()
358 void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, in psample_sample_packet() argument
418 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_SAMPLE_GROUP, group->group_num); in psample_sample_packet()
422 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_GROUP_SEQ, group->seq++); in psample_sample_packet()
447 genlmsg_multicast_netns(&psample_nl_family, group->net, nl_skb, 0, in psample_sample_packet()