Commit ed661185 authored by Thomas Graf's avatar Thomas Graf Committed by Jesse Gross

openvswitch: Move common genl notify code into ovs_notify()

Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
Signed-off-by: default avatarJesse Gross <jesse@nicira.com>
parent c3ff8cfe
...@@ -71,6 +71,13 @@ static int ovs_net_id __read_mostly; ...@@ -71,6 +71,13 @@ static int ovs_net_id __read_mostly;
static void rehash_flow_table(struct work_struct *work); static void rehash_flow_table(struct work_struct *work);
static DECLARE_DELAYED_WORK(rehash_flow_wq, rehash_flow_table); static DECLARE_DELAYED_WORK(rehash_flow_wq, rehash_flow_table);
static void ovs_notify(struct sk_buff *skb, struct genl_info *info,
struct genl_multicast_group *grp)
{
genl_notify(skb, genl_info_net(info), info->snd_portid,
grp->id, info->nlhdr, GFP_KERNEL);
}
/** /**
* DOC: Locking: * DOC: Locking:
* *
...@@ -1061,9 +1068,7 @@ static int ovs_flow_cmd_new_or_set(struct sk_buff *skb, struct genl_info *info) ...@@ -1061,9 +1068,7 @@ static int ovs_flow_cmd_new_or_set(struct sk_buff *skb, struct genl_info *info)
} }
if (!IS_ERR(reply)) if (!IS_ERR(reply))
genl_notify(reply, genl_info_net(info), info->snd_portid, ovs_notify(reply, info, &ovs_dp_flow_multicast_group);
ovs_dp_flow_multicast_group.id, info->nlhdr,
GFP_KERNEL);
else else
netlink_set_err(sock_net(skb->sk)->genl_sock, 0, netlink_set_err(sock_net(skb->sk)->genl_sock, 0,
ovs_dp_flow_multicast_group.id, PTR_ERR(reply)); ovs_dp_flow_multicast_group.id, PTR_ERR(reply));
...@@ -1150,8 +1155,7 @@ static int ovs_flow_cmd_del(struct sk_buff *skb, struct genl_info *info) ...@@ -1150,8 +1155,7 @@ static int ovs_flow_cmd_del(struct sk_buff *skb, struct genl_info *info)
ovs_flow_deferred_free(flow); ovs_flow_deferred_free(flow);
genl_notify(reply, genl_info_net(info), info->snd_portid, ovs_notify(reply, info, &ovs_dp_flow_multicast_group);
ovs_dp_flow_multicast_group.id, info->nlhdr, GFP_KERNEL);
return 0; return 0;
} }
...@@ -1383,9 +1387,7 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info) ...@@ -1383,9 +1387,7 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info)
list_add_tail(&dp->list_node, &ovs_net->dps); list_add_tail(&dp->list_node, &ovs_net->dps);
rtnl_unlock(); rtnl_unlock();
genl_notify(reply, genl_info_net(info), info->snd_portid, ovs_notify(reply, info, &ovs_dp_datapath_multicast_group);
ovs_dp_datapath_multicast_group.id, info->nlhdr,
GFP_KERNEL);
return 0; return 0;
err_destroy_local_port: err_destroy_local_port:
...@@ -1453,9 +1455,7 @@ static int ovs_dp_cmd_del(struct sk_buff *skb, struct genl_info *info) ...@@ -1453,9 +1455,7 @@ static int ovs_dp_cmd_del(struct sk_buff *skb, struct genl_info *info)
__dp_destroy(dp); __dp_destroy(dp);
genl_notify(reply, genl_info_net(info), info->snd_portid, ovs_notify(reply, info, &ovs_dp_datapath_multicast_group);
ovs_dp_datapath_multicast_group.id, info->nlhdr,
GFP_KERNEL);
return 0; return 0;
} }
...@@ -1479,9 +1479,7 @@ static int ovs_dp_cmd_set(struct sk_buff *skb, struct genl_info *info) ...@@ -1479,9 +1479,7 @@ static int ovs_dp_cmd_set(struct sk_buff *skb, struct genl_info *info)
return 0; return 0;
} }
genl_notify(reply, genl_info_net(info), info->snd_portid, ovs_notify(reply, info, &ovs_dp_datapath_multicast_group);
ovs_dp_datapath_multicast_group.id, info->nlhdr,
GFP_KERNEL);
return 0; return 0;
} }
...@@ -1727,8 +1725,8 @@ static int ovs_vport_cmd_new(struct sk_buff *skb, struct genl_info *info) ...@@ -1727,8 +1725,8 @@ static int ovs_vport_cmd_new(struct sk_buff *skb, struct genl_info *info)
ovs_dp_detach_port(vport); ovs_dp_detach_port(vport);
goto exit_unlock; goto exit_unlock;
} }
genl_notify(reply, genl_info_net(info), info->snd_portid,
ovs_dp_vport_multicast_group.id, info->nlhdr, GFP_KERNEL); ovs_notify(reply, info, &ovs_dp_vport_multicast_group);
exit_unlock: exit_unlock:
rtnl_unlock(); rtnl_unlock();
...@@ -1769,8 +1767,7 @@ static int ovs_vport_cmd_set(struct sk_buff *skb, struct genl_info *info) ...@@ -1769,8 +1767,7 @@ static int ovs_vport_cmd_set(struct sk_buff *skb, struct genl_info *info)
goto exit_unlock; goto exit_unlock;
} }
genl_notify(reply, genl_info_net(info), info->snd_portid, ovs_notify(reply, info, &ovs_dp_vport_multicast_group);
ovs_dp_vport_multicast_group.id, info->nlhdr, GFP_KERNEL);
exit_unlock: exit_unlock:
rtnl_unlock(); rtnl_unlock();
...@@ -1804,8 +1801,7 @@ static int ovs_vport_cmd_del(struct sk_buff *skb, struct genl_info *info) ...@@ -1804,8 +1801,7 @@ static int ovs_vport_cmd_del(struct sk_buff *skb, struct genl_info *info)
err = 0; err = 0;
ovs_dp_detach_port(vport); ovs_dp_detach_port(vport);
genl_notify(reply, genl_info_net(info), info->snd_portid, ovs_notify(reply, info, &ovs_dp_vport_multicast_group);
ovs_dp_vport_multicast_group.id, info->nlhdr, GFP_KERNEL);
exit_unlock: exit_unlock:
rtnl_unlock(); rtnl_unlock();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment