From: Karel Zak Date: Tue, 4 Apr 2023 09:04:51 +0000 (+0200) Subject: libblkid: copy BLKID_PARTS_FORCE_GPT to whole-disk prober X-Git-Tag: v2.39-rc2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=22769acf56daf6683d635fe92e06ceb52e0433ff;p=thirdparty%2Futil-linux.git libblkid: copy BLKID_PARTS_FORCE_GPT to whole-disk prober Addresses: https://github.com/util-linux/util-linux/discussions/2146 Signed-off-by: Karel Zak --- diff --git a/libblkid/src/blkidP.h b/libblkid/src/blkidP.h index 5d2a02055d..007cc357b1 100644 --- a/libblkid/src/blkidP.h +++ b/libblkid/src/blkidP.h @@ -544,6 +544,9 @@ extern int blkid_probe_get_hint(blkid_probe pr, const char *name, uint64_t *valu __attribute__((nonnull(1,2))) __attribute__((warn_unused_result)); +extern int blkid_probe_get_partitions_flags(blkid_probe pr) + __attribute__((nonnull)); + /* filter bitmap macros */ #define blkid_bmp_wordsize (8 * sizeof(unsigned long)) #define blkid_bmp_idx_bit(item) (1UL << ((item) % blkid_bmp_wordsize)) diff --git a/libblkid/src/partitions/partitions.c b/libblkid/src/partitions/partitions.c index ae63a38cca..1c344fd303 100644 --- a/libblkid/src/partitions/partitions.c +++ b/libblkid/src/partitions/partitions.c @@ -234,6 +234,11 @@ int blkid_probe_set_partitions_flags(blkid_probe pr, int flags) return 0; } +int blkid_probe_get_partitions_flags(blkid_probe pr) +{ + return pr->chains[BLKID_CHAIN_PARTS].flags; +} + /** * blkid_probe_reset_partitions_filter: * @pr: prober diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c index 35de303346..b4299493fb 100644 --- a/libblkid/src/probe.c +++ b/libblkid/src/probe.c @@ -1930,6 +1930,7 @@ blkid_probe blkid_probe_get_wholedisk_probe(blkid_probe pr) if (!pr->disk_probe) { /* Open a new disk prober */ char *disk_path = blkid_devno_to_devname(disk); + int flags; if (!disk_path) return NULL; @@ -1942,6 +1943,11 @@ blkid_probe blkid_probe_get_wholedisk_probe(blkid_probe pr) if (!pr->disk_probe) return NULL; /* ENOMEM? */ + + flags = blkid_probe_get_partitions_flags(pr); + if (flags & BLKID_PARTS_FORCE_GPT) + blkid_probe_set_partitions_flags(pr->disk_probe, + BLKID_PARTS_FORCE_GPT); } return pr->disk_probe;