diff options
author | Peter Rajnoha <prajnoha@redhat.com> | 2015-10-29 15:59:29 +0100 |
---|---|---|
committer | Peter Rajnoha <prajnoha@redhat.com> | 2015-10-29 16:00:32 +0100 |
commit | ccb8da404d00288b7d49c7a28006ec5d4687bb55 (patch) | |
tree | 6e3276ca521e92432fa1da530406b2418bdf1f81 | |
parent | 28e54032c092ed4a5592575ac716fe698ce75d22 (diff) | |
download | lvm2-ccb8da404d00288b7d49c7a28006ec5d4687bb55.tar.gz |
metadata: format_text: check metadata area size is at least MDA_SIZE_MIN
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | lib/format_text/format-text.c | 7 |
2 files changed, 7 insertions, 1 deletions
@@ -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, |