浏览代码

openvswitch: Do not send notification if ovs_vport_set_options() failed

There is no need to send a notification if ovs_vport_set_options() failed
and ovs_vport_cmd_set() did not change anything.

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Ansis Atteka 13 年之前
父节点
当前提交
03fbf8b387
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      net/openvswitch/datapath.c

+ 3 - 1
net/openvswitch/datapath.c

@@ -1635,7 +1635,9 @@ static int ovs_vport_cmd_set(struct sk_buff *skb, struct genl_info *info)
 
 
 	if (!err && a[OVS_VPORT_ATTR_OPTIONS])
 	if (!err && a[OVS_VPORT_ATTR_OPTIONS])
 		err = ovs_vport_set_options(vport, a[OVS_VPORT_ATTR_OPTIONS]);
 		err = ovs_vport_set_options(vport, a[OVS_VPORT_ATTR_OPTIONS]);
-	if (!err && a[OVS_VPORT_ATTR_UPCALL_PID])
+	if (err)
+		goto exit_unlock;
+	if (a[OVS_VPORT_ATTR_UPCALL_PID])
 		vport->upcall_pid = nla_get_u32(a[OVS_VPORT_ATTR_UPCALL_PID]);
 		vport->upcall_pid = nla_get_u32(a[OVS_VPORT_ATTR_UPCALL_PID]);
 
 
 	reply = ovs_vport_cmd_build_info(vport, info->snd_pid, info->snd_seq,
 	reply = ovs_vport_cmd_build_info(vport, info->snd_pid, info->snd_seq,