[lvm-devel] master - fix libblkid BLOCK_SIZE check

David Teigland teigland at sourceware.org
Thu Jun 11 18:06:38 UTC 2020


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=9fbad5bb0fdc7d9a9dca8539e4cd217c5ef1fede
Commit:        9fbad5bb0fdc7d9a9dca8539e4cd217c5ef1fede
Parent:        6ea3654868e3727b9197113f973e1c7edeed38b2
Author:        David Teigland <teigland at redhat.com>
AuthorDate:    Thu Jun 11 12:43:07 2020 -0500
Committer:     David Teigland <teigland at redhat.com>
CommitterDate: Thu Jun 11 12:43:07 2020 -0500

fix libblkid BLOCK_SIZE check

---
 lib/device/dev-type.c | 36 ++++++++++++------------------------
 1 file changed, 12 insertions(+), 24 deletions(-)

diff --git a/lib/device/dev-type.c b/lib/device/dev-type.c
index deb5d6a0f..e3fa9babb 100644
--- a/lib/device/dev-type.c
+++ b/lib/device/dev-type.c
@@ -649,37 +649,25 @@ out:
 #ifdef BLKID_WIPING_SUPPORT
 int get_fs_block_size(struct device *dev, uint32_t *fs_block_size)
 {
-	blkid_probe probe = NULL;
-	const char *block_size_str = NULL;
+	char *block_size_str = NULL;
 	uint64_t block_size_val;
-	int r = 0;
 
-	*fs_block_size = 0;
-
-	if (!(probe = blkid_new_probe_from_filename(dev_name(dev)))) {
-		log_error("Failed to create a new blkid probe for device %s.", dev_name(dev));
-		goto out;
+	if ((block_size_str = blkid_get_tag_value(NULL, "BLOCK_SIZE", dev_name(dev)))) {
+		block_size_val = strtoull(block_size_str, NULL, 10);
+		*fs_block_size = (uint32_t)block_size_val;
+		free(block_size_str);
+		log_debug("Found blkid BLOCK_SIZE %u for fs on %s", *fs_block_size, dev_name(dev));
+		return 1;
+	} else {
+		log_debug("No blkid BLOCK_SIZE for fs on %s", dev_name(dev));
+		*fs_block_size = 0;
+		return 0;
 	}
-
-	blkid_probe_enable_partitions(probe, 1);
-
-	(void) blkid_probe_lookup_value(probe, "BLOCK_SIZE", &block_size_str, NULL);
-
-	if (!block_size_str)
-		goto out;
-
-	block_size_val = strtoull(block_size_str, NULL, 10);
-
-	*fs_block_size = (uint32_t)block_size_val;
-	r = 1;
-out:
-	if (probe)
-		blkid_free_probe(probe);
-	return r;
 }
 #else
 int get_fs_block_size(struct device *dev, uint32_t *fs_block_size)
 {
+	log_debug("Disabled blkid BLOCK_SIZE for fs.");
 	*fs_block_size = 0;
 	return 0;
 }




More information about the lvm-devel mailing list