[PATCH 12/16] Make sure partition base sizes are adequate for their formatting.

David Lehman dlehman at redhat.com
Thu Oct 11 23:46:02 UTC 2012


There is no guarantee of growth, so be sure to start with a size
that can hold the specified formatting.
---
 pyanaconda/storage/__init__.py |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/pyanaconda/storage/__init__.py b/pyanaconda/storage/__init__.py
index 6f60ec4..6f1ca3b 100644
--- a/pyanaconda/storage/__init__.py
+++ b/pyanaconda/storage/__init__.py
@@ -1851,6 +1851,7 @@ class Storage(object):
         device_space = factory.device_size
         log.debug("device requires %d" % device_space)
         container_size += device_space
+        base_size = max(1, getFormat(factory.member_format).minSize)
 
         # XXX TODO: multiple member devices per disk
 
@@ -1859,7 +1860,7 @@ class Storage(object):
             if isinstance(member, LUKSDevice):
                 member = member.slave
 
-            member.req_base_size = 1
+            member.req_base_size = base_size
             member.req_size = member.req_base_size
             member.req_grow = True
 
@@ -1873,7 +1874,8 @@ class Storage(object):
                 member_format = factory.member_format
 
             try:
-                member = self.newPartition(parents=[disk], grow=True, size=1,
+                member = self.newPartition(parents=[disk], grow=True,
+                                           size=base_size,
                                            fmt_type=member_format)
             except StorageError as e:
                 log.error("failed to create new member partition: %s" % e)
@@ -3226,7 +3228,8 @@ class PartitionFactory(DeviceFactory):
                 log.info("adjusting device size from %.2f to %.2f"
                                 % (device.size, size))
 
-            device.req_base_size = min(PartitionFactory.default_size, size)
+            size = min(PartitionFactory.default_size, size)
+            device.req_base_size = max(size, device.format.minSize)
             device.req_size = device.req_base_size
             device.req_max_size = size
             device.req_grow = size > device.req_base_size
-- 
1.7.7.6



More information about the anaconda-patches mailing list