diff --git a/lib/cmdlib.py b/lib/cmdlib.py index bcf948b4a8a8aba6221739dd22125c06c51a15f7..de8f40e5e7a419249e968a9d135415fae15147d5 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -7905,7 +7905,14 @@ class LUInstanceRecreateDisks(LogicalUnit): # All touched nodes must be locked mylocks = self.owned_locks(locking.LEVEL_NODE) assert mylocks.issuperset(frozenset(instance.all_nodes)) - _CreateDisks(self, instance, to_skip=to_skip) + new_disks = _CreateDisks(self, instance, to_skip=to_skip) + + # TODO: Release node locks before wiping, or explain why it's not possible + if self.cfg.GetClusterInfo().prealloc_wipe_disks: + wipedisks = [(idx, disk, 0) + for (idx, disk) in enumerate(instance.disks) + if idx not in to_skip] + _WipeOrCleanupDisks(self, instance, disks=wipedisks, cleanup=new_disks) class LUInstanceRename(LogicalUnit):