Eduardo has uploaded a new change for review.
Change subject: Reduce the number of getVolumeSize() calls. ......................................................................
Reduce the number of getVolumeSize() calls.
Required for reduce the size functions proliferation.
Change-Id: Ic82fab1966bc6606e3c29483bea62dd17b4c56bc Signed-off-by: Eduardo ewarszaw@redhat.com --- M vdsm/storage/blockVolume.py M vdsm/storage/fileVolume.py M vdsm/storage/sp.py M vdsm/storage/volume.py 4 files changed, 8 insertions(+), 8 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/03/18203/1
diff --git a/vdsm/storage/blockVolume.py b/vdsm/storage/blockVolume.py index 3ccb9d5..aac18f5 100644 --- a/vdsm/storage/blockVolume.py +++ b/vdsm/storage/blockVolume.py @@ -189,7 +189,7 @@
return (dom.sdUUID, mdSlot)
- def delete(self, postZero, force): + def delete(self, zeroLen, force): """ Delete volume 'postZero' - zeroing file before deletion 'force' is required to remove shared and internal volumes @@ -198,7 +198,6 @@ self.volUUID, self.imgUUID, self.sdUUID)
vol_path = self.getVolumePath() - size = self.getVolumeSize(bs=1) offs = self.getMetaOffset()
if not force: @@ -207,12 +206,12 @@ # Mark volume as illegal before deleting self.setLegality(volume.ILLEGAL_VOL)
- if postZero: + if zeroLen: self.prepare(justme=True, rw=True, chainrw=force, setrw=True, force=True) try: misc.ddWatchCopy( - "/dev/zero", vol_path, vars.task.aborting, int(size), + "/dev/zero", vol_path, vars.task.aborting, int(zeroLen), recoveryCallback=volume.baseAsyncTasksRollback) except utils.ActionStopped: raise diff --git a/vdsm/storage/fileVolume.py b/vdsm/storage/fileVolume.py index 0217859..f35ca19 100644 --- a/vdsm/storage/fileVolume.py +++ b/vdsm/storage/fileVolume.py @@ -157,7 +157,7 @@
return (volPath,)
- def delete(self, postZero, force): + def delete(self, zeroLen, force): """ Delete volume. 'postZero' - zeroing file before deletion diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py index 6694fe0..445c70d 100644 --- a/vdsm/storage/sp.py +++ b/vdsm/storage/sp.py @@ -2009,8 +2009,9 @@ rm.LockType.exclusive): dom = sdCache.produce(sdUUID) for volUUID in volumes: - dom.produceVolume(imgUUID, volUUID).delete( - postZero=postZero, force=force) + zeros = dom.getVSize(imgUUID, volUUID, bs=1) if postZero else 0 + dom.produceVolume(imgUUID, volUUID).delete(zeroLen=zeros, + force=force)
def setMaxHostID(self, spUUID, maxID): """ diff --git a/vdsm/storage/volume.py b/vdsm/storage/volume.py index a49c4de..5c50027 100644 --- a/vdsm/storage/volume.py +++ b/vdsm/storage/volume.py @@ -366,7 +366,7 @@ raise se.createVolumeRollbackError(volUUID) pvol = vol.getParentVolume() # Remove volume - vol.delete(postZero=False, force=True) + vol.delete(zeroLen=0, force=True) if len(cls.getImageVolumes(repoPath, sdUUID, imgUUID)): # Don't remove the image folder itself return