]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: treat size mismatch as a warning, not an error
authorKarel Zak <kzak@redhat.com>
Fri, 11 Oct 2013 09:38:29 +0000 (11:38 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 11 Oct 2013 09:38:29 +0000 (11:38 +0200)
 Based on kernel patch from Doug Anderson <dianders@chromium.org>.

Signed-off-by: Karel Zak <kzak@redhat.com>
libfdisk/src/gpt.c

index 448b1ff79b69ad812ceda622307911a0b3778c96..6d222061a2053f9c9c172b82231c98003466a2ed 100644 (file)
@@ -509,11 +509,18 @@ check_hybrid:
         * the disk size.
         *
         * Hybrid MBRs do not necessarily comply with this.
+        *
+        * Consider a bad value here to be a warning to support dd-ing
+        * an image from a smaller disk to a bigger disk.
         */
        if (ret == GPT_MBR_PROTECTIVE) {
                sz_lba = le32_to_cpu(pmbr->partition_record[part].size_in_lba);
-               if (sz_lba != (uint32_t) cxt->total_sectors - 1 && sz_lba != 0xFFFFFFFF)
-                       ret = 0;
+               if (sz_lba != (uint32_t) cxt->total_sectors - 1 && sz_lba != 0xFFFFFFFF) {
+                       fdisk_warnx(cxt, _("GPT PMBR size mismatch (%u != %u) "
+                                          "will be corrected by w(rite)."),
+                                       sz_lba,
+                                       (uint32_t) cxt->total_sectors - 1);
+               }
        }
 done:
        return ret;