summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lehman <dlehman@redhat.com>2009-04-02 18:59:22 -0500
committerDavid Lehman <dlehman@redhat.com>2009-04-02 22:09:03 -0500
commit4418815bb45a518f683a9b12869412510b3e1b0c (patch)
treef6b3d6a343c9ab85f0df43f0b76b26f0929ad64c
parent085d9f232758d249d02e494f013ef309abfde754 (diff)
downloadanaconda-4418815bb45a518f683a9b12869412510b3e1b0c.tar.gz
anaconda-4418815bb45a518f683a9b12869412510b3e1b0c.tar.xz
anaconda-4418815bb45a518f683a9b12869412510b3e1b0c.zip
Round up when aligning to pesize for space used. (#493656)
-rw-r--r--storage/devices.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/storage/devices.py b/storage/devices.py
index 082725e0d..f75463f91 100644
--- a/storage/devices.py
+++ b/storage/devices.py
@@ -1788,7 +1788,7 @@ class LVMVolumeGroupDevice(DMDevice):
log.debug("%s size is %dMB" % (self.name, size))
for lv in self.lvs:
log.debug("lv %s (%s) uses %dMB" % (lv.name, lv, lv.size))
- used += self.align(lv.size)
+ used += self.align(lv.size, roundup=True)
free = self.size - used
log.debug("vg %s has %dMB free" % (self.name, free))
@@ -1800,14 +1800,19 @@ class LVMVolumeGroupDevice(DMDevice):
# TODO: just ask lvm if isModified returns False
return self.freeSpace / self.peSize
- def align(self, size):
+ def align(self, size, roundup=None):
""" Align a size to a multiple of physical extent size. """
size = numeric_type(size)
+ if roundup:
+ round = math.ceil
+ else:
+ round = math.floor
+
# we want Kbytes as a float for our math
size *= 1024.0
pesize = self.peSize * 1024.0
- return long((math.floor(size / pesize) * pesize) / 1024)
+ return long((round(size / pesize) * pesize) / 1024)
@property
def pvs(self):