소스 검색

Incorrect kernel version check in bridge

- Kernel version check logic was wrong

Signed-off-by: Alessandro Boch <aboch@docker.com>
Alessandro Boch 10 년 전
부모
커밋
c266c843a7
1개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 2
      libnetwork/drivers/bridge/setup_device.go

+ 5 - 2
libnetwork/drivers/bridge/setup_device.go

@@ -1,6 +1,7 @@
 package bridge
 
 import (
+	"github.com/Sirupsen/logrus"
 	"github.com/docker/docker/pkg/parsers/kernel"
 	"github.com/vishvananda/netlink"
 )
@@ -25,8 +26,10 @@ func setupDevice(config *networkConfiguration, i *bridgeInterface) error {
 	// Only set the bridge's MAC address if the kernel version is > 3.3, as it
 	// was not supported before that.
 	kv, err := kernel.GetKernelVersion()
-	if err == nil && (kv.Kernel >= 3 && kv.Major >= 3) {
-		setMac = true
+	if err != nil {
+		logrus.Errorf("Failed to check kernel versions: %v. Will not assign a MAC address to the bridge interface", err)
+	} else {
+		setMac = kv.Kernel > 3 || (kv.Kernel == 3 && kv.Major >= 3)
 	}
 
 	return ioctlCreateBridge(config.BridgeName, setMac)