summaryrefslogtreecommitdiffstats
path: root/libfdisk/src/dos.c
diff options
context:
space:
mode:
authorKarel Zak2015-02-03 13:20:45 +0100
committerKarel Zak2015-02-03 13:20:45 +0100
commit68fe4b2822018cb952e6b0c7dbca75a228cc7117 (patch)
treeac2e680f8e92c69c5bbde9e0b4624fab27fa3b02 /libfdisk/src/dos.c
parentcfdisk: improve ui_get_size() warnings (diff)
downloadkernel-qcow2-util-linux-68fe4b2822018cb952e6b0c7dbca75a228cc7117.tar.gz
kernel-qcow2-util-linux-68fe4b2822018cb952e6b0c7dbca75a228cc7117.tar.xz
kernel-qcow2-util-linux-68fe4b2822018cb952e6b0c7dbca75a228cc7117.zip
libfdisk: don't align very small partitions
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk/src/dos.c')
-rw-r--r--libfdisk/src/dos.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c
index 73b985b88..24b824c2e 100644
--- a/libfdisk/src/dos.c
+++ b/libfdisk/src/dos.c
@@ -1197,6 +1197,11 @@ static int add_partition(struct fdisk_context *cxt, size_t n,
if (stop > limit)
stop = limit;
+ if (isrel && stop - start < cxt->grain)
+ /* Don't try to be smart on very small partitions and don't
+ * align so small sizes, just follow the resurst */
+ isrel = 0;
+
if (stop < limit) {
if (isrel && alignment_required(cxt)) {
/* the last sector has not been exactly requested (but