From 248c239b272a6bcd0deffb62ed51a83bb71a1593 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 9 Nov 2020 11:42:58 +0100 Subject: [PATCH] libblkid: export blkid_probe_reset_hints() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * make hints persistent and do not call blkid_probe_reset_hints() in blkid_probe_set_device() * export blkid_probe_reset_hints() by API to keep it completely in user's hands Reported-by: Pali Rohár Signed-off-by: Karel Zak --- libblkid/docs/libblkid-sections.txt | 1 + libblkid/src/blkid.h.in | 2 ++ libblkid/src/libblkid.sym | 1 + libblkid/src/probe.c | 12 ++++++++---- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/libblkid/docs/libblkid-sections.txt b/libblkid/docs/libblkid-sections.txt index 0f18d929cb..c0dc0d48d7 100644 --- a/libblkid/docs/libblkid-sections.txt +++ b/libblkid/docs/libblkid-sections.txt @@ -57,6 +57,7 @@ blkid_probe_get_wholedisk_devno blkid_probe_hide_range blkid_probe_is_wholedisk blkid_probe_reset_buffers +blkid_probe_reset_hints blkid_probe_set_device blkid_probe_set_hint blkid_probe_set_sectorsize diff --git a/libblkid/src/blkid.h.in b/libblkid/src/blkid.h.in index 6550ed7a6d..3cd4116d91 100644 --- a/libblkid/src/blkid.h.in +++ b/libblkid/src/blkid.h.in @@ -257,6 +257,8 @@ extern int blkid_probe_get_fd(blkid_probe pr) extern int blkid_probe_set_hint(blkid_probe pr, const char *name, uint64_t value) __ul_attribute__((nonnull)); +extern void blkid_probe_reset_hints(blkid_probe pr) + __ul_attribute__((nonnull)); /* * superblocks probing diff --git a/libblkid/src/libblkid.sym b/libblkid/src/libblkid.sym index 4eb4c18e0e..366f2c0c04 100644 --- a/libblkid/src/libblkid.sym +++ b/libblkid/src/libblkid.sym @@ -181,4 +181,5 @@ BLKID_2_36 { BLKID_2_37 { blkid_probe_set_hint; + blkid_probe_reset_hints; } BLKID_2_36; diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c index 7a7c902f0d..113a5eec1f 100644 --- a/libblkid/src/probe.c +++ b/libblkid/src/probe.c @@ -121,7 +121,6 @@ static const struct blkid_chaindrv *chains_drvs[] = { }; static void blkid_probe_reset_values(blkid_probe pr); -static void blkid_probe_reset_hints(blkid_probe pr); /** * blkid_new_probe: @@ -406,7 +405,6 @@ void blkid_reset_probe(blkid_probe pr) int i; blkid_probe_reset_values(pr); - blkid_probe_reset_hints(pr); blkid_probe_set_wiper(pr, 0, 0); pr->cur_chain = NULL; @@ -2038,7 +2036,7 @@ void blkid_probe_use_wiper(blkid_probe pr, uint64_t off, uint64_t size) } /** - * blkid_probe_set_hint + * blkid_probe_set_hint: * @pr: probe * @name: hint name or NAME=value * @value: offset or another number @@ -2114,7 +2112,13 @@ int blkid_probe_get_hint(blkid_probe pr, const char *name, uint64_t *value) return -EINVAL; } -static void blkid_probe_reset_hints(blkid_probe pr) +/** + * blkid_probe_reset_hints: + * @pr probe + * + * Removes all previously defined probinig hints. See also blkid_probe_set_hint(). + */ +void blkid_probe_reset_hints(blkid_probe pr) { if (list_empty(&pr->hints)) return; -- 2.47.2