From a687e8d86ba07ebb42d988b6e13102569b60e673 Mon Sep 17 00:00:00 2001
From: Vincent Batts <vbatts@redhat.com>
Date: Tue, 20 Jan 2015 12:00:04 -0500
Subject: [PATCH 1/2] devicemapper: define device-mapper log levels

Signed-off-by: Vincent Batts <vbatts@redhat.com>
---
 pkg/devicemapper/log.go | 11 +++++++++++
 1 file changed, 11 insertions(+)
 create mode 100644 pkg/devicemapper/log.go

diff --git a/pkg/devicemapper/log.go b/pkg/devicemapper/log.go
new file mode 100644
index 0000000000..cee5e54549
--- /dev/null
+++ b/pkg/devicemapper/log.go
@@ -0,0 +1,11 @@
+package devicemapper
+
+// definitions from lvm2 lib/log/log.h
+const (
+	LogLevelFatal  = 2 + iota // _LOG_FATAL
+	LogLevelErr               // _LOG_ERR
+	LogLevelWarn              // _LOG_WARN
+	LogLevelNotice            // _LOG_NOTICE
+	LogLevelInfo              // _LOG_INFO
+	LogLevelDebug             // _LOG_DEBUG
+)

From 0c8be9da3763d86c2a6e847e1667410056d6071d Mon Sep 17 00:00:00 2001
From: Vincent Batts <vbatts@redhat.com>
Date: Mon, 19 Jan 2015 14:43:19 -0500
Subject: [PATCH 2/2] devmapper: initialize log levels

Signed-off-by: Vincent Batts <vbatts@redhat.com>
---
 daemon/graphdriver/devmapper/deviceset.go | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go
index de1f720d46..114ee6e6e9 100644
--- a/daemon/graphdriver/devmapper/deviceset.go
+++ b/daemon/graphdriver/devmapper/deviceset.go
@@ -717,8 +717,10 @@ func setCloseOnExec(name string) {
 }
 
 func (devices *DeviceSet) DMLog(level int, file string, line int, dmError int, message string) {
-	if level >= 7 {
-		return // Ignore _LOG_DEBUG
+	if level >= devicemapper.LogLevelDebug {
+		// (vbatts) libdm debug is very verbose. If you're debugging libdm, you can
+		// comment out this check yourself
+		level = devicemapper.LogLevelInfo
 	}
 
 	// FIXME(vbatts) push this back into ./pkg/devicemapper/
@@ -939,6 +941,11 @@ func (devices *DeviceSet) closeTransaction() error {
 }
 
 func (devices *DeviceSet) initDevmapper(doInit bool) error {
+	if os.Getenv("DEBUG") != "" {
+		devicemapper.LogInitVerbose(devicemapper.LogLevelDebug)
+	} else {
+		devicemapper.LogInitVerbose(devicemapper.LogLevelWarn)
+	}
 	// give ourselves to libdm as a log handler
 	devicemapper.LogInit(devices)