From f9cf780678078c77881fee41addc093abb15c136 Mon Sep 17 00:00:00 2001
From: Rafi Khardalian <rafi@metacloud.com>
Date: Wed, 5 Sep 2012 05:51:43 +0000
Subject: [PATCH] Fix volume deletion when device mapper is used

Call dmsetup remove if there is a /dev/mapper/nova--volumes-
element present.

Resolves bug 979020

Change-Id: Iddaaed411a77dda4bd32f9a97687ff17744119eb
---
 cinder/volume/driver.py              | 4 ++++
 etc/cinder/rootwrap.d/volume.filters | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/cinder/volume/driver.py b/cinder/volume/driver.py
index 435e023e4..a0bc3941b 100644
--- a/cinder/volume/driver.py
+++ b/cinder/volume/driver.py
@@ -148,6 +148,10 @@ class VolumeDriver(object):
         # zero out old volumes to prevent data leaking between users
         # TODO(ja): reclaiming space should be done lazy and low priority
         self._copy_volume('/dev/zero', self.local_path(volume), size_in_g)
+        dev_path = self.local_path(volume)
+        if os.path.exists(dev_path):
+            self._try_execute('dmsetup', 'remove', '-f', dev_path,
+                              run_as_root=True)
         self._try_execute('lvremove', '-f', "%s/%s" %
                           (FLAGS.volume_group,
                            self._escape_snapshot(volume['name'])),
diff --git a/etc/cinder/rootwrap.d/volume.filters b/etc/cinder/rootwrap.d/volume.filters
index 24cc56202..20d7e9bad 100644
--- a/etc/cinder/rootwrap.d/volume.filters
+++ b/etc/cinder/rootwrap.d/volume.filters
@@ -30,3 +30,7 @@ iscsiadm_usr: CommandFilter, /usr/bin/iscsiadm, root
 
 #cinder/volume/.py: utils.temporary_chown(path, 0), ...
 chown: CommandFilter, /bin/chown, root
+
+# cinder/volume/driver.py
+dmsetup: CommandFilter, /sbin/dmsetup, root
+dmsetup_usr: CommandFilter, /usr/sbin/dmsetup, root
-- 
2.45.2