浏览代码

openvswitch: Don't insert empty OVS_VPORT_ATTR_OPTIONS attribute

The port specific options are currently unused resulting in an
empty OVS_VPORT_ATTR_OPTIONS nested attribute being inserted
into every OVS_VPORT_CMD_GET message.

Don't insert OVS_VPORT_ATTR_OPTIONS if no options are present.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Thomas Graf 12 年之前
父节点
当前提交
5d9633523f
共有 1 个文件被更改,包括 8 次插入6 次删除
  1. 8 6
      net/openvswitch/vport.c

+ 8 - 6
net/openvswitch/vport.c

@@ -301,17 +301,19 @@ void ovs_vport_get_stats(struct vport *vport, struct ovs_vport_stats *stats)
 int ovs_vport_get_options(const struct vport *vport, struct sk_buff *skb)
 int ovs_vport_get_options(const struct vport *vport, struct sk_buff *skb)
 {
 {
 	struct nlattr *nla;
 	struct nlattr *nla;
+	int err;
+
+	if (!vport->ops->get_options)
+		return 0;
 
 
 	nla = nla_nest_start(skb, OVS_VPORT_ATTR_OPTIONS);
 	nla = nla_nest_start(skb, OVS_VPORT_ATTR_OPTIONS);
 	if (!nla)
 	if (!nla)
 		return -EMSGSIZE;
 		return -EMSGSIZE;
 
 
-	if (vport->ops->get_options) {
-		int err = vport->ops->get_options(vport, skb);
-		if (err) {
-			nla_nest_cancel(skb, nla);
-			return err;
-		}
+	err = vport->ops->get_options(vport, skb);
+	if (err) {
+		nla_nest_cancel(skb, nla);
+		return err;
 	}
 	}
 
 
 	nla_nest_end(skb, nla);
 	nla_nest_end(skb, nla);