Version 2.02.149 -
==================================
- Report highest mapping for thin volume as Meta%.
Do not flush thin-pool when checking metadata fullness.
Remove spurious error about no value in /sys/dev/block/major:minor/dm/uuid.
Fix device mismatch detection for LV if persistent .cache file is used.
if (!segtype->ops->target_percent)
continue;
- /* For thin volume pass device size via 'total_numerator' */
- if (!seg && segtype_is_thin_volume(segtype))
- total_numerator = length - 1; /* highest mapped is 0 .. (length - 1) */
-
if (!segtype->ops->target_percent(&dm->target_state,
&percent, dm->mem,
dm->cmd, seg, params,
static int _thin_target_percent(void **target_state __attribute__((unused)),
dm_percent_t *percent,
struct dm_pool *mem,
- struct cmd_context *cmd,
+ struct cmd_context *cmd __attribute__((unused)),
struct lv_segment *seg,
char *params,
uint64_t *total_numerator,
*percent = dm_make_percent(s->mapped_sectors, csize);
*total_denominator += csize;
- *total_numerator += s->mapped_sectors;
} else {
- /* Using denominator to pass the mapped info upward? */
- if (s->highest_mapped_sector > *total_numerator) {
- log_warn("WARNING: highest mapped sector %s is above device size.",
- display_size(cmd, s->highest_mapped_sector));
- s->highest_mapped_sector = *total_numerator;
- }
- *percent = dm_make_percent(s->highest_mapped_sector, *total_numerator);
+ /* No lv_segment info here */
+ *percent = DM_PERCENT_INVALID;
+ /* FIXME: Using denominator to pass the mapped info upward? */
*total_denominator += s->highest_mapped_sector;
}
+ *total_numerator += s->mapped_sectors;
+
return 1;
}