summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2015-10-29 15:59:29 +0100
committerPeter Rajnoha <prajnoha@redhat.com>2015-10-29 16:00:32 +0100
commitccb8da404d00288b7d49c7a28006ec5d4687bb55 (patch)
tree6e3276ca521e92432fa1da530406b2418bdf1f81
parent28e54032c092ed4a5592575ac716fe698ce75d22 (diff)
downloadlvm2-ccb8da404d00288b7d49c7a28006ec5d4687bb55.tar.gz
metadata: format_text: check metadata area size is at least MDA_SIZE_MIN
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/format_text/format-text.c7
2 files changed, 7 insertions, 1 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index f453604c7..03c70d6b6 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.133 -
======================================
+ Check metadata area size is at least minimum size of 8 * memory page size.
Thin pool targets uses low_water_mark from profile.
Dropping 'yet' from error of unsupported thick snapshot of snapshots.
Do not support unpartitioned DASD devices with CDL formatted with pvcreate.
diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c
index e0ec8edf1..6c653ca00 100644
--- a/lib/format_text/format-text.c
+++ b/lib/format_text/format-text.c
@@ -2146,7 +2146,6 @@ static int _text_pv_add_metadata_area(const struct format_type *fmt,
goto bad;
}
/* Otherwise, give up and take any usable space. */
- /* FIXME: We should probably check for some minimum MDA size here. */
else
mda_size = limit - mda_start;
@@ -2242,6 +2241,12 @@ static int _text_pv_add_metadata_area(const struct format_type *fmt,
FMTu64 ").", pv_dev_name(pv),
mda_size, limit_name, limit);
+ if (mda_size < MDA_SIZE_MIN) {
+ log_error("Metadata area size too small. "
+ "It must be at least %u bytes.", MDA_SIZE_MIN);
+ goto bad;
+ }
+
if (mda_size) {
/* Wipe metadata area with zeroes. */
if (!dev_set((struct device *) pv->dev, mda_start,