Browse code

overlay[2]: rm fs checks

Now that we do check if overlay is working by performing an actual
overlayfs mount, there's no need in extra checks for the kernel version
or the filesystem type. Actual mount check is sufficient.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>

Kir Kolyshkin authored on 2019/11/15 01:13:12
Showing 2 changed files
... ...
@@ -136,20 +136,6 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
136 136
 		return nil, graphdriver.ErrNotSupported
137 137
 	}
138 138
 
139
-	fsMagic, err := graphdriver.GetFSMagic(testdir)
140
-	if err != nil {
141
-		return nil, err
142
-	}
143
-	if fsName, ok := graphdriver.FsNames[fsMagic]; ok {
144
-		backingFs = fsName
145
-	}
146
-
147
-	switch fsMagic {
148
-	case graphdriver.FsMagicAufs, graphdriver.FsMagicBtrfs, graphdriver.FsMagicEcryptfs, graphdriver.FsMagicNfsFs, graphdriver.FsMagicOverlay, graphdriver.FsMagicZfs:
149
-		logrus.WithField("storage-driver", "overlay").Errorf("'overlay' is not supported over %s", backingFs)
150
-		return nil, graphdriver.ErrIncompatibleFS
151
-	}
152
-
153 139
 	supportsDType, err := fsutils.SupportsDType(testdir)
154 140
 	if err != nil {
155 141
 		return nil, err
... ...
@@ -27,7 +27,6 @@ import (
27 27
 	"github.com/docker/docker/pkg/locker"
28 28
 	"github.com/docker/docker/pkg/mount"
29 29
 	"github.com/docker/docker/pkg/parsers"
30
-	"github.com/docker/docker/pkg/parsers/kernel"
31 30
 	"github.com/docker/docker/pkg/system"
32 31
 	units "github.com/docker/go-units"
33 32
 	rsystem "github.com/opencontainers/runc/libcontainer/system"
... ...
@@ -132,12 +131,6 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
132 132
 		return nil, err
133 133
 	}
134 134
 
135
-	// require kernel 4.0.0 to ensure multiple lower dirs are supported
136
-	v, err := kernel.GetKernelVersion()
137
-	if err != nil {
138
-		return nil, err
139
-	}
140
-
141 135
 	// Perform feature detection on /var/lib/docker/overlay2 if it's an existing directory.
142 136
 	// This covers situations where /var/lib/docker/overlay2 is a mount, and on a different
143 137
 	// filesystem than /var/lib/docker.
... ...
@@ -152,30 +145,6 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
152 152
 		return nil, graphdriver.ErrNotSupported
153 153
 	}
154 154
 
155
-	fsMagic, err := graphdriver.GetFSMagic(testdir)
156
-	if err != nil {
157
-		return nil, err
158
-	}
159
-	if fsName, ok := graphdriver.FsNames[fsMagic]; ok {
160
-		backingFs = fsName
161
-	}
162
-
163
-	switch fsMagic {
164
-	case graphdriver.FsMagicAufs, graphdriver.FsMagicEcryptfs, graphdriver.FsMagicNfsFs, graphdriver.FsMagicOverlay, graphdriver.FsMagicZfs:
165
-		logger.Errorf("'overlay2' is not supported over %s", backingFs)
166
-		return nil, graphdriver.ErrIncompatibleFS
167
-	case graphdriver.FsMagicBtrfs:
168
-		// Support for OverlayFS on BTRFS was added in kernel 4.7
169
-		// See https://btrfs.wiki.kernel.org/index.php/Changelog
170
-		if kernel.CompareKernelVersion(*v, kernel.VersionInfo{Kernel: 4, Major: 7, Minor: 0}) < 0 {
171
-			if !opts.overrideKernelCheck {
172
-				logger.Errorf("'overlay2' requires kernel 4.7 to use on %s", backingFs)
173
-				return nil, graphdriver.ErrIncompatibleFS
174
-			}
175
-			logger.Warn("Using pre-4.7.0 kernel for overlay2 on btrfs, may require kernel update")
176
-		}
177
-	}
178
-
179 155
 	supportsDType, err := fsutils.SupportsDType(testdir)
180 156
 	if err != nil {
181 157
 		return nil, err