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

David Lehman dlehman at redhat.com
Mon Dec 1 15:27:36 UTC 2014


On 11/27/2014 06:46 AM, Vratislav Podzimek wrote:
> 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
> +

You can drop this and the other chunk like it and compare the new target 
size against self.currentSize instead. Looks fine otherwise.

David

>       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
>



More information about the anaconda-patches mailing list