[lvm-devel] master - lvconvert: limit libdm to maximum of 64 RAID devices

Heinz Mauelshagen heinzm at sourceware.org
Mon Feb 27 20:42:55 UTC 2017


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=27384c52cf6a55ec7c8d64deecff2a81536193c7
Commit:        27384c52cf6a55ec7c8d64deecff2a81536193c7
Parent:        c41e99948819e896d9d06b4a8192ec7a63facf65
Author:        Heinz Mauelshagen <heinzm at redhat.com>
AuthorDate:    Mon Feb 27 21:42:15 2017 +0100
Committer:     Heinz Mauelshagen <heinzm at redhat.com>
CommitterDate: Mon Feb 27 21:42:15 2017 +0100

lvconvert: limit libdm to maximum of 64 RAID devices

Commit 64a2fad5d6c6 raised the maximum number of RAID devices to 64.

Commit e2354ea344c2 introduced RAID_BITMAP_SIZE as 4 to have
256 bits (4 * 64 bit array members), thus changing the libdm API
unnecessarilly for the time being.

To not change the API, reduce RAID_BITMAP_SIZE to 1.
Remove an unneeded definition of it from libdm-common.h.

If we ever decide to raise past 64, we'll version the API.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978
---
 libdm/libdevmapper.h |   11 ++++++++++-
 libdm/libdm-common.h |    2 --
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h
index 7fccac5..7136261 100644
--- a/libdm/libdevmapper.h
+++ b/libdm/libdevmapper.h
@@ -1739,7 +1739,16 @@ int dm_tree_node_add_raid_target(struct dm_tree_node *node,
  */
 #define DM_CACHE_METADATA_MAX_SECTORS DM_THIN_METADATA_MAX_SECTORS
 
-#define	RAID_BITMAP_SIZE 4
+/*
+ * Define number of elements in rebuild and writemostly arrays
+ * 'of struct dm_tree_node_raid_params'.
+ *
+ * Set to one to keep the current libdm API!
+ *
+ * If we ever raise the maximum number of RAID devices past 64 thus
+ * changing the API, we have to version it for backwards API compatibility.
+ */
+#define	RAID_BITMAP_SIZE 1
 
 struct dm_tree_node_raid_params {
 	const char *raid_type;
diff --git a/libdm/libdm-common.h b/libdm/libdm-common.h
index a064db8..4dc1870 100644
--- a/libdm/libdm-common.h
+++ b/libdm/libdm-common.h
@@ -23,8 +23,6 @@
 #define DEV_NAME(dmt) (dmt->mangled_dev_name ? : dmt->dev_name)
 #define DEV_UUID(DMT) (dmt->mangled_uuid ? : dmt->uuid)
 
-#define RAID_BITMAP_SIZE	4
-
 int mangle_string(const char *str, const char *str_name, size_t len,
 		  char *buf, size_t buf_len, dm_string_mangling_t mode);
 




More information about the lvm-devel mailing list