From dc964f10d24499ea7fc90fd896a8b50c9c5e2d74 Mon Sep 17 00:00:00 2001 From: "Samantha N. Bueno" Date: Wed, 8 Jun 2016 13:47:40 -0400 Subject: [PATCH] Round down to nearest MiB value when writing ks parittion info. On s390x in particular, some partition alignment issue is causing fractional sizes to be reported. Pykickstart doesn't take anything except int values for partition info, hence the call to roundToNearest. This change only affects the data that is written to ks.cfg. Resolves: rhbz#1850670 --- blivet/devices/partition.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py index 0c56a6e7..76048aed 100644 --- a/blivet/devices/partition.py +++ b/blivet/devices/partition.py @@ -35,7 +35,7 @@ from ..storage_log import log_method_call from .. import udev from ..formats import DeviceFormat, get_format -from ..size import Size, MiB +from ..size import Size, MiB, ROUND_DOWN import logging log = logging.getLogger("blivet") @@ -967,7 +967,8 @@ def populate_ksdata(self, data): data.resize = (self.exists and self.target_size and self.target_size != self.current_size) if not self.exists: - data.size = self.req_base_size.convert_to(MiB) + # round this to nearest MiB before doing anything else + data.size = self.req_base_size.round_to_nearest(MiB, rounding=ROUND_DOWN).convert_to(spec=MiB) data.grow = self.req_grow if self.req_grow: data.max_size_mb = self.req_max_size.convert_to(MiB) @@ -980,4 +981,6 @@ def populate_ksdata(self, data): data.on_part = self.name # by-id if data.resize: - data.size = self.size.convert_to(MiB) + # on s390x in particular, fractional sizes are reported, which + # cause issues when writing to ks.cfg + data.size = self.size.round_to_nearest(MiB, rounding=ROUND_DOWN).convert_to(spec=MiB)