From: Karel Zak Date: Fri, 8 Aug 2014 09:33:28 +0000 (+0200) Subject: fdisk: always print warning for mis-aligned partitions X-Git-Tag: v2.26-rc1~543 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9400a1ea727c183f92ad8d394605fdbe65fc476;p=thirdparty%2Futil-linux.git fdisk: always print warning for mis-aligned partitions This patch restores the original fdisk behavior and always prints information about misaligned partitions in 'p'print output. Signed-off-by: Karel Zak --- diff --git a/disk-utils/fdisk.c b/disk-utils/fdisk.c index 46e632aa3c..0eeeda1160 100644 --- a/disk-utils/fdisk.c +++ b/disk-utils/fdisk.c @@ -538,6 +538,9 @@ void list_disk_geometry(struct fdisk_context *cxt) void list_disklabel(struct fdisk_context *cxt) { struct fdisk_table *tb = NULL; + struct fdisk_partition *pa = NULL; + struct fdisk_iter *itr; + char *str; /* print label specific stuff by libfdisk FDISK_ASK_INFO API */ @@ -564,12 +567,20 @@ void list_disklabel(struct fdisk_context *cxt) } } + itr = fdisk_new_iter(FDISK_ITER_FORWARD); + + fputc('\n', stdout); + + while (itr && fdisk_table_next_partition(tb, itr, &pa) == 0) + fdisk_warn_alignment(cxt, fdisk_partition_get_start(pa), + fdisk_partition_get_partno(pa) + 1); + if (fdisk_table_wrong_order(tb)) { - fputc('\n', stdout); fdisk_info(cxt, _("Partition table entries are not in disk order.")); } fdisk_unref_table(tb); + fdisk_free_iter(itr); } static size_t skip_empty(const unsigned char *buf, size_t i, size_t sz) diff --git a/libfdisk/src/alignment.c b/libfdisk/src/alignment.c index 65b2c4a23f..5c13027c2d 100644 --- a/libfdisk/src/alignment.c +++ b/libfdisk/src/alignment.c @@ -105,7 +105,7 @@ sector_t fdisk_align_lba_in_range(struct fdisk_context *cxt, void fdisk_warn_alignment(struct fdisk_context *cxt, sector_t lba, int partition) { if (!lba_is_phy_aligned(cxt, lba)) - printf(_("Partition %i does not start on physical sector boundary.\n"), + fdisk_warnx(cxt, _("Partition %i does not start on physical sector boundary.\n"), partition + 1); }