aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
authorKristian Amlie <kristian.amlie@mender.io>2017-03-10 14:16:27 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-21 22:43:00 +0000
commit485315dc170e29962a8848db38db73abafd0586e (patch)
tree7328bdb70fd3d0a2733778a94a032bdc38701662 /scripts/lib
parent8e4b4e28a7c3a9dbd6b9298bea5d2c1328b3f24a (diff)
downloadopenembedded-core-contrib-485315dc170e29962a8848db38db73abafd0586e.tar.gz
wic/partionedfs: Avoid reserving space for non-existing ext. partition
We don't need the gap that the extended partition occupies if we already know that we have less than five partitions. Saves up to one full alignment of space. Signed-off-by: Kristian Amlie <kristian.amlie@mender.io> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/wic/plugins/imager/direct.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py
index 235eb24f59..7d38ab34fb 100644
--- a/scripts/lib/wic/plugins/imager/direct.py
+++ b/scripts/lib/wic/plugins/imager/direct.py
@@ -344,6 +344,10 @@ class PartitionedImage():
logger.debug("Assigning %s partitions to disks", self.ptable_format)
+ # The number of primary and logical partitions. Extended partition and
+ # partitions not listed in the table are not included.
+ num_real_partitions = len([p for p in self.partitions if not p.no_table])
+
# Go through partitions in the order they are added in .ks file
for num in range(len(self.partitions)):
part = self.partitions[num]
@@ -369,7 +373,7 @@ class PartitionedImage():
# Skip one sector required for the partitioning scheme overhead
self.offset += overhead
- if self.realpart > 3:
+ if self.realpart > 3 and num_real_partitions > 4:
# Reserve a sector for EBR for every logical partition
# before alignment is performed.
if self.ptable_format == "msdos":
@@ -408,7 +412,7 @@ class PartitionedImage():
if self.ptable_format == "msdos":
# only count the partitions that are in partition table
- if len([p for p in self.partitions if not p.no_table]) > 4:
+ if num_real_partitions > 4:
if self.realpart > 3:
part.type = 'logical'
part.num = self.realpart + 1