diff options
author | David Lehman <dlehman@redhat.com> | 2009-04-02 18:59:22 -0500 |
---|---|---|
committer | David Lehman <dlehman@redhat.com> | 2009-04-02 22:09:03 -0500 |
commit | 4418815bb45a518f683a9b12869412510b3e1b0c (patch) | |
tree | f6b3d6a343c9ab85f0df43f0b76b26f0929ad64c | |
parent | 085d9f232758d249d02e494f013ef309abfde754 (diff) | |
download | anaconda-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.py | 11 |
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): |