diff options
Diffstat (limited to 'net/openvswitch/meter.c')
| -rw-r--r-- | net/openvswitch/meter.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/net/openvswitch/meter.c b/net/openvswitch/meter.c index 6e38f68f88c2..f2698d2316df 100644 --- a/net/openvswitch/meter.c +++ b/net/openvswitch/meter.c @@ -449,7 +449,7 @@ static int ovs_meter_cmd_set(struct sk_buff *skb, struct genl_info *info)  	err = attach_meter(meter_tbl, meter);  	if (err) -		goto exit_unlock; +		goto exit_free_old_meter;  	ovs_unlock(); @@ -472,6 +472,8 @@ static int ovs_meter_cmd_set(struct sk_buff *skb, struct genl_info *info)  	genlmsg_end(reply, ovs_reply_header);  	return genlmsg_reply(reply, info); +exit_free_old_meter: +	ovs_meter_free(old_meter);  exit_unlock:  	ovs_unlock();  	nlmsg_free(reply);  |