summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--iw/rootpartition_gui.py23
-rw-r--r--textw/partitioning_text.py24
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