[lvm-devel] master - libdm: move thin max size to header
Zdenek Kabelac
zkabelac at fedoraproject.org
Tue Jun 11 12:21:20 UTC 2013
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=861fd1108f4873f549c1e1b852243edcf03493d9
Commit: 861fd1108f4873f549c1e1b852243edcf03493d9
Parent: 9ac0f58ea13dc068806ff1085e0ea06a7840d5fd
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Wed May 22 15:02:55 2013 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Jun 11 14:21:00 2013 +0200
libdm: move thin max size to header
Move max size of thin metadata into define.
Increase a bit the size to match the kernel size.
(16978542592->17112760320)
---
libdm/libdevmapper.h | 7 +++++++
libdm/libdm-deptree.c | 15 ++++-----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h
index dba8548..bada775 100644
--- a/libdm/libdevmapper.h
+++ b/libdm/libdevmapper.h
@@ -749,6 +749,13 @@ int dm_tree_node_add_replicator_dev_target(struct dm_tree_node *node,
*/
#define DM_THIN_MIN_DATA_BLOCK_SIZE (UINT32_C(128))
#define DM_THIN_MAX_DATA_BLOCK_SIZE (UINT32_C(2097152))
+/*
+ * Max supported size for thin pool metadata device (17112760320 bytes)
+ * Limitation is hardcoded into the kernel and bigger device size
+ * is not accepted.
+ * drivers/md/dm-thin-metadata.h THIN_METADATA_MAX_SECTORS
+ */
+#define DM_THIN_MAX_METADATA_SIZE (UINT64_C(255) * (1 << 14) * (4096 / (1 << 9)) - 256 * 1024)
int dm_tree_node_add_thin_pool_target(struct dm_tree_node *node,
uint64_t size,
diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c
index f8c0d7a..50ed908 100644
--- a/libdm/libdm-deptree.c
+++ b/libdm/libdm-deptree.c
@@ -3232,13 +3232,6 @@ int dm_tree_node_add_thin_pool_target(struct dm_tree_node *node,
{
struct load_segment *seg, *mseg;
uint64_t devsize = 0;
- /*
- * Max supported size for thin pool metadata device
- * Limitation is hardcoded into kernel and bigger
- * device size is not accepted. (16978542592)
- */
- const uint64_t max_metadata_size =
- 255ULL * (1 << 14) * (4096 / (1 << 9)) - 256 * 1024;
if (data_block_size < DM_THIN_MIN_DATA_BLOCK_SIZE) {
log_error("Data block size %u is lower then %u sectors.",
@@ -3266,11 +3259,11 @@ int dm_tree_node_add_thin_pool_target(struct dm_tree_node *node,
/* FIXME: more complex target may need more tweaks */
dm_list_iterate_items(mseg, &seg->metadata->props.segs) {
devsize += mseg->size;
- if (devsize > max_metadata_size) {
+ if (devsize > DM_THIN_MAX_METADATA_SIZE) {
log_debug_activation("Ignoring %" PRIu64 " of device.",
- devsize - max_metadata_size);
- mseg->size -= (devsize - max_metadata_size);
- devsize = max_metadata_size;
+ devsize - DM_THIN_MAX_METADATA_SIZE);
+ mseg->size -= (devsize - DM_THIN_MAX_METADATA_SIZE);
+ devsize = DM_THIN_MAX_METADATA_SIZE;
/* FIXME: drop remaining segs */
}
}
More information about the lvm-devel
mailing list