Karel Zak 18b0e4
From f58a63a3d88cccd5fdf53ead425c5e8186f32cc1 Mon Sep 17 00:00:00 2001
Karel Zak 18b0e4
From: Andrey Albershteyn <aalbersh@redhat.com>
Karel Zak 18b0e4
Date: Mon, 2 May 2022 17:08:33 +0200
Karel Zak 18b0e4
Subject: libblkid: merge FS* flags into one FSINFO
Karel Zak 18b0e4
Karel Zak 18b0e4
Put BLOCK_SIZE, FSSIZE and FSLASTBLOCK tags under one FSINFO flag.
Karel Zak 18b0e4
These, and probably future ones, are read directly from the
Karel Zak 18b0e4
superblock (with minor post-processing). These properties are
Karel Zak 18b0e4
combined under one flag to escape adding a flag per superblock
Karel Zak 18b0e4
member.
Karel Zak 18b0e4
Karel Zak 18b0e4
Upstream: http://github.com/util-linux/util-linux/commit/c9b2297eb
Karel Zak 18b0e4
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=2064810
Karel Zak 18b0e4
Signed-off-by: Andrey Albershteyn <aalbersh@redhat.com>
Karel Zak 18b0e4
---
Karel Zak 18b0e4
 libblkid/samples/superblocks.c         |  3 +--
Karel Zak 18b0e4
 libblkid/src/blkid.h.in                | 23 +++++++++++------------
Karel Zak 18b0e4
 libblkid/src/superblocks/superblocks.c |  9 +++++++--
Karel Zak 18b0e4
 misc-utils/blkid.c                     |  3 +--
Karel Zak 18b0e4
 4 files changed, 20 insertions(+), 18 deletions(-)
Karel Zak 18b0e4
Karel Zak 18b0e4
diff --git a/libblkid/samples/superblocks.c b/libblkid/samples/superblocks.c
Karel Zak 18b0e4
index b7f94ec14..5253f9cc4 100644
Karel Zak 18b0e4
--- a/libblkid/samples/superblocks.c
Karel Zak 18b0e4
+++ b/libblkid/samples/superblocks.c
Karel Zak 18b0e4
@@ -44,8 +44,7 @@ int main(int argc, char *argv[])
Karel Zak 18b0e4
 			BLKID_SUBLKS_UUID | BLKID_SUBLKS_UUIDRAW |
Karel Zak 18b0e4
 			BLKID_SUBLKS_TYPE | BLKID_SUBLKS_SECTYPE |
Karel Zak 18b0e4
 			BLKID_SUBLKS_USAGE | BLKID_SUBLKS_VERSION |
Karel Zak 18b0e4
-			BLKID_SUBLKS_MAGIC | BLKID_SUBLKS_FSSIZE |
Karel Zak 18b0e4
-			BLKID_SUBLKS_FSLASTBLOCK);
Karel Zak 18b0e4
+			BLKID_SUBLKS_MAGIC | BLKID_SUBLKS_FSINFO);
Karel Zak 18b0e4
 
Karel Zak 18b0e4
 	rc = blkid_do_safeprobe(pr);
Karel Zak 18b0e4
 	if (rc == -1)
Karel Zak 18b0e4
diff --git a/libblkid/src/blkid.h.in b/libblkid/src/blkid.h.in
Karel Zak 18b0e4
index 56e64f9ab..ae4e555e3 100644
Karel Zak 18b0e4
--- a/libblkid/src/blkid.h.in
Karel Zak 18b0e4
+++ b/libblkid/src/blkid.h.in
Karel Zak 18b0e4
@@ -271,18 +271,17 @@ extern int blkid_superblocks_get_name(size_t idx, const char **name, int *usage)
Karel Zak 18b0e4
 extern int blkid_probe_enable_superblocks(blkid_probe pr, int enable)
Karel Zak 18b0e4
 			__ul_attribute__((nonnull));
Karel Zak 18b0e4
 
Karel Zak 18b0e4
-#define BLKID_SUBLKS_LABEL		(1 << 1) /* read LABEL from superblock */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_LABELRAW		(1 << 2) /* read and define LABEL_RAW result value*/
Karel Zak 18b0e4
-#define BLKID_SUBLKS_UUID		(1 << 3) /* read UUID from superblock */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_UUIDRAW		(1 << 4) /* read and define UUID_RAW result value */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_TYPE		(1 << 5) /* define TYPE result value */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_SECTYPE		(1 << 6) /* define compatible fs type (second type) */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_USAGE		(1 << 7) /* define USAGE result value */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_VERSION		(1 << 8) /* read FS type from superblock */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_MAGIC		(1 << 9) /* define SBMAGIC and SBMAGIC_OFFSET */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_BADCSUM		(1 << 10) /* allow a bad checksum */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_FSSIZE		(1 << 11) /* read and define FSSIZE from superblock */
Karel Zak 18b0e4
-#define BLKID_SUBLKS_FSLASTBLOCK	(1 << 12) /* read and define FSLASTBLOCK from superblock */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_LABEL	(1 << 1) /* read LABEL from superblock */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_LABELRAW	(1 << 2) /* read and define LABEL_RAW result value*/
Karel Zak 18b0e4
+#define BLKID_SUBLKS_UUID	(1 << 3) /* read UUID from superblock */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_UUIDRAW	(1 << 4) /* read and define UUID_RAW result value */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_TYPE	(1 << 5) /* define TYPE result value */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_SECTYPE	(1 << 6) /* define compatible fs type (second type) */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_USAGE	(1 << 7) /* define USAGE result value */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_VERSION	(1 << 8) /* read FS type from superblock */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_MAGIC	(1 << 9) /* define SBMAGIC and SBMAGIC_OFFSET */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_BADCSUM	(1 << 10) /* allow a bad checksum */
Karel Zak 18b0e4
+#define BLKID_SUBLKS_FSINFO	(1 << 11) /* read and define fs properties from superblock */
Karel Zak 18b0e4
 
Karel Zak 18b0e4
 #define BLKID_SUBLKS_DEFAULT	(BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID | \
Karel Zak 18b0e4
 				 BLKID_SUBLKS_TYPE | BLKID_SUBLKS_SECTYPE)
Karel Zak 18b0e4
diff --git a/libblkid/src/superblocks/superblocks.c b/libblkid/src/superblocks/superblocks.c
Karel Zak 18b0e4
index 5b899a830..a1f42c611 100644
Karel Zak 18b0e4
--- a/libblkid/src/superblocks/superblocks.c
Karel Zak 18b0e4
+++ b/libblkid/src/superblocks/superblocks.c
Karel Zak 18b0e4
@@ -562,6 +562,11 @@ int blkid_probe_sprintf_version(blkid_probe pr, const char *fmt, ...)
Karel Zak 18b0e4
 
Karel Zak 18b0e4
 int blkid_probe_set_block_size(blkid_probe pr, unsigned block_size)
Karel Zak 18b0e4
 {
Karel Zak 18b0e4
+	struct blkid_chain *chn = blkid_probe_get_chain(pr);
Karel Zak 18b0e4
+
Karel Zak 18b0e4
+	if (!(chn->flags & BLKID_SUBLKS_FSINFO))
Karel Zak 18b0e4
+		return 0;
Karel Zak 18b0e4
+
Karel Zak 18b0e4
 	return blkid_probe_sprintf_value(pr, "BLOCK_SIZE", "%u", block_size);
Karel Zak 18b0e4
 }
Karel Zak 18b0e4
 
Karel Zak 18b0e4
@@ -591,7 +596,7 @@ int blkid_probe_set_fssize(blkid_probe pr, uint64_t size)
Karel Zak 18b0e4
 {
Karel Zak 18b0e4
 	struct blkid_chain *chn = blkid_probe_get_chain(pr);
Karel Zak 18b0e4
 
Karel Zak 18b0e4
-	if (!(chn->flags & BLKID_SUBLKS_FSSIZE))
Karel Zak 18b0e4
+	if (!(chn->flags & BLKID_SUBLKS_FSINFO))
Karel Zak 18b0e4
 		return 0;
Karel Zak 18b0e4
 
Karel Zak 18b0e4
 	return blkid_probe_sprintf_value(pr, "FSSIZE", "%" PRIu64, size);
Karel Zak 18b0e4
@@ -601,7 +606,7 @@ int blkid_probe_set_fslastblock(blkid_probe pr, uint64_t lastblock)
Karel Zak 18b0e4
 {
Karel Zak 18b0e4
 	struct blkid_chain *chn = blkid_probe_get_chain(pr);
Karel Zak 18b0e4
 
Karel Zak 18b0e4
-	if (!(chn->flags & BLKID_SUBLKS_FSLASTBLOCK))
Karel Zak 18b0e4
+	if (!(chn->flags & BLKID_SUBLKS_FSINFO))
Karel Zak 18b0e4
 		return 0;
Karel Zak 18b0e4
 
Karel Zak 18b0e4
 	return blkid_probe_sprintf_value(pr, "FSLASTBLOCK", "%" PRIu64,
Karel Zak 18b0e4
diff --git a/misc-utils/blkid.c b/misc-utils/blkid.c
Karel Zak 18b0e4
index f2b190ce3..744151616 100644
Karel Zak 18b0e4
--- a/misc-utils/blkid.c
Karel Zak 18b0e4
+++ b/misc-utils/blkid.c
Karel Zak 18b0e4
@@ -893,8 +893,7 @@ int main(int argc, char **argv)
Karel Zak 18b0e4
 				BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID |
Karel Zak 18b0e4
 				BLKID_SUBLKS_TYPE | BLKID_SUBLKS_SECTYPE |
Karel Zak 18b0e4
 				BLKID_SUBLKS_USAGE | BLKID_SUBLKS_VERSION |
Karel Zak 18b0e4
-				BLKID_SUBLKS_FSSIZE | BLKID_SUBLKS_FSLASTBLOCK);
Karel Zak 18b0e4
-
Karel Zak 18b0e4
+				BLKID_SUBLKS_FSINFO);
Karel Zak 18b0e4
 
Karel Zak 18b0e4
 			if (fltr_usage &&
Karel Zak 18b0e4
 			    blkid_probe_filter_superblocks_usage(pr, fltr_flag, fltr_usage))
Karel Zak 18b0e4
-- 
Karel Zak 18b0e4
2.36.1
Karel Zak 18b0e4