summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/nova/rootwrap.d/volume.filters4
-rw-r--r--nova/volume/driver.py4
2 files changed, 8 insertions, 0 deletions
diff --git a/etc/nova/rootwrap.d/volume.filters b/etc/nova/rootwrap.d/volume.filters
index 9451e5115..e2b0f6203 100644
--- a/etc/nova/rootwrap.d/volume.filters
+++ b/etc/nova/rootwrap.d/volume.filters
@@ -27,3 +27,7 @@ lvdisplay: CommandFilter, /sbin/lvdisplay, root
# nova/volume/driver.py: 'iscsiadm', '-m', 'node', '-T', ...
iscsiadm: CommandFilter, /sbin/iscsiadm, root
iscsiadm_usr: CommandFilter, /usr/bin/iscsiadm, root
+
+# nova/volume/driver.py
+dmsetup: CommandFilter, /sbin/dmsetup, root
+dmsetup_usr: CommandFilter, /usr/sbin/dmsetup, root
diff --git a/nova/volume/driver.py b/nova/volume/driver.py
index f7cd9fb57..bb80d9f93 100644
--- a/nova/volume/driver.py
+++ b/nova/volume/driver.py
@@ -142,6 +142,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'])),