diff options
-rw-r--r-- | iw/rootpartition_gui.py | 23 | ||||
-rw-r--r-- | textw/partitioning_text.py | 24 |
2 files changed, 45 insertions, 2 deletions
diff --git a/iw/rootpartition_gui.py b/iw/rootpartition_gui.py index 6d2496f4b..71f17fc7e 100644 --- a/iw/rootpartition_gui.py +++ b/iw/rootpartition_gui.py @@ -183,7 +183,28 @@ class LoopSizeWindow(InstallWindow): def getScreen (self): # XXX error check mount that this check tries if self.todo.setupFilesystems: - avail = apply(isys.spaceAvailable, self.todo.fstab.getRootDevice()) + rootdev = self.todo.fstab.getRootDevice() + avail = apply(isys.spaceAvailable, rootdev) + + # add in size of loopback files if they exist + extra = 0 + try: + import os, stat + isys.mount(rootdev[0], "/mnt/space", fstype = rootdev[1]) + extra = extra + os.stat("/mnt/space/redhat.img")[stat.ST_SIZE] + extra = extra + os.stat("/mnt/space/rh-swap.img")[stat.ST_SIZE] + isys.umount("/mnt/space") + except: + pass + + # do this separate since we dont know when above failed + try: + isys.umount("/mnt/space") + except: + pass + + extra = extra / 1024 / 1024 + avail = avail + extra else: # test mode avail = 5000 diff --git a/textw/partitioning_text.py b/textw/partitioning_text.py index 56e85aef5..0d4455e4b 100644 --- a/textw/partitioning_text.py +++ b/textw/partitioning_text.py @@ -296,7 +296,29 @@ class LoopSizeWindow: if not todo.fstab.rootOnLoop(): return INSTALL_NOOP - avail = apply(isys.spaceAvailable, todo.fstab.getRootDevice()) + rootdev = todo.fstab.getRootDevice() + avail = apply(isys.spaceAvailable, rootdev) + + # add in size of loopback files if they exist + extra = 0 + try: + import os, stat + isys.mount(rootdev[0], "/mnt/space", fstype = rootdev[1]) + extra = extra + os.stat("/mnt/space/redhat.img")[stat.ST_SIZE] + extra = extra + os.stat("/mnt/space/rh-swap.img")[stat.ST_SIZE] + isys.umount("/mnt/space") + except: + pass + + # do this separate since we dont know when above failed + try: + isys.umount("/mnt/space") + except: + pass + + extra = extra / 1024 / 1024 + avail = avail + extra + (size, swapSize) = todo.fstab.getLoopbackSize() if not size: size = avail / 2 |