[PATCH 1/3] Reverting partition's size shouldn't require it to be aligned (#1165714)

Vratislav Podzimek vpodzime at redhat.com
Thu Nov 27 12:46:26 UTC 2014


If the original size was unaligned, it's not our fault and we can do nothing
about it.

Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
 blivet/devices.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/blivet/devices.py b/blivet/devices.py
index c66bfd4..7f03a4d 100644
--- a/blivet/devices.py
+++ b/blivet/devices.py
@@ -605,6 +605,8 @@ class StorageDevice(Device):
                 size = read_int_from_sys("%s/size" % device_root)
                 self._size = Size(size * sector_size)
 
+        self._orig_size = self._size
+
     def __str__(self):
         exist = "existing"
         if not self.exists:
@@ -743,7 +745,7 @@ class StorageDevice(Device):
                       newsize, self.minSize)
             raise ValueError("size is smaller than the minimum for this device")
 
-        if self.alignTargetSize(newsize) != newsize:
+        if self.alignTargetSize(newsize) != newsize and newsize != self._orig_size:
             raise ValueError("new size would violate alignment requirements")
 
         self._targetSize = newsize
@@ -1480,6 +1482,8 @@ class PartitionDevice(StorageDevice):
             self.req_start_sector = start
             self.req_end_sector = end
 
+        self._orig_size = self._size
+
     def __repr__(self):
         s = StorageDevice.__repr__(self)
         s += ("  grow = %(grow)s  max size = %(maxsize)s  bootable = %(bootable)s\n"
@@ -1546,7 +1550,8 @@ class PartitionDevice(StorageDevice):
                 # this gets handled in superclass setter, below
                 aligned = newsize
 
-            if aligned != newsize:
+            # reverting to unaligned original size is not an issue
+            if aligned != newsize and newsize != self._orig_size:
                 raise ValueError("new size will not yield an aligned partition")
 
             # change this partition's geometry in-memory so that other
-- 
1.9.3



More information about the anaconda-patches mailing list