@@ -1628,7 +1629,7 @@ static int do_setlink(const struct sk_buff *skb,
write_lock_bh(&dev_base_lock);
if(dev->link_mode^value)
modified=1;
status|=DO_SETLINK_MODIFIED;
dev->link_mode=value;
write_unlock_bh(&dev_base_lock);
}
@@ -1644,7 +1645,7 @@ static int do_setlink(const struct sk_buff *skb,
err=do_setvfinfo(dev,attr);
if(err<0)
gotoerrout;
modified=1;
status|=DO_SETLINK_MODIFIED;
}
}
err=0;
@@ -1674,7 +1675,7 @@ static int do_setlink(const struct sk_buff *skb,
err=ops->ndo_set_vf_port(dev,vf,port);
if(err<0)
gotoerrout;
modified=1;
status|=DO_SETLINK_MODIFIED;
}
}
err=0;
@@ -1692,7 +1693,7 @@ static int do_setlink(const struct sk_buff *skb,
err=ops->ndo_set_vf_port(dev,PORT_SELF_VF,port);
if(err<0)
gotoerrout;
modified=1;
status|=DO_SETLINK_MODIFIED;
}
if(tb[IFLA_AF_SPEC]){
@@ -1709,13 +1710,13 @@ static int do_setlink(const struct sk_buff *skb,
if(err<0)
gotoerrout;
modified=1;
status|=DO_SETLINK_MODIFIED;
}
}
err=0;
errout:
if(err<0&&modified)
if(err<0&&status&DO_SETLINK_MODIFIED)
net_warn_ratelimited("A link change request failed with some changes committed already. Interface %s may have been left with an inconsistent configuration, please check.\n",