host-device: Ensure device is down before rename

If the device is in state up trying to set the name fails with "device or resource busy"
This commit is contained in:
Fabian Ruff 2018-04-25 20:27:23 +02:00
parent 1df359a210
commit eb410208cb

View File

@ -143,6 +143,11 @@ func moveLinkOut(containerNs ns.NetNS, ifName string) error {
if err != nil { if err != nil {
return fmt.Errorf("failed to find %q: %v", ifName, err) return fmt.Errorf("failed to find %q: %v", ifName, err)
} }
// Devices can be renamed only when down
if err := netlink.LinkSetDown(dev); err != nil {
return fmt.Errorf("failed to set %q down: %v", ifName, err)
}
// Rename device to it's original name // Rename device to it's original name
if err := netlink.LinkSetName(dev, dev.Attrs().Alias); err != nil { if err := netlink.LinkSetName(dev, dev.Attrs().Alias); err != nil {
return fmt.Errorf("failed to restore %q to original name %q: %v", ifName, dev.Attrs().Alias, err) return fmt.Errorf("failed to restore %q to original name %q: %v", ifName, dev.Attrs().Alias, err)