Browse Source

Merge pull request #23490 from shishir-a412ed/dm_options_modularized

Modularize dm.use_deferred_removal and dm.use_deferred_deletion logic.
Vincent Demeester 9 years ago
parent
commit
c69614deae
1 changed files with 21 additions and 13 deletions
  1. 21 13
      daemon/graphdriver/devmapper/deviceset.go

+ 21 - 13
daemon/graphdriver/devmapper/deviceset.go

@@ -1621,19 +1621,7 @@ func (devices *DeviceSet) loadThinPoolLoopBackInfo() error {
 	return nil
 	return nil
 }
 }
 
 
-func (devices *DeviceSet) initDevmapper(doInit bool) error {
-	// give ourselves to libdm as a log handler
-	devicemapper.LogInit(devices)
-
-	version, err := devicemapper.GetDriverVersion()
-	if err != nil {
-		// Can't even get driver version, assume not supported
-		return graphdriver.ErrNotSupported
-	}
-
-	if err := determineDriverCapabilities(version); err != nil {
-		return graphdriver.ErrNotSupported
-	}
+func (devices *DeviceSet) enableDeferredRemovalDeletion() error {
 
 
 	// If user asked for deferred removal then check both libdm library
 	// If user asked for deferred removal then check both libdm library
 	// and kernel driver support deferred removal otherwise error out.
 	// and kernel driver support deferred removal otherwise error out.
@@ -1655,6 +1643,26 @@ func (devices *DeviceSet) initDevmapper(doInit bool) error {
 		logrus.Debug("devmapper: Deferred deletion support enabled.")
 		logrus.Debug("devmapper: Deferred deletion support enabled.")
 		devices.deferredDelete = true
 		devices.deferredDelete = true
 	}
 	}
+	return nil
+}
+
+func (devices *DeviceSet) initDevmapper(doInit bool) error {
+	// give ourselves to libdm as a log handler
+	devicemapper.LogInit(devices)
+
+	version, err := devicemapper.GetDriverVersion()
+	if err != nil {
+		// Can't even get driver version, assume not supported
+		return graphdriver.ErrNotSupported
+	}
+
+	if err := determineDriverCapabilities(version); err != nil {
+		return graphdriver.ErrNotSupported
+	}
+
+	if err := devices.enableDeferredRemovalDeletion(); err != nil {
+		return err
+	}
 
 
 	// https://github.com/docker/docker/issues/4036
 	// https://github.com/docker/docker/issues/4036
 	if supported := devicemapper.UdevSetSyncSupport(true); !supported {
 	if supported := devicemapper.UdevSetSyncSupport(true); !supported {