From cac6658da061f01b4abd5b4bd1a7aeb234e8401d Mon Sep 17 00:00:00 2001 From: Shishir Mahajan Date: Mon, 13 Jun 2016 12:05:46 -0400 Subject: [PATCH] Modularize dm.use_deferred_removal and dm.use_deferred_deletion logic. Signed-off-by: Shishir Mahajan --- daemon/graphdriver/devmapper/deviceset.go | 34 ++++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go index 61c6f3cd41..0e663b4e58 100644 --- a/daemon/graphdriver/devmapper/deviceset.go +++ b/daemon/graphdriver/devmapper/deviceset.go @@ -1621,19 +1621,7 @@ func (devices *DeviceSet) loadThinPoolLoopBackInfo() error { 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 // 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.") 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 if supported := devicemapper.UdevSetSyncSupport(true); !supported {