]> sourceware.org Git - lvm2.git/blob - WHATS_NEW
ef08b9f8871cbcf0b3ababb46212987fd09458fc
[lvm2.git] / WHATS_NEW
1 Version 2.03.28 -
2 ==================
3
4 Version 2.03.27 - 02nd October 2024
5 ===================================
6 Fix swap device size detection using blkid for lvresize/lvreduce/lvextend.
7 Detect GPT partition table and pass partition filter if no partitions defined.
8 Add global/sanlock_align_size option to configure sanlock lease size.
9 Disable mem locking when activation/reserved_stack or reserved_memory is 0.
10 Fix locking issues in lvmlockd leaving thin pool locked.
11 Deprecate vdo settings vdo_write_policy and vdo_write_policy.
12 Lots of typo fixes across lvm2 code base (codespell).
13 Corrected integrity parameter interleave_sectors for DM table line.
14 Ignore -i|--stripes, -I|--stripesize for lvextend on raid0 LV, like raid10.
15 Do not accept duplicate device names for pvcreate.
16
17 Version 2.03.26 - 23rd August 2024
18 ==================================
19 Fix internal error reported by pvmove on a VG with single PV.
20 Also accept --mknodes --refresh for vgscan.
21 Fix vgmknodes --refresh to wait for udev before checking /dev content.
22 Use log/report_command_log=1 config setting by default for JSON output format.
23 Fix unreleased memory pools on RAID lvextend.
24 Add --integritysettings option to manipulate dm-integrity settings.
25
26 Version 2.03.25 - 12nd July 2024
27 ================================
28 Utilize more radix_tree instead of dm_hash and btree.
29 Refactor DM uuid caching from device_mapper directory.
30 Enhance checking for DM uuid device.
31 Fix lvm shell command completion on tab key (2.03.24).
32 Avoid lockd_vg call to lvmlockd for local VGs.
33 Allow forced change of locktype from none.
34 Handle OPTIONS defined in /etc/sysconfig/lvmlockd.
35
36 Version 2.03.24 - 16th May 2024
37 ===============================
38 Lvconvert supports VDO options for thin-pool with vdo conversion.
39 Improve placement to .data.rel.ro and .rodata sections.
40 Fix support for -y and -W when creating thinpool with vdo.
41 Better support for runtime valgrind detection.
42 Allow command interruption when communicating with dmeventd.
43 Fix resize of VDO volume used for thin pool data volume.
44 Use -Wl,-z,now and -Wl,--as-needed for compilation by default.
45 Require 3.7 as minimal version for sanlock.
46 Share code for closing opened descriptors on program startup.
47 Fix memleak in lvmcache.
48 Add configure --with-default-event-activation=ON setting.
49 Fix return value from reporter function when hitting internal error.
50 Skip checking of pools for lvremove and vgremove commands.
51 VDO modprobes dm-vdo for 6.9 kernel and kvdo for older kernel version.
52 Fix lvs reporting for VDO volumes with new upstream kernel driver.
53 Don't import DM_UDEV_DISABLE_OTHER_RULES_FLAG in LVM rules, DM rules cover it.
54 Fix table line generation for cache snapshots using cachevol.
55 Enhance lvconvert support for external origins stacking.
56 When swapping LV names also swap properties like hostname, time and data.
57 Fix removal of stacked external origins.
58 Lock filesystem when converting volume to read-only external origin.
59 Support external origin between different thin-pool.
60 Improve validation of acceptable volumes for external origins.
61 Reduce amount of preloaded devices for complex device trees.
62 Avoid logging problems from monitoring snapshots with inactive origins.
63 Check for cache policy module presence in kernel's builtin modules file.
64 Add configure --with-modulesdir to select kernel modules directory.
65 Support creation of thin-pool with VDO use for its data volume.
66
67 Version 2.03.23 - 21st November 2023
68 ====================================
69 Set the first lv_attr flag for raid integrity images to i or I.
70 Add -A option for pvs and pvscan to show PVs outside devices file.
71 Improve searched_devnames temp file usage to prevent redundant scanning.
72 Change default search_for_devnames from auto to all.
73 Add lvmdevices --refresh to search for missing PVIDs on all devices.
74 Add comparison between old and new entries in lvmdevices --check.
75 Fix device_id matching order - match non-devname first.
76 Fix "lvconvert -m 0" when there is other than first in-sync leg.
77 Use system.devices as default for dmeventd when dmeventd.devices is undefined.
78 Accept WWIDs containing QEMU HARDDISK for device_id.
79 Improve handling of non-standard WWID prefixes used for device_id.
80 Configure automatically enables cmdlib for dmeventd and notify-dbus for dbus.
81 Fix hint calculation for pools with zero or error segment.
82 Configure supports --disable-shared to build only static binaries.
83 Configure supports --without-{blkid|systemd|udev} for easier static build.
84 Refresh device ids if the system changes.
85 Fix pvmove when specifying raid components as moved LVs.
86 Enhance error detection for lvm_import_vdo.
87 Support PV lists with thin lvconvert.
88 Fix support for lvm_import_vdo with SCSI VDO volumes.
89 Fix locking issue leading to hanging concurrent vgchange --refresh.
90 Recognise lvm.conf report/headings=2 for full column names in report headings.
91 Add --headings none|abbrev|full cmd line option to set report headings type.
92 Fix conversion to thin pool using lvmlockd.
93 Fix conversion from thick into thin volume using lvmlockd.
94 Require writable LV for conversion to vdo pool.
95 Fix return value from lvconvert integrity remove.
96 Preserve UUID for pool metadata spare.
97 Preserve UUID for swapped pool metadata.
98 Rewrite validation of device name entries used as device_id.
99
100 version 2.03.22 - 02nd August 2023
101 ==================================
102 Fix pv_major/pv_minor report field types so they are integers, not strings.
103 Add lvmdevices --delnotfound to delete entries for missing devices.
104 Always use cachepool name for metadata backup LV for lvconvert --repair.
105 Make metadata backup LVs read-only after pool's lvconvert --repair.
106 Improve VDO and Thin support with lvmlockd.
107 Handle 'lvextend --usepolicies' for pools for all activation variants.
108 Fix memleak in vgchange autoactivation setup.
109 Update py-compile building script.
110 Support conversion from thick to fully provisioned thin LV.
111 Cache/Thin-pool can use error and zero volumes for testing.
112 Individual thin volume can be cached, but cannot take snapshot.
113 Better internal support for handling error and zero target (for testing).
114 Resize COW above trimmed maximal size is does not return error.
115 Support parsing of vdo geometry format version 4.
116 Add lvm.conf thin_restore and cache_restore settings.
117 Handle multiple mounts while resizing volume with a FS.
118 Handle leading/trailing spaces in sys_wwid and sys_serial used by device_id.
119 Enhance lvm_import_vdo and use snapshot when converting VDO volume.
120 Fix parsing of VDO metadata.
121 Fix failing -S|--select for non-reporting cmds if using LV info/status fields.
122 Allow snapshots of raid+integrity LV.
123 Fix multisegment RAID1 allocator to prevent using single disk for more legs.
124
125 version 2.03.21 - 21st April 2023
126 =================================
127 Fix activation of vdo-pool for with 0 length headers (converted pools).
128 Avoid printing internal init messages when creation integration devices.
129 Allow (write)cache over raid+integrity LV.
130
131 version 2.03.20 - 21st March 2023
132 =================================
133 Fix segfault if using -S|--select with log/report_command_log=1 setting.
134 Configure now fails when requested lvmlockd dependencies are missing.
135 Add some configure Gentoo enhancements for static builds.
136
137 version 2.03.19 - 21st February 2023
138 ====================================
139 Configure supports --with-systemd-run executed from udev rules.
140 Enhancement for build with MuslC systemd and non-bash system shells (dash).
141 Do not reset SYSTEMD_READY variable in udev for PVs on MD and loop devices.
142 Ensure udev is processing origin LV before its thick snapshots LVs.
143 Fix and improve runtime memory size detection for VDO volumes.
144
145 version 2.03.18 - 22nd December 2022
146 ====================================
147 Fix issues reported by coverity scan.
148 Fix warning for thin pool overprovisioning on lvextend (2.03.17).
149 Add support for writecache metadata_only and pause_writeback settings.
150 Fix missing error messages in lvmdbusd.
151
152 Version 2.03.17 - 10th November 2022
153 ====================================
154 Add new options (--fs, --fsmode) for FS handling when resizing LVs.
155 Fix 'lvremove -S|--select LV' to not also remove its historical LV right away.
156 Fix lv_active field type to binary so --select and --binary applies properly.
157 Switch to use mallinfo2 and use it only with glibc.
158 Error out in lvm shell if using a cmd argument not supported in the shell.
159 Fix lvm shell's lastlog command to report previous pre-command failures.
160 Extend VDO and VDOPOOL without flushing and locking fs.
161 Add --valuesonly option to lvmconfig to print only values without keys.
162 Updates configure with recent autoconf tooling.
163 Fix lvconvert --test --type vdo-pool execution.
164 Add json_std output format for more JSON standard compliant version of output.
165 Fix vdo_slab_size_mb value for converted VDO volume.
166 Fix many corner cases in device_id, including handling of S/N duplicates.
167 Fix various issues in lvmdbusd.
168
169 Version 2.03.16 - 18th May 2022
170 ===============================
171 Fix segfault when handling selection with historical LVs.
172 Add support --vdosettings with lvcreate, lvconvert, lvchange.
173 Filtering multipath devices respects blacklist setting from multipath
174 configuration.
175 lvmdevices support for removing by device id using --deviceidtype and
176 --deldev.
177 Display writecache block size with lvs -o writecache_block_size.
178 Improve cachesettings description in man lvmcache.
179 Fix losing of delete message on thin-pool extension.
180
181 Version 2.03.15 - 07th February 2022
182 ====================================
183 Remove service based autoactivation. global/event_activation = 0 is NOOP.
184 Improve support for metadata profiles for --type writecache.
185 Use cache or active DM device when available with new kernels.
186 Introduce function to utilize UUIDs from DM_DEVICE_LIST.
187 Increase some hash table size to better support large device sets.
188
189 Version 2.03.14 - 20th October 2021
190 ===================================
191 Device scanning is skipping directories on different filesystems.
192 Print info message with too many or too large archived files.
193 Reduce metadata readings during scanning phase.
194 Optimize computation of crc32 check sum with multiple PVs.
195 Enhance recover path on cache creation failure.
196 Filter out unsupported MQ/SMQ cache policy setting.
197 Fix memleak in mpath filter.
198 Support newer location for VDO statistics.
199 Add support for VDO async-unsafe write policy.
200 Improve lvm_import_vdo script.
201 Support VDO LV with lvcreate -ky.
202 Fix lvconvert for VDO LV bigger then 2T.
203 Create VDO LVs automatically without zeroing.
204 Rename vdoimport to lvm_import_vdo.
205
206 Version 2.03.13 - 11th August 2021
207 ==================================
208 Changes in udev support:
209 - obtain_device_list_from_udev defaults to 0.
210 - see devices/external_device_info_source,
211 devices/obtain_device_list_from_udev, and devices/multipath_wwids_file help
212 in lvm.conf
213 Fix devices file handling of loop with deleted backing file.
214 Fix devices file handling of scsi_debug WWIDs.
215 Fix many static analysis issues.
216 Support --poolmetadataspare with vgsplit and vgmerge.
217 Fix detection of active components of external origin volume.
218 Add vdoimport tool to support conversion of VDO volumes.
219 Support configurable allocation/vdo_pool_header_size.
220 Fix handling of lvconvert --type vdo-pool --virtualsize.
221 Simplified handling of archive() and backup() internal calls.
222 Add 'idm' locking type for IDM lock manager.
223 Fix load of kvdo target when it is not present in memory (2.03.12).
224
225 Version 2.03.12 - 07th May 2021
226 ===============================
227 Allow attaching cache to thin data volume.
228 Fix memleak when generating list of outdated pvs.
229 Better hyphenation usage in man pages.
230 Replace use of deprecated security_context_t with char*.
231 Configure supports AIO_LIBS and AIO_CFLAGS.
232 Improve build process for static builds.
233 New --setautoactivation option to modify LV or VG auto activation.
234 New metadata based autoactivation property for LVs and VGs.
235 Improve signal handling with lvmpolld.
236 Signal handler can interrupt command also for SIGTERM.
237 Lvreduce --yes support.
238 Add configure option --with/out-symvers for non-glibc builds.
239 Report error when the filesystem is missing on fsadm resized volume.
240 Handle better blockdev with --getsize64 support for fsadm.
241 Do not include editline/history.h when using editline library.
242 Support error and zero segtype for thin-pool data for testing.
243 Support mixed extension for striped, error and zero segtypes.
244 Support resize also for stacked virtual volumes.
245 Skip dm-zero devices just like with dm-error target.
246 Reduce ioctl() calls when checking target status.
247 Merge polling does not fail, when LV is found to be already merged.
248 Poll volumes with at least 100ms delays.
249 Do not flush dm cache when cached LV is going to be removed.
250 New lvmlockctl_kill_command configuration option.
251 Support interruption while waiting on device close before deactivation.
252 Flush thin-pool messages before removing more thin volumes.
253 Improve hash function with less collisions and make it faster.
254 Reduce ioctl count when deactivating volumes.
255 Reduce number of metadata parsing.
256 Enhance performance of lvremove and vgremove commands.
257 Support interruption when taking archive and backup.
258 Accelerate large lvremoves.
259 Speedup search for cached device nodes.
260 Speedup command initialization.
261 Add devices file feature, off by default for now.
262 Support extension of writecached volumes.
263 Fix problem with unbound variable usage within fsadm.
264 Fix IMSM MD RAID detection on 4k devices.
265 Check for presence of VDO target before starting any conversion.
266 Support metadata profiles with volume VDO pool conversions.
267 Support -Zn for conversion of already formatted VDO pools.
268 Avoid removing LVs on error path of lvconvert during creation volumes.
269 Fix crashing lvdisplay when thin volume was waiting for merge.
270 Support option --errorwhenfull when converting volume to thin-pool.
271 Improve thin-performance profile support conversion to thin-pool.
272 Add workaround to avoid read of internal 'converted' devices.
273 Prohibit merging snapshot into the read-only thick snapshot origin.
274 Restore support for flipping rw/r permissions for thin snapshot origin.
275 Support resize of cached volumes.
276 Disable autoactivation with global/event_activation=0.
277 Check if lvcreate passes read_only_volume_list with tags and skips zeroing.
278 Allocation prints better error when metadata cannot fit on a single PV.
279 Pvmove can better resolve full thin-pool tree move.
280 Limit pool metadata spare to 16GiB.
281 Improves conversion and allocation of pool metadata.
282 Support thin pool metadata 15.88GiB, adds 64MiB, thin_pool_crop_metadata=0.
283 Enhance lvdisplay to report raid available/partial.
284 Support online rename of VDO pools.
285 Improve removal of pmspare when last pool is removed.
286 Fix problem with wiping of converted LVs.
287 Fix memleak in scanning (2.03.11).
288 Fix corner case allocation for thin-pools.
289
290 Version 2.03.11 - 08th January 2021
291 ===================================
292 Fix pvck handling MDA at offset different from 4096.
293 Partial or degraded activation of writecache is not allowed.
294 Enhance error handling for fsadm and handle correct fsck result.
295 Dmeventd lvm plugin ignores higher reserved_stack lvm.conf values.
296 Support using BLKZEROOUT for clearing devices.
297 Support interruption when wiping LVs.
298 Support interruption for bcache waiting.
299 Fix bcache when device has too many failing writes.
300 Fix bcache waiting for IO completion with failing disks.
301 Configure use own python path name order to prefer using python3.
302 Add configure --enable-editline support as an alternative to readline.
303 Enhance reporting and error handling when creating thin volumes.
304 Enable vgsplit for VDO volumes.
305 Lvextend of vdo pool volumes ensure at least 1 new VDO slab is added.
306 Use revert_lv() on reload error path after vg_revert().
307 Configure --with-integrity enabled.
308 Restore lost signal blocking while VG lock is held.
309 Improve estimation of needed extents when creating thin-pool.
310 Use extra 1% when resizing thin-pool metadata LV with --use-policy.
311 Enhance --use-policy percentage rounding.
312 Configure --with-vdo and --with-writecache as internal segments.
313 Improving VDO man page examples.
314 Allow pvmove of writecache origin.
315 Report integrity fields.
316 Integrity volumes defaults to journal mode.
317 Switch code base to use flexible array syntax.
318 Fix 64bit math when calculation cachevol size.
319 Preserve uint32_t for seqno handling.
320 Switch from mmap to plain read when loading regular files.
321 Update lvmvdo man page and better explain DISCARD usage.
322
323 Version 2.03.10 - 09th August 2020
324 ==================================
325 Add writecache and integrity support to lvmdbusd.
326 Generate unique cachevol name when default required from lvcreate.
327 Converting RAID1 volume to one with same number of legs now succeeds with a
328 warning.
329 Fix conversion to raid from striped lagging type.
330 Fix conversion to 'mirrored' mirror log with larger regionsize.
331 Zero pool metadata on allocation (disable with allocation/zero_metadata=0).
332 Failure in zeroing or wiping will fail command (bypass with -Zn, -Wn).
333 Add lvcreate of new cache or writecache lv with single command.
334 Fix running out of free buffers for async writing for larger writes.
335 Add integrity with raid capability.
336 Fix support for lvconvert --repair used by foreign apps (i.e. Docker).
337
338 Version 2.03.09 - 26th March 2020
339 =================================
340 Fix formatting of vdopool (vdo_slab_size_mb was smaller by 2 bits).
341 Fix showing of a dm kernel error when uncaching a volume with cachevol.
342
343 Version 2.03.08 - 11th February 2020
344 ====================================
345 Prevent problematic snapshots of writecache volumes.
346 Add error handling for failing allocation in _reserve_area().
347 Fix memleak in syncing of internal cache.
348 Fix pvck dump_current_text memleak.
349 Fix lvmlockd result code on error path for _query_lock_lv().
350 Update pvck man page and help output.
351 Reject invalid writecache high/low_watermark setting.
352 Report writecache status.
353 Accept more output lines from vdo_format.
354 Prohibit reshaping of stacked raid LVs.
355 Avoid running cache input arg validation when creating vdo pool.
356 Prevent raid reshaping of stacked volumes.
357 Added VDO lvmdbusd methods for enable/disable compression & dedupe.
358 Added VDO lvmdbusd method for converting LV to VDO pool.
359
360 Version 2.03.07 - 30th November 2019
361 ====================================
362 Subcommand in vgck for repairing headers and metadata.
363 Ensure minimum required region size on striped RaidLV creation.
364 Fix resize of thin-pool with data and metadata of different segtype.
365 Improve mirror type leg splitting.
366 Improve error path handling in daemons on shutdown.
367 Fix activation order when removing merged snapshot.
368 Experimental VDO support for lvmdbusd.
369
370 Version 2.03.06 - 23rd October 2019
371 ===================================
372 Add _cpool suffix to cache-pool LV name when used by caching LV.
373 No longer store extra UUID for cmeta and cdata cachevol layer.
374 Enhance activation of cache devices with cachevols.
375 Add _cvol in list of protected suffixes and start use it with DM UUID.
376 Rename LV converted to cachevol to use _cvol suffix.
377 Use normal LVs for wiping of cachevols.
378 Reload cleanered cache DM only with cleaner policy.
379 Fix cmd return when zeroing of cachevol fails.
380 Extend lvs to show all VDO properties.
381 Preserve VDO write policy with vdopool.
382 Increase default vdo bio threads to 4.
383 Continue report when cache_status fails.
384 Add support for DM_DEVICE_GET_TARGET_VERSION into device_mapper.
385 Fix cmirrord usage of header files from device_mapper subdir.
386 Allow standalone activation of VDO pool just like for thin-pools.
387 Activate thin-pool layered volume as 'read-only' device.
388 Ignore crypto devices with UUID signature CRYPT-SUBDEV.
389 Enhance validation for thin and cache pool conversion and swapping.
390 Improve internal removal of cached devices.
391 Synchronize with udev when dropping snapshot.
392 Add missing device synchronization point before removing pvmove node.
393 Correctly set read_ahead for LVs when pvmove is finished.
394 Remove unsupported OPTIONS+="event_timeout" udev rule from 11-dm-lvm.rules.
395 Prevent creating VGs with PVs with different logical block sizes.
396 Fix metadata writes from corrupting with large physical block size.
397
398 Version 2.03.05 - 15th June 2019
399 ================================
400 Fix command definition for pvchange -a.
401 Add vgck --updatemetadata command that will repair metadata problems.
402 Improve VG reading to work if one good copy of metadata is found.
403 Report/display/scan commands that read VGs will no longer write/repair.
404 Move metadata repairs from VG reading to VG writing.
405 Add config setting md_component_checks to control MD component checks.
406 Add end of device MD component checks when dev has no udev info.
407
408 Version 2.03.04 - 10th June 2019
409 ================================
410 Remove unused_duplicate_devs from cmd causing segfault in dmeventd.
411
412 Version 2.03.03 - 07th June 2019
413 ================================
414 Report no_discard_passdown for cache LVs with lvs -o+kernel_discards.
415 Add pvck --dump option to extract metadata.
416 Fix signal delivery checking race in libdaemon (lvmetad).
417 Add missing Before=shutdown.target to LVM2 services to fix shutdown ordering.
418 Skip autoactivation for a PV when PV size does not match device size.
419 Remove first-pvscan-initialization which should no longer be needed.
420 Add remote refresh through lvmlockd/dlm for shared LVs after lvextend.
421 Ignore foreign and shared PVs for pvscan online files.
422 Add config setting to control fields in debug file and verbose output.
423 Add command[pid] and timestamp to debug file and verbose output.
424 Fix missing growth of _pmspare volume when extending _tmeta volume.
425 Automatically grow thin metadata, when thin data gets too big.
426 Add synchronization with udev before removing cached devices.
427 Add support for caching VDO LVs and VDOPOOL LVs.
428 Add support for vgsplit with cached devices.
429 Query mpath device only once per command for its state.
430 Use device INFO instead of STATUS when checking for mpath device uuid.
431 Change default io_memory_size from 4 to 8 MiB.
432 Add config setting io_memory_size to set bcache size.
433 Fix pvscan autoactivation for concurrent pvscans.
434 Change scan_lvs default to 0 so LVs are not scanned for PVs.
435 Thin-pool selects power-of-2 chunk size by default.
436 Cache selects power-of-2 chunk size by default.
437 Support resizing for VDOPoolLV and VDOLV.
438 Improve -lXXX%VG modifier which improves cache segment estimation.
439 Ensure migration_threshold for cache is at least 8 chunks.
440 Restore missing man info lvcreate --zero for thin-pools.
441 Drop misleading comment for metadata minimum_io_size for VDO segment.
442 Add device hints to reduce scanning.
443 Introduce LVM_SUPPRESS_SYSLOG to suppress syslog usage by generator.
444 Fix generator querying lvmconfig unpresent config option.
445 Fix memleak on bcache error path code.
446 Fix missing unlock on lvm2 dmeventd plugin error path initialization.
447 Improve Makefile dependency tracking.
448 Move VDO support towards V2 target (6.2) support.
449
450 Version 2.03.02 - 18th December 2018
451 ====================================
452 Fix missing proper initialization of pv_list struct when adding pv.
453 Fix (de)activation of RaidLVs with visible SubLVs.
454 Prohibit mirrored 'mirror' log via lvcreate and lvconvert.
455 Use sync io if async io_setup fails, or use_aio=0 is set in config.
456 Fix more issues reported by coverity scan.
457
458 Version 2.03.01 - 31st October 2018
459 ===================================
460
461 Version 2.03.00 - 10th October 2018
462 ===================================
463 Add hot fix to avoiding locking collision when monitoring thin-pools.
464 Allow raid4 -> linear conversion request.
465 Fix lvconvert striped/raid0/raid0_meta -> raid6 regression.
466 Add 'lvm2-activation-generator:' prefix for kmsg messages logged by generator.
467 Add After=rbdmap.service to {lvm2-activation-net,blk-availability}.service.
468 Reduce max concurrent aios to avoid EMFILE with many devices.
469 Fix lvconvert conversion attempts to linear.
470 Fix lvconvert raid0/raid0_meta -> striped regression.
471 Fix lvconvert --splitmirror for mirror type (2.02.178).
472 Do not pair cache policy and cache metadata format.
473 lvconvert: reject conversions on raid1 LVs with split tracked SubLVs
474 lvconvert: reject conversions on raid1 split tracked SubLVs
475 Add basic creation support for VDO target.
476 Never send any discard ioctl with test mode.
477 Fix thin-pool alloc which needs same PV for data and metadata.
478 Extend list of non-memlocked areas with newly linked libs.
479 Enhance vgcfgrestore to check for active LVs in restored VG.
480 Configure supports --disable-silent-rules for verbose builds.
481 Fix unmonitoring of merging snapshots.
482 Cache can uses metadata format 2 with cleaner policy.
483 Fix check if resized PV can also fit metadata area.
484 Avoid showing internal error in lvs output or pvmoved LVs.
485 Remove clvmd
486 Remove lvmlib (api)
487 Remove lvmetad
488 Use versionsort to fix archive file expiry beyond 100000 files.
489
490 Version 2.02.178-rc1 - 24th May 2018
491 ====================================
492 Add libaio dependency for build.
493 Remove lvm1 and pool format handling and add filter to ignore them.
494 Move some filter checks to after disks are read.
495 Rework disk scanning and when it is used.
496 Add new io layer and shift code to using it.
497 Fix lvconvert's return code on degraded -m raid1 conversion.
498 --enable-testing switch for ./configure has been removed.
499 --with-snapshots switch for ./configure has been removed.
500 --with-mirrors switch for ./configure has been removed.
501 --with-raid switch for ./configure has been removed.
502 --with-thin switch for ./configure has been removed.
503 --with-cache switch for ./configure has been removed.
504 Include new unit-test framework and unit tests.
505 Extend validation of region_size for mirror segment.
506 Reload whole device stack when reinitializing mirror log.
507 Mirrors without monitoring are WARNING and not blocking on error.
508 Detect too big region_size with clustered mirrors.
509 Fix evaluation of maximal region size for mirror log.
510 Enhance mirror log size estimation and use smaller size when possible.
511 Fix incorrect mirror log size calculation on 32bit arch.
512 Enhance preloading tree creating.
513 Fix regression on acceptance of any LV on lvconvert.
514 Restore usability of thin LV to be again external origin for another thin.
515 Keep systemd vars on change event in 69-dm-lvm-metad.rules for systemd reload.
516 Write systemd and non-systemd rule in 69-dm-lvm-metad.rules, GOTO active one.
517 Add test for activation/volume_list (Sub)LV remnants.
518 Disallow usage of cache format 2 with mq cache policy.
519 Again accept striped LV as COW LV with lvconvert -s (2.02.169).
520 Fix raid target version testing for supported features.
521 Allow activation of pools when thin/cache_check tool is missing.
522 Remove RaidLV on creation failure when rmeta devices can't be activated.
523 Add prioritized_section() to restore cookie boundaries (2.02.177).
524 Enhance error messages when read error happens.
525 Enhance mirror log initialization for old mirror target.
526 Skip private crypto and stratis devices.
527 Skip frozen raid devices from scanning.
528 Activate RAID SubLVs on read_only_volume_list readwrite.
529 Offer convenience type raid5_n converting to raid10.
530 Automatically avoid reading invalid snapshots during device scan.
531 Ensure COW device is writable even for read-only thick snapshots.
532 Support activation of component LVs in read-only mode.
533 Extend internal library to recognize and work with component LV.
534 Skip duplicate check for active LV when prompting for its removal.
535 Activate correct lock holding LV when it is cached.
536 Do not modify archived metadata when removing striped raid.
537 Fix memleak on error path when obtaining lv_raid_data_offset.
538 Fix compatibility size test of extended external origin.
539 Add external_origin visiting in for_each_sub_lv().
540 Ensure cluster commands drop their device cache before locking VG.
541 Do not report LV as remotely active when it's locally exclusive in cluster.
542 Add deprecate messages for usage of mirrors with mirrorlog.
543 Separate reporting of monitoring status and error status.
544 Improve validation of created strings in vgimportclone.
545 Add missing initialisation of mem pool in systemd generator.
546 Do not reopen output streams for multithreaded users of liblvm.
547 Configure ensures /usr/bin dir is checked for dmpd tools.
548 Restore pvmove support for wide-clustered active volumes (2.02.177).
549 Avoid non-exclusive activation of exclusive segment types.
550 Fix trimming sibling PVs when doing a pvmove of raid subLVs.
551 Preserve exclusive activation during thin snapshot merge.
552 Avoid exceeding array bounds in allocation tag processing.
553 Add --lockopt to common options and add option to skip selected locks.
554
555 Version 2.02.177 - 18th December 2017
556 =====================================
557 When writing text metadata content, use complete 4096 byte blocks.
558 Change text format metadata alignment from 512 to 4096 bytes.
559 When writing metadata, consistently skip mdas marked as failed.
560 Refactor and adjust text format metadata alignment calculation.
561 Fix python3 path in lvmdbusd to use value detected by configure.
562 Reduce checks for active LVs in vgchange before background polling.
563 Ensure _node_send_message always uses clean status of thin pool.
564 Fix lvmlockd to use pool lock when accessing _tmeta volume.
565 Report expected sanlock_convert errors only when retries fail.
566 Avoid blocking in sanlock_convert on SH to EX lock conversion.
567 Deactivate missing raid LV legs (_rimage_X-missing_Y_Z) on deactivation.
568 Skip read-modify-write when entire block is replaced.
569 Categorise I/O with reason annotations in debug messages.
570 Allow extending of raid LVs created with --nosync after a failed repair.
571 Command will lock memory only when suspending volumes.
572 Merge segments when pvmove is finished.
573 Remove label_verify that has never been used.
574 Ensure very large numbers used as arguments are not casted to lower values.
575 Enhance reading and validation of options stripes and stripes_size.
576 Fix printing of default stripe size when user is not using stripes.
577 Activation code for pvmove automatically discovers holding LVs for resume.
578 Make a pvmove LV locking holder.
579 Do not change critical section counter on resume path without real resume.
580 Enhance activation code to automatically suspend pvmove participants.
581 Prevent conversion of thin volumes to snapshot origin when lvmlockd is used.
582 Correct the steps to change lock type in lvmlockd man page.
583 Retry lock acquisition on recognized sanlock errors.
584 Fix lock manager error codes in lvmlockd.
585 Remove unnecessary single read from lvmdiskscan.
586 Check raid reshape flags in vg_validate().
587 Add support for pvmove of cache and snapshot origins.
588 Avoid using precommitted metadata for suspending pvmove tree.
589 Enhance pvmove locking.
590 Deactivate activated LVs on error path when pvmove activation fails.
591 Add "io" to log/debug_classes for logging low-level I/O.
592 Eliminate redundant nested VG metadata in VG struct.
593 Avoid importing persistent filter in vgscan/pvscan/vgrename.
594 Fix memleak of string buffer when vgcfgbackup runs in secure mode.
595 Do not print error when clvmd cannot find running clvmd.
596 Prevent start of new merge of snapshot if origin is already being merged.
597 Fix offered type for raid6_n_6 to raid5 conversion (raid5_n).
598 Deactivate sub LVs when removing unused cache-pool.
599 Do not take backup with suspended devices.
600 Avoid RAID4 activation on incompatible kernels under all circumstances.
601 Reject conversion request to striped/raid0 on 2-legged raid4/5.
602
603 Version 2.02.176 - 3rd November 2017
604 ====================================
605 Keep Install section only in lvm2-{lvmetad,lvmpolld}.socket systemd unit.
606 Fix segfault in lvm_pv_remove in liblvm. (2.02.173)
607 Do not allow storing VG metadata with LV without any segment.
608 Fix printed message when thin snapshot was already merged.
609 Remove created spare LV when creation of thin-pool failed.
610 Avoid reading ignored metadata when mda gets used again.
611 Fix detection of moved PVs in vgsplit. (2.02.175)
612 Ignore --stripes/--stripesize on RAID takeover
613 Improve used paths for generated systemd units and init shells.
614 Disallow creation of snapshot of mirror/raid subLV (was never supported).
615 Fix regression in more advanced vgname extraction in lvconvert (2.02.169).
616 Allow lvcreate to be used for caching of _tdata LV.
617 Avoid internal error when resizing cache type _tdata LV (not yet supported).
618 Show original converted names when lvconverting LV to pool volume.
619 Move lib code used only by liblvm into metadata-liblvm.c.
620 Distinguish between device not found and excluded by filter.
621 Monitor external origin LVs.
622 Remove the replicator code, including configure --with-replicators.
623 Allow lvcreate --type mirror to work with 100%FREE.
624 Improve selection of resource name for complex volume activation lock.
625 Avoid cutting first character of resource name for activation lock.
626 Support for encrypted devices in fsadm.
627 Improve thin pool overprovisioning and repair warning messages.
628 Fix incorrect adjustment of region size on striped RaidLVs.
629
630 Version 2.02.175 - 6th October 2017
631 ===================================
632 Use --help with blockdev when checking for --getsize64 support in fsadm.
633 Dump lvmdbusd debug information with SIGUSR1.
634 Fix metadata corruption in vgsplit and vgmerge intermediate states.
635 Add PV_MOVED_VG PV status flag to mark PVs moving between VGs.
636 Fix lvmdbus hang and recognise unknown VG correctly.
637 Improve error messages when command rules fail.
638 Require LV name with pvmove in a shared VG.
639 Allow shared active mirror LVs with lvmlockd, dlm, and cmirrord.
640 Support lvconvert --repair with cache and cachepool volumes.
641 lvconvert --repair respects --poolmetadataspare option.
642 Mark that we don't plan to develop liblvm2app and python bindings any further.
643 Fix thin pool creation in shared VG. (2.02.173)
644
645 Version 2.02.174 - 13th September 2017
646 ======================================
647 Prevent raid1 split with trackchanges in a shared VG.
648 Avoid double unlocking of client & lockspace mutexes in lvmlockd.
649 Fix leaking of file descriptor for non-blocking filebased locking.
650 Fix check for 2nd mda at end of disk fits if using pvcreate --restorefile.
651 Use maximum metadataarea size that fits with pvcreate --restorefile.
652 Always clear cached bootloaderarea when wiping label e.g. in pvcreate.
653 Disallow --bootloaderareasize with pvcreate --restorefile.
654 Fix lvmlockd check for running lock managers during lock adoption.
655 Add --withgeneralpreamble and --withlocalpreamble to lvmconfig.
656 Improve makefiles' linking.
657 Fix some paths in generated makefiles to respected configured settings.
658 Add warning when creating thin-pool with zeroing and chunk size >= 512KiB.
659 Introduce exit code 4 EINIT_FAILED to replace -1 when initialisation fails.
660 Add synchronization points with udev during reshape of raid LVs.
661
662 Version 2.02.173 - 20th July 2017
663 =================================
664 Add synchronization points with udev during conversion of raid LVs.
665 Improve --size args validation and report more detailed error message.
666 Initialize debugging mutex before any debug message in clvmd.
667 Log error instead of warn when noticing connection problem with lvmetad.
668 Fix memory leak in lvmetad when working with duplicates.
669 Remove restrictions on reshaping open and clustered raid devices.
670 Add incompatible data_offset to raid metadata to fix reshape activation.
671 Accept 'lvm -h' and 'lvm --help' as well as 'lvm help' for help.
672 Suppress error message from accept() on clean lvmetad shutdown.
673 Tidy clvmd client list processing and fix segfaults.
674 Protect clvmd debug log messages with mutex and add client id.
675 Fix shellcheck reported issues for script files.
676
677 Version 2.02.172 - 28th June 2017
678 =================================
679 Add missing NULL to argv array when splitting cmdline arguments.
680 Add display_percent helper function for printing percent values.
681 lvconvert --repair handles failing raid legs (present but marked 'D'ead).
682 Do not lvdisplay --maps unset settings of cache pool.
683 Fix lvdisplay --maps for cache pool without policy settings.
684 Support aborting of flushing cache LV.
685 Re-enable conversion of data and metadata thin-pool volumes to raid.
686 Improve raid status reporting with lvs.
687 No longer necessary to '--force' a repair for RAID1.
688 Linear to RAID1 upconverts now use "recover" sync action, not "resync".
689 Improve lvcreate --cachepool arg validation.
690 Limit maximum size of thin-pool for specific chunk size.
691 Print a warning about in-use PVs with no VG using them.
692 Disable automatic clearing of PVs that look like in-use orphans.
693 Cache format2 flag is now using segment name type field.
694 Support storing status flags via segtype name field.
695 Stop using '--yes' mode when fsadm runs without terminal.
696 Extend validation of filesystems resized by fsadm.
697 Enhance lvconvert automatic settings of possible (raid) LV types.
698 Allow lvchange to change properties on a thin pool data sub LV.
699 Fix lvcreate extent percentage calculation for mirrors.
700 Don't reinstate still-missing devices when correcting inconsistent metadata.
701 Properly handle subshell return codes in fsadm.
702 Disallow cachepool creation with policy cleaner and mode writeback.
703
704 Version 2.02.171 - 3rd May 2017
705 ===============================
706 Fix memory warnings by using mempools for command definition processing.
707 Fix running commands from a script file.
708 Add pvcreate prompt when device size doesn't match setphysicalvolumesize.
709 lvconvert - preserve region size on raid1 image count changes
710 Adjust pvresize/pvcreate messages and prompt if underlying dev size differs.
711 raid - sanely handle insufficient space on takeover.
712 Fix configure --enable-notify-dbus status message.
713 Change configure option name prefix from --enable-lockd to --enable-lvmlockd.
714 lvcreate - raise mirror/raid default regionsize to 2MiB
715 Add missing configurable prefix to configuration file installation directory.
716
717 Version 2.02.170 - 13th April 2017
718 ==================================
719 Introduce global/fsadm_executable to make fsadm path configurable.
720 Look for limited thin pool metadata size when using 16G metadata.
721 Add lvconvert pool creation rule disallowing options with poolmetadata.
722 Fix lvconvert when the same LV is incorrectly reused in options.
723 Fix lvconvert VG name validation in option values.
724 Fix missing lvmlockd LV locks in lvchange and lvconvert.
725 Fix dmeventd setup for lvchange --poll.
726 Fix use of --poll and --monitor with lvchange and vgchange.
727 Disallow lvconvert of hidden LV to a pool.
728 Ignore --partial option when not used for activation.
729 Allow --activationmode option with lvchange --refresh.
730 Better message on lvconvert --regionsize
731 Allow valid lvconvert --regionsize change
732 Add raid10 alias raid10_near
733 Handle insufficient PVs on lvconvert takeover
734 Fix SIGINT blocking to prevent corrupted metadata
735 Fix systemd unit existence check for lvmconf --services --startstopservices.
736 Check and use PATH_MAX buffers when creating vgrename device paths.
737
738 Version 2.02.169 - 28th March 2017
739 ==================================
740 Automatically decide whether '-' in a man page is a hyphen or a minus sign.
741 Add build-time configuration command line to 'lvm version' output.
742 Handle known table line parameter order change in specific raid target vsns.
743 Conditionally reject raid convert to striped/raid0* after reshape.
744 Ensure raid6 upconversion restrictions.
745 Adjust mirror & raid dmeventd plugins for new lvconvert --repair behaviour.
746 Disable lvmetad when lvconvert --repair is run.
747 Remove obsolete lvmchange binary - convert to built-in command.
748 Show more information for cached volumes in lvdisplay [-m].
749 Add option for lvcreate/lvconvert --cachemetadataformat auto|1|2.
750 Support cache segment with configurable metadata format.
751 Add allocation/cache_metadata_format profilable settings.
752 Use function cache_set_params() for both lvcreate and lvconvert.
753 Skip rounding on cache chunk size boundary when create cache LV.
754 Improve cache_set_params support for chunk_size selection.
755 Fix metadata profile allocation/cache_[mode|policy] setting.
756 Fix missing support for using allocation/cache_pool_chunk_size setting.
757 Upstream git moved to https://sourceware.org/git/?p=lvm2
758 Support conversion of raid type, stripesize and number of disks
759 Reject writemostly/writebehind in lvchange during resynchronization.
760 Deactivate active origin first before removal for improved workflow.
761 Fix regression of accepting both --type and -m with lvresize. (2.02.158)
762 Add lvconvert --swapmetadata, new specific way to swap pool metadata LVs.
763 Add lvconvert --startpoll, new specific way to start polling conversions.
764 Add lvconvert --mergethin, new specific way to merge thin snapshots.
765 Add lvconvert --mergemirrors, new specific way to merge split mirrors.
766 Add lvconvert --mergesnapshot, new specific way to combine cow LVs.
767 Split up lvconvert code based on command definitions.
768 Split up lvchange code based on command definitions.
769 Generate help output and man pages from command definitions.
770 Verify all command line items against command definition.
771 Match every command run to one command definition.
772 Specify every allowed command definition/syntax in command-lines.in.
773 Add extra memory page when limiting pthread stack size in clvmd.
774 Support striped/raid0* <-> raid10_near conversions.
775 Support shrinking of RaidLVs.
776 Support region size changes on existing RaidLVs.
777 Avoid parallel usage of cpg_mcast_joined() in clvmd with corosync.
778 Support raid6_{ls,rs,la,ra}_6 segment types and conversions from/to it.
779 Support raid6_n_6 segment type and conversions from/to it.
780 Support raid5_n segment type and conversions from/to it.
781 Support new internal command _dmeventd_thin_command.
782 Introduce new dmeventd/thin_command configurable setting.
783 Use new default units 'r' for displaying sizes.
784 Also unmount mount point on top of MD device if using blkdeactivate -u.
785 Restore check preventing resize of cache type volumes (2.02.158).
786 Add missing udev sync when flushing dirty cache content.
787 vgchange -p accepts only uint32 numbers.
788 Report thin LV date for merged LV when the merge is in progress.
789 Detect if snapshot merge really started before polling for progress.
790 Checking LV for merging origin requires also it has merged snapshot.
791 Extend validation of metadata processing.
792 Enable usage of cached volumes as snapshot origin LV.
793 Fix displayed lv name when splitting snapshot (2.02.146).
794 Warn about command not making metadata backup just once per command.
795 Enable usage of cached volume as thin volume's external origin.
796 Support cache volume activation with -real layer.
797 Improve search of lock-holder for external origin and thin-pool.
798 Support status checking of cache volume used in layer.
799 Avoid shifting by one number of blocks when clearing dirty cache volume.
800 Extend metadata validation of external origin LV use count.
801 Fix dm table when the last user of active external origin is removed.
802 Improve reported lvs status for active external origin volume.
803 Fix table load for split RAID LV and require explicit activation.
804 Always active split RAID LV exclusively locally.
805 Do not use LV RAID status bit for segment status.
806 Check segtype directly instead of checking RAID in segment status.
807 Reusing exiting code for raid image removal.
808 Fix pvmove leaving -pvmove0 error device in clustered VG.
809 Avoid adding extra '_' at end of raid extracted images or metadata.
810 Optimize another _rmeta clearing code.
811 Fix deactivation of raid orphan devices for clustered VG.
812 Fix lvconvert raid1 to mirror table reload order.
813 Add internal function for separate mirror log preparation.
814 Fix segfault in lvmetad from missing NULL in daemon_reply_simple.
815 Simplify internal _info_run() and use _setup_task_run() for mknod.
816 Better API for internal function _setup_task_run.
817 Avoid using lv_has_target_type() call within lv_info_with_seg_status.
818 Simplify internal lv_info_with_seg_status API.
819 Decide which status is needed in one place for lv_info_with_seg_status.
820 Fix matching of LV segment when checking for it info status.
821 Report log_warn when status cannot be parsed.
822 Test segment type before accessing segment members when checking status.
823 Implement compatible target function for stripe segment.
824 Use status info to report merge failed and snapshot invalid lvs fields.
825
826 Version 2.02.168 - 30th November 2016
827 =====================================
828 Display correct sync_percent on large RaidLVs
829 lvmdbusd --blackboxsize <n> added, used to override default size of 16
830 Allow a transiently failed RaidLV to be refreshed
831 Use lv_update_and_reload() inside mirror code where it applies.
832 Preserve mirrored status for temporary layered mirrors.
833 Use transient raid check before repairing raid volume.
834 Implement transient status check for raid volumes.
835 Only log msg as debug if lvm2-lvmdbusd unit missing for D-Bus notification.
836 Avoid duplicated underscore in name of extracted LV image.
837 Missing stripe filler now could be also 'zero'.
838 lvconvert --repair accepts --interval and --background option.
839 More efficiently prepare _rmeta devices when creating a new raid LV.
840
841 Version 2.02.167 - 5th November 2016
842 ====================================
843 Use log_error in regex and sysfs filter to describe reason of failure.
844 Fix blkdeactivate to deactivate dev stack if dev on top already unmounted.
845 Prevent non-synced raid1 repair unless --force
846 Prevent raid4 creation/conversion on non-supporting kernels
847 Add direct striped -> raid4 conversion
848 Fix raid4 parity image pair position on conversions from striped/raid0*
849 Fix a few unconverted return code values for some lvconvert error path.
850 Disable lvconvert of thin pool to raid while active.
851 Disable systemd service start rate limiting for lvm2-pvscan@.service.
852
853 Version 2.02.166 - 26th September 2016
854 ======================================
855 Fix lvm2-activation-generator to read all LVM2 config sources. (2.02.155)
856 Fix lvchange-rebuild-raid.sh to cope with older target versions.
857 Use dm_config_parse_without_dup_node_check() to speedup metadata reading.
858 Fix lvconvert --repair regression
859 Fix reported origin lv field for cache volumes. (2.02.133)
860 Always specify snapshot cow LV for monitoring not internal LV. (2.02.165)
861 Fix lvchange --discard|--zero for active thin-pool.
862 Enforce 4MiB or 25% metadata free space for thin pool operations.
863 Fix lock-holder device for thin pool with inactive thin volumes.
864 Use --alloc normal for mirror logs even if the mimages were stricter.
865 Use O_DIRECT to gather metadata in lvmdump.
866 Ignore creation_time when checking for matching metadata for lvmetad.
867 Fix possible NULL pointer dereference when checking for monitoring.
868 Add lvmreport(7) man page.
869 Don't install lvmraid(7) man page when raid excluded. (2.02.165)
870 Report 0% as dirty (copy%) for cache without any used block.
871 Fix lvm2api reporting of cache data and metadata percent.
872 Restore reporting of metadata usage for cache volumes (2.02.155).
873 Support raid scrubbing on cache origin LV.
874
875 Version 2.02.165 - 7th September 2016
876 =====================================
877 Add lvmraid(7) man page.
878 Use udev db to check for mpath components before running pvscan for lvmetad.
879 Use lsblk -s and lsblk -O in lvmdump only if these options are supported.
880 Fix number of stripes shown in lvcreate raid10 message when too many.
881 Change lvmdbusd to use new lvm shell facilities.
882 Do not monitor cache-pool metadata when LV is just being cleared.
883 Add allocation/cache_pool_max_chunks to prevent misuse of cache target.
884 Give error not segfault in lvconvert --splitmirrors when PV lies outside LV.
885 Fix typo in report/columns_as_rows config option name recognition (2.02.99).
886 Avoid PV tags when checking allocation against parallel PVs.
887 Disallow mirror conversions of raid10 volumes.
888 Fix dmeventd unmonitoring when segment type (and dso) changes.
889 Don't allow lvconvert --repair on raid0 devices or attempt to monitor them.
890 No longer adjust incorrect number of raid stripes supplied to lvcreate.
891 Move lcm and gcd to lib/misc.
892 Fix vgsplit of external origins. (2.02.162)
893 Prohibit creation of RAID LVs unless VG extent size is at least the page size.
894 Suppress some unnecessary --stripesize parameter warnings.
895 Fix 'pvmove -n name ...' to prohibit collocation of RAID SubLVs
896
897 Version 2.02.164 - 15th August 2016
898 ===================================
899 Fix selection of PVs when allocating raid0_meta.
900 Fix sdbus socket leak leading to hang in lvmnotify.
901 Specify max stripes for raid LV types: raid0:64; 1:10; 4,5:63; 6:62; 10:32.
902 Avoid double suffix when naming _rmeta LV paired with _rimage LV.
903
904 Version 2.02.163 - 10th August 2016
905 ===================================
906 Add profile for lvmdbusd which uses lvm shell json report output.
907 Restrict in-command modification of some params in lvm shell.
908 Apply LVM_COMMAND_PROFILE early for lvm shell.
909 Refactor reporting so lvm shell log report collects whole of cmd execution.
910 Support LVM_*_FD envvars to redirect output to file descriptors.
911 Limit use of --corelog and --mirrorlog to mirrors in lvconvert.
912 Reject --nosync option for RAID6 LVs in lvcreate.
913 Do not refresh whole cmd context if profile dropped after processing LVM cmd.
914 Support straightforward lvconvert between striped and raid4 LVs.
915 Support straightforward lvconvert between raid1 and mirror LVs.
916 Report supported conversions when asked for unsupported raid lvconvert.
917 Add "--rebuild PV" option to lvchange to allow for PV selective rebuilds.
918 Preserve existing mirror region size when using --repair.
919 Forbid stripe parameters with lvconvert --repair.
920 Unify stripe size validation into get_stripe_params to catch missing cases.
921 Further lvconvert validation logic refactoring.
922
923 Version 2.02.162 - 28th July 2016
924 =================================
925 Extend vg_validate also to check raid configurations thoroughly.
926 Support lvconvert -Zn also when doing full cache pool conversion.
927 Suppress not zeroing warn when converting to thin LV for non-zeroing tpool.
928 Fix automatic updates of PV extension headers to newest version.
929 Improve lvconvert --trackchanges validation to require --splitmirrors 1.
930 Add note about lastlog built-in command to lvm man page.
931 Fix unrecognised segtype flag message.
932 lvconvert not clears cache pool metadata ONLY with -Zn.
933 Add allocation/raid_stripe_all_devices to reinstate previous behaviour.
934 Create raid stripes across fixed small numbers of PVs instead of all PVs.
935 Enabled lvconvert --uncache to work with partial VG.
936 Disallow lvconvert --replace with raid0* LVs.
937 Fix some lvmetad changed VG metadata notifications that sent uncommitted data.
938
939 Version 2.02.161 - 15th July 2016
940 =================================
941 Prohibit some lvchange/lvresize that were failing on raid0 volumes.
942 Fix segfaults in complex vgsplits. (2.02.159)
943 Reformat unwieldy lvconvert man page.
944 Allow --force to be passed through to pvcreate from vgcreate. (2.02.144)
945 Fix lvresize of filesystem when LV has already right size (2.02.141)
946 New LVM_LOG_FILE_MAX_LINES env var to limit max size of created logs.
947
948 Version 2.02.160 - 6th July 2016
949 ================================
950 Minor fixes from coverity.
951
952 Version 2.02.159 - 6th July 2016
953 ================================
954 Add raid0_meta segment type that provides metadata space for raid conversions.
955 Fix created link for a used pool for vgmknode.
956 Introduce and use is_power_of_2 macro.
957 Support conversions between striped and raid0 segment types.
958 Add infrastructure for raid takeover lvconvert options.
959
960 Version 2.02.158 - 25th June 2016
961 =================================
962 Add a more efficient native vgimportclone command to replace the script.
963 Make lvmlockd always attempt to connect to lvmetad if no connection exists.
964 Let lvmetad handle new connections after shutdown signal.
965 Disable lvmetad when vgcfgrestore begins and enable it again after.
966 Make pvscan do activation if lvmetad is configured but not running.
967 Fix rescanning the PVs for a single VG when using lvmetad.
968 Pool metadata lvresize uses now same code as resize of normal volume.
969 Preserve monitoring status when updating thin-pool metadata.
970 Return 0 (inactive) when status cannot be queried in _lv_active().
971 Switch to log_warn() for failing activation status query.
972 Replace vgimportclone script with binary.
973 While lvmetad is shutting down, continue handling all connections cleanly.
974 Refactor lvconvert argument handling code.
975 Notify lvmetad when vgcfgrestore changes VG metadata.
976 Add --logonly option to report only cmd log for a command, not other reports.
977 Add log/command_log_selection to configure default selection used on cmd log.
978 Use 'orphan' object type in cmd log for groups to collect PVs not yet in VGs.
979 Add lvm lastlog command for query and display of last cmd's log in lvm shell.
980 Report per-object return codes via cmd log while processing multiple objects.
981 Annotate processing code with log report hooks for per-object command log.
982 Also pass common printed messages (besides warnings and errors) to log report.
983 Log warnings and errors via report during cmd processing if this is enabled.
984 Make it possible to iterate over internal 'orphan' VGs in process_each_vg fn.
985 Make -S|--select option groupable that allows this option to be repeated.
986 Make -O|--sort option groupable that allows this option to be repeated.
987 Add --configreport option to select report for which next options are applied.
988 Add support for priorities on grouping command arguments.
989 Add report/{pvs,vgs,lvs,pvsegs,segs}_{cols,sort}_full to lvm.conf.
990 Add lvm fullreport command for joined PV, VG, LV and segment report per VG.
991 Integrate report group handling and cmd log report into cmd processing code.
992 Add log/report_command_log to lvm.conf to enable or disable cmd log report.
993 Add log/report_output_format to lvm.conf for default report output format.
994 Recognize --reportformat {basic|json} option to select report output format.
995 Add log/command_log_{sort,cols} to lvm.conf to configure command log report.
996 Add log_object_{type,name,id,group,group_id} fields to cmd log.
997 Add log_{seq_num,type,context,message,errno,ret_code} fields to cmd log.
998 Add CMDLOG report type - a separate report type for command logging.
999
1000 Version 2.02.157 - 17th June 2016
1001 =================================
1002 Change pvscan --cache -aay to scan locally if lvmetad fails.
1003
1004 Version 2.02.156 - 11th June 2016
1005 =================================
1006 Don't allow duplicate orphan PVs to be used with vgcreate/vgextend/pvcreate.
1007 Improve handling of lvmetad update failures.
1008 Yes/No prompt accepts '^[ ^t]*([Yy]([Ee]([Ss]|)|)|[Nn]([Oo]|))[ ^t]*$'.
1009 If available, also collect output from lsblk command when running lvmdump -s.
1010
1011 Version 2.02.155 - 3rd June 2016
1012 ================================
1013 Reject PV tags on pvmove cmdline because only 1 PV is supported. (2.02.141)
1014 Fix compilation error when building with configure --disable-devmapper.
1015 Fix lvmconfig --type diff to display complete diff if config cascade used.
1016 Automatically filter out partitioned loop devices with partscan (losetup -P).
1017 Fix lvm devtypes internal error if -S used with field name from pvs/vgs/lvs.
1018 When reporting Data%,Snap%,Meta%,Cpy%Sync use single ioctl per LV.
1019 Add lvseg_percent_with_info_and_seg_status() for percent retrieval.
1020 Enhance internal seg_status handling to understand snapshots better.
1021 When refresh failed in suspend, call resume upon error path.
1022 Support passthrough cache mode when waiting for clean cache.
1023 Check cache status only for 'in-use' cache pools.
1024 Extend setup_task() to preset flushing for dm_task object.
1025 When checking LV is a merging COW, validate its a COW LV first.
1026 Correcting value in copy_percent() for 100%.
1027 Update vgreduce to use process_each_vg.
1028 Update lvconvert to use process_each_lv.
1029 Update pvscan to use process_each_vg for autoactivation.
1030 Add basic support for --type raid0 using md.
1031 Add support for lvchange --cachemode for cached LV.
1032 Fix liblvm2app error handling when setting up context.
1033 Delay liblvm2app init in python code until it is needed.
1034 Simplify thread locking in lvmetad to fix locking problems.
1035 Allow pvremove -ff to remove a duplicate PV.
1036 Fix lvm2-activation-generator to read lvm.conf without full command setup.
1037 Allow a minimal context to be used in lvm2app for reading lvm.conf.
1038
1039 Version 2.02.154 - 14th May 2016
1040 ================================
1041 Fix liblvm segfault after failure initialising lvmetad connection.
1042 Retry open without O_NOATIME if it fails (not file owner/CAP_FOWNER).
1043 Split _report into one fn for options and arguments and one for processing.
1044
1045 Version 2.02.153 - 7th May 2016
1046 ===============================
1047 Change warning messages related to duplicate PVs.
1048 A named device is always processed itself, not switched for a duplicate.
1049 Add PV attr "d" and report field "duplicate" for duplicate PVs.
1050 Add config setting to disallow VG changes when duplicate PVs exist.
1051 Use device size and active LVs to choose the preferred duplicate PV.
1052 Disable lvmetad when duplicate PVs are seen.
1053 Support --chunksize option also when caching LV when possible.
1054 Add function to check for target presence and version via 1 ioctl.
1055
1056 Version 2.02.152 - 30th April 2016
1057 ==================================
1058 Use any inherited tags when wiping metadata sub LVs to ensure activation.
1059 Add str_list_wipe.
1060 Improve support for interrupting processing of volumes during lvchange.
1061 Use failed command return code when lvchanging read-only volume.
1062 Show creation transaction_id and zeroing state of pool with thin volume.
1063 Stop checking for dm_cache_mq policy with cache target 1.9 (alias to smq).
1064 Check first /sys/module/dm_* dir existence before using modprobe.
1065 Remove mpath from 10-dm.rules, superseded by 11-dm-mpath.rules (mpath>=0.6.0).
1066
1067 Version 2.02.151 - 23rd April 2016
1068 ==================================
1069 Fix error path after reusing of _setup_task (2.02.150).
1070 Fix memory access for empty sysfs values (2.02.149).
1071 Disable lvmetad when lvm1 metadata is seen, so commands revert to scanning.
1072 Suppress errors when snapshot merge gets delayed because volume is in use.
1073 Avoid internal snapshot LV names in messages.
1074 Autodetect and use /run/lock dir when available instead of /var/lock.
1075 lvchange --refresh for merging thin origin will retry to deactivate snapshot.
1076 Recognize in-progress snapshot merge for thin volumes from dm table.
1077 Avoid deciding to initiate a pending snapshot merge during resume.
1078 Improve retrying lvmetad requests while lvmetad is being updated.
1079 Read devices instead of using the lvmetad cache if rescan fails.
1080 Move lvmetad token/filter check and device rescan to the start of commands.
1081 Don't try deactivating fictional internal LV before snapshot merge. (2.02.105)
1082 When not obtaining devs from udev, check they exist before caching them.
1083 Detect device mismatch also when compiling without udev support.
1084
1085 Version 2.02.150 - 9th April 2016
1086 =================================
1087 Avoid using flushing dm status ioctl when checking for usable DM device.
1088 Check for devices without LVM- uuid prefix only with kernels < 3.X.
1089 Reuse %FREE size approximation with lvcreate -l%PVS thin-pool.
1090 Allow the lvmdump directory to exist already provided it is empty.
1091 Show lvconverted percentage with 2 decimal digits.
1092 Fix regression in suspend when repairing --type mirror (2.02.133).
1093
1094 Version 2.02.149 - 1st April 2016
1095 =================================
1096 Do not flush thin-pool when checking metadata fullness.
1097 Remove spurious error about no value in /sys/dev/block/major:minor/dm/uuid.
1098 Fix device mismatch detection for LV if persistent .cache file is used.
1099 Fix holder device not being found in /dev while sysfs has it during dev scan.
1100
1101 Version 2.02.148 - 26th March 2016
1102 ==================================
1103 Introduce TARGET_NAME and MODULE NAME macros.
1104 Replace hard-coded module and target names with macros.
1105 Add pv_major and pv_minor report fields.
1106 Detect and warn about mismatch between devices used and assumed for an LV.
1107
1108 Version 2.02.147 - 19th March 2016
1109 ==================================
1110 If available, use /proc/self/mountinfo to detect mounted volume in fsadm.
1111 Fix resize of stacked raid thin data volume (2.02.141).
1112 Fix test for lvremove failure in lvconvert --uncache (2.02.146).
1113
1114 Version 2.02.146 - 11th March 2016
1115 ==================================
1116 More man page cleanups in lvconvert.
1117 Fix makefile vpath in /udev when generating udev rules files.
1118 Another attempt to improve VG name parsing for lvconvert (2.02.144).
1119 Use new cache status info and skip flushing for failed cache.
1120 Support --uncache with missing PVs.
1121 Tidy report field names, headings and widths.
1122 Add vgscan --notifydbus to send a dbus notification.
1123 Add dbus notification from commands after a PV/VG/LV changes state.
1124
1125 Version 2.02.145 - 4th March 2016
1126 =================================
1127 Make it possible to use lvremove and lvrename on historical LVs.
1128 For historical LVs, report 'none' for lv_layout and 'history' for lv_role.
1129 Add full_{ancestors,descendants} fields to report LV ancestry with history.
1130 Report (h)istorical state within 5th bit (State) of the lv_attr field.
1131 Add lv_historical reporting field to report if LV is historical or not.
1132 Add lv_time_removed reporting field to display removal time for hist. LVs.
1133 Report lv_name, lv_uuid, vg_name, lv_time for historical LVs.
1134 Add --nohistory switch to lvremove to disable history recording on demand.
1135 Add -H|--history switch to lvs and lvdisplay to include historical LVs.
1136 Create historical LVs out of removed thin snapshot LVs and record in history.
1137 Add metadata/lvs_history_retention_time for automatic removal of hist. LVs.
1138 Add metadata/record_lvs_history config for switching LV history recording.
1139 Add support and infrastructure for tracking historical LVs.
1140 Improve lvconvert man page.
1141 Add kernel_cache_policy lvs field.
1142 Display [unknown] instead of 'unknown device' in pvs output.
1143 Fix error path when pvcreate allocation fails (2.02.144).
1144 Display [unknown] instead of blank for unknown VG names in pvs output.
1145
1146 Version 2.02.144 - 26th February 2016
1147 =====================================
1148 Use new PV processing code in pvcreate/vgcreate/vgextend/pvremove.
1149 Add new PV processing code that prompts user without locks held.
1150 Prevent lvmlockd blocking with new flag requiring sanlock 3.3.0.
1151 Only show (u)sed pv_attr char when PV is not (a)llocatable. (2.02.143)
1152 Update makefile to generate lcov output also for lvmpolld and lvmlockd.
1153 Fix SystemdService lvm2-lvmdbusd.service name.
1154 Improve support for env LVM_VG_NAME for reference VG name in lvconvert.
1155 Fix regression when lvresize accepted zero sizes. (2.02.141)
1156 Always warn user about PV in use even when pvremove uses --force --force.
1157 Use uninitialized pool header detection in all cases.
1158 Fix read error detection when checking for uninitialized thin-pool header.
1159 Fix error path for internal error in lvmetad VG lookup code.
1160
1161 Version 2.02.143 - 21st February 2016
1162 =====================================
1163 Fix error path when sending thin-pool message fails in update_pool_lv().
1164 Support reporting CheckNeeded and Fail state for thin-pool and thin LV.
1165 For failing thin-pool and thin volume correctly report percentage as INVALID.
1166 Report -1, not 'unknown' for lv_{snapshot_invalid,merge_failed} with --binary.
1167 Add configure --enable-dbus-service for an LVM D-Bus service.
1168 Replace configure --enable-python_bindings with python2 and python3 versions.
1169 If PV belongs to some VG and metadata missing, skip it if system ID is used.
1170 Automatically change PV header extension to latest version if writing PV/VG.
1171 Identify used PVs in pv_attr field by new 'u' character.
1172 Add pv_in_use reporting field to report if PV is used or not.
1173 Add pv_ext_vsn reporting field to report PV header extension version.
1174 Add protective flag marking PVs as used even if no metadata available.
1175
1176 Version 2.02.142 - 15th February 2016
1177 =====================================
1178 Fix memory pool corruption in pvmove (2.02.141).
1179 Support control of spare metadata creation when repairing thin-pool.
1180 Fix config type of 'log/verbose' from bool to int (2.02.99).
1181 Fix inverted data LV thinp watermark calc for dmeventd response (2.02.133).
1182 Use use_blkid_wiping=0 if not defined in lvm.conf and support not compiled in.
1183 Do not check for suspended devices if scanning for lvmetad update.
1184 Clear cached bootloader areas when PV format changed.
1185 Fix partn table filter with external_device_info_source="udev" and blkid<2.20.
1186
1187 Version 2.02.141 - 25th January 2016
1188 ====================================
1189 Add metadata/check_pv_device_sizes switch to lvm.conf for device size checks.
1190 Warn if device size is less than corresponding PV size in metadata.
1191 Cache device sizes internally.
1192 Restore support for command breaking in process_each_lv_in_vg() (2.02.118).
1193 Use correct mempool when process_each_lv_in_vg() (2.02.118).
1194 Fix lvm.8 man to show again prohibited suffixes.
1195 Fix configure to set proper use_blkid_wiping if autodetection as disabled.
1196 Initialise udev in clvmd for use in device scanning. (2.02.116)
1197 Add seg_le_ranges report field for common format when displaying seg devices.
1198 Honour report/list_item_separator for seg_metadata_le_ranges report field.
1199 Don't mark hidden devs in -o devices,metadata_devices,seg_pe_ranges.(2.02.140)
1200 Change LV sizes in seg_pe_ranges report field to match underlying devices.
1201 Add kernel_cache_settings report field for cache LV settings used in kernel.
1202
1203 Version 2.02.140 - 16th January 2016
1204 ====================================
1205 Fix lvm2app to return either 0 or 1 for lvm_vg_is_{clustered,exported}.
1206 Add kernel_discards report field to display thin pool discard used in kernel.
1207 Correct checking of target presence when driver access is disabled.
1208 Eval poolmetadatasize arg earlier in lvresize.
1209 Fix vgcfgrestore to respect allocatable attribute of PVs.
1210 Add report/mark_hidden_devices to lvm.conf.
1211 Use brackets consistently in report fields to mark hidden devices.
1212 Restore background polling processing during auto-activation (2.02.119).
1213 Fix invalid memory read when reporting cache LV policy_name (2.02.126).
1214
1215 Version 2.02.139 - 8th January 2016
1216 ===================================
1217 Update lvmlockd with the new VG seqno before devices are suspended.
1218 Rework vgrename to use the common processing code in toollib.
1219 Make pvs show new devices on the system since the last .cache update.
1220 Document F,D and M thin pool health status chars for lv_attr in lvs man page.
1221 Also add lvm2-activation{-early,-net}.service systemd status for lvmdump -s.
1222
1223 Version 2.02.138 - 14th December 2015
1224 =====================================
1225 Support lvrename for hidden (used) cache pools.
1226 Fix lvrename for stacked cache pools.
1227
1228 Version 2.02.137 - 5th December 2015
1229 ====================================
1230 Restore archiving before changing metadata in vgextend (2.02.117).
1231 Dropped internal usage of log_suppress(2).
1232 Cleaned logging code for buffer size usage.
1233 Added internal id_read_format_try() function to check and read valid UUID.
1234 Change lvcreate, lvrename, lvresize to use process_each_vg.
1235 Change process_each_vg to handle single VG as separate arg.
1236 Issue error if ambiguous VG name is supplied in most commands.
1237 Make process_each fns always work through full list of known VG names.
1238 Use dm_get_status_mirror() instead of individual parsers.
1239 Add mem pool arg for check_transient_status() target function.
1240 Avoid misleading error with -m is omitted with lvconvert to raid types.
1241 Add system_id to vginfo cache.
1242
1243 Version 2.02.136 - 28th November 2015
1244 =====================================
1245 Add new --sinceversion option for lvmconfig --type new.
1246 Fix inactive table loaded for wrapping thin-pool when resizing it.
1247 Extend the list of ignored libraries when locking memory.
1248
1249 Version 2.02.135 - 23rd November 2015
1250 =====================================
1251 Add a model file for Coverity.
1252 Show correct error message for unsupported yet cache pool repair.
1253 Allow lvconvert cache pools' data and metadata LV to raid.
1254 Fix reading of old metadata with missing cache policy or mode settings.
1255 Issue error if external_device_info_source=udev and udev db record incomplete.
1256 Update lvmetad duplicate VG name handling to use hash function extensions.
1257 Detect invalid vgrenames by vgid where the name is unchanged.
1258 Fix passing of 32bit values through daemons (mostly lvmlockd).
1259 Use local memory pool for whole alloc_handle manipulation.
1260 Add missing pointer validation after dm_get_next_target().
1261 Do not deref NULL pointer in debug message for _match_pv_tags().
1262 Drop unneeded stat() call when checking for sysfs file.
1263 Fix memory leak on error path of failing thin-pool percentage check.
1264 Add missing test for failing node allocation in lvmetad.
1265 Correct configure messages when enabling/disabling lvmlockd.
1266
1267 Version 2.02.134 - 9th November 2015
1268 ====================================
1269 Refactor some lvmetad code and adjust some duplicate PV messages.
1270 No longer repair/wipe VG/PVs if inaccessible because foreign or shared.
1271 Pass correct data size to mirror log calc so log can be bigger than 1 extent.
1272
1273 Version 2.02.133 - 30th October 2015
1274 ====================================
1275 Support repeated -o|--options for reporting commands.
1276 Support -o- and -o# for reporting commands to remove and compact fields.
1277 Fix missing PVs from pvs output if vgremove is run concurrently.
1278 Remove unwanted error message when running pvs/vgs/lvs and vgremove at once.
1279 Check newly created VG's metadata do not overlap in metadata ring buffer.
1280 Check metadata area size is at least the minimum size defined for the format.
1281 Thin pool targets uses low_water_mark from profile.
1282 Dropping 'yet' from error of unsupported thick snapshot of snapshots.
1283 Do not support unpartitioned DASD devices with CDL formatted with pvcreate.
1284 For thins use flush for suspend only when volume size is reduced.
1285 Enable code which detects the need of flush during suspend.
1286 Ensure --use-policy will resize volume to fit below threshold.
1287 Correct percentage evaluation when checking thin-pool over threshold.
1288 Fix lvmcache to move PV from VG to orphans if VG is removed and lvmetad used.
1289 Fix lvmcache to not cache even invalid info about PV which got removed.
1290 Support checking of memlock daemon counter.
1291 Allow all log levels to be used with the lvmetad -l option.
1292 Add optional shutdown when idle support for lvmetad.
1293 Fix missing in-sync progress info while lvconvert used with lvmpolld.
1294 Add report/compact_output_cols to lvm.conf to define report cols to compact.
1295 Do not change logging in lvm2 library when it's already set.
1296 Check for enough space in thin-pool in command before creating new thin.
1297 Make libblkid detect all copies of the same signature if use_blkid_wiping=1.
1298 Fix vgimportclone with -n to not add number unnecessarily to base VG name.
1299 Cleanup vgimportclone script and remove dependency on awk, grep, cut and tr.
1300 Add vg_missing_pv_count report field to report number of missing PVs in a VG.
1301 Properly identify internal LV holding sanlock locks within lv_role field.
1302 Add metadata_devices and seg_metadata_le_ranges report fields for raid vols.
1303 Fix lvm2-{activation,clvmd,cmirrord,monitor} service to exec before mounting.
1304
1305 Version 2.02.132 - 22nd September 2015
1306 ======================================
1307 Fix lvmconf to set locking_type=2 if external locking library is requested.
1308 Remove verbose message when rescanning an unchanged device. (2.02.119)
1309 Add origin_uuid, mirror_log_uuid, move_pv_uuid, convert_lv_uuid report fields.
1310 Add pool_lv_uuid, metadata_lv_uuid, data_lv_uuid reporting fields.
1311 Fix PV label processing failure after pvcreate in lvm shell with lvmetad.
1312
1313 Version 2.02.131 - 15th September 2015
1314 ======================================
1315 Rename 'make install_full_man' to install_all_man and add all_man target.
1316 Fix vgimportclone cache_dir path name (2.02.115).
1317 Swapping of LV identifiers handles more complex LVs.
1318 Use passed list of PVS when allocating space in lvconvert --thinpool.
1319 Disallow usage of --stripe and --stripesize when creating cache pool.
1320 Warn user when caching raid or thin pool data LV.
1321 When layering LV, move LV flags with segments.
1322 Ignore persistent cache if configuration changed. (2.02.127)
1323 Fix devices/filter to be applied before disk-accessing filters. (2.02.112)
1324 Make tags only when requested via 'make tags'.
1325 Configure supports --disable-dependency-tracking for one-time builds.
1326 Fix usage of configure.h when building in srcdir != builddir.
1327
1328 Version 2.02.130 - 5th September 2015
1329 =====================================
1330 Fix use of uninitialized device status if reading outdated .cache record.
1331 Restore support for --monitor option in lvcreate (2.02.112).
1332 Read thin-pool data and metadata percent without flush.
1333 Detect blocked thin-pool and avoid scanning their thin volumes.
1334 Check if dm device is usable before checking its size (2.02.116).
1335 Extend parsing of cache_check version in configure.
1336 Make lvpoll error messages visible in lvmpolld's stderr and in syslog.
1337 Add 'make install_full_man' to install all man pages regardless of config.
1338
1339 Version 2.02.129 - 26th August 2015
1340 ===================================
1341 Drop error message when vgdisplay encounters an exported VG. (2.02.27)
1342 Fix shared library generation to stop exporting internal functions.(2.02.120)
1343 Accept --cachemode with lvconvert.
1344 Fix and improve reporting properties of cache-pool.
1345 Enable usage of --cachepolicy and --cachesettings with lvconvert.
1346 Don't allow to reduce size of thin-pool metadata.
1347 Fix debug buffer overflows in cmirrord logging.
1348 Add --foreground and --help to cmirrord.
1349
1350 Version 2.02.128 - 17th August 2015
1351 ===================================
1352 Allocation setting cache_pool_cachemode is replaced by cache_mode.
1353 Don't attempt to close config file that couldn't be opened.
1354 Check for valid cache mode in validation of cache segment.
1355 Change internal interface handling cache mode and policy.
1356 When no cache policy specified, prefer smq (if available) over mq.
1357 Add demo cache-mq and cache-smq profiles.
1358 Add cmd profilable allocation/cache_policy,cache_settings,cache_mode.
1359 Require cache_check 0.5.4 for use of --clear-needs-check-flag.
1360 Fix lvmetad udev rules to not override SYSTEMD_WANTS, add the service instead.
1361
1362 Version 2.02.127 - 10th August 2015
1363 ===================================
1364 Do not init filters, locking, lvmetad, lvmpolld if command doesn't use it.
1365 Order fields in struct cmd_context more logically.
1366 Add lock_type to lvmcache VG summary and info structs.
1367 Fix regression in cache causing some PVs to bypass filters (2.02.105).
1368 Make configure --enable-realtime the default now.
1369 Update .gitignore and configure.in files to reflect usage of current tree.
1370
1371 Version 2.02.126 - 24th July 2015
1372 =================================
1373 Fix long option hyphen removal. (2.02.122)
1374 Fix clvmd freeze if client disappears without first releasing its locks.
1375 Fix lvconvert segfaults while performing snapshots merge.
1376 Ignore errors during detection if use_blkid_wiping=1 and --force is used.
1377 Recognise DM_ABORT_ON_INTERNAL_ERRORS env var override in lvm logging fn.
1378 Fix alloc segfault when extending LV with fewer stripes than in first seg.
1379 Fix handling of cache policy name.
1380 Set cache policy before with the first lvm2 cache pool metadata commit.
1381 Fix detection of thin-pool overprovisioning (2.02.124).
1382 Fix lvmpolld segfaults on 32 bit architectures.
1383 Add lvmlockd lock_args validation to vg_validate.
1384 Fix ignored --startstopservices option if running lvmconf with systemd.
1385 Hide sanlock LVs when processing LVs in VG unless named or --all used.
1386
1387 Version 2.02.125 - 7th July 2015
1388 ================================
1389 Fix getline memory usage in lvmpolld.
1390 Add support --clear-needs-check-flag for cache_check of cache pool metadata.
1391 Add lvmetactl for developer use only.
1392 Rename global/lock_retries to lvmlockd_retries.
1393 Replace --enable-lvmlockd by --enable-lockd-sanlock and --enable-lockd-dlm.
1394
1395 Version 2.02.124 - 3rd July 2015
1396 ================================
1397 Move sending thin pool messages from resume to suspend phase.
1398 Report warning when pool is overprovisioned and not auto resized.
1399 Recognize free-form date/time values for lv_time field in selection criteria.
1400 Added experimental lvmlockd with configure --enable-lvmlockd.
1401 Fix regression in select to match string fields if using synonyms (2.02.123).
1402 Fix regression when printing more lv names via display_lvname (2.02.122).
1403 Add missing error logging to unlock_vg and sync_local_dev_names callers.
1404
1405 Version 2.02.123 - 30th June 2015
1406 =================================
1407 Add report/time_format lvm.conf option to define time format for report.
1408 Fix makefile shell compare == when building lvmetad lvmpolld (2.02.120).
1409 Add --type full to lvmconfig for full configuration tree view.
1410 Add undocumented environment variables to lvm man page. (2.02.119)
1411 Add device synchronization point before activating a new snapshot.
1412 Add --withspaces to lvmconfig to add spaces in output for better readability.
1413 Add custom main function to libdaemon.
1414 Use lvmetad to track out-of-date metadata discovered.
1415
1416 Version 2.02.122 - 20th June 2015
1417 =================================
1418 Flush stdout before printing to stderr.
1419 Use pre-allocated buffer for printed LV names in display_lvname.
1420 Support thins with size of external origin unaligned with thin pool chunk.
1421 Allow extension of reduced thin volumes with external origins.
1422 Consider snapshot and origin LV as unusable if component devices suspended.
1423 Fix lvmconfig segfault on settings with undefined default value (2.02.120).
1424 Add explicit 's' (shared) LV activation mode.
1425 Ignore hyphens in long options names (i.e. --long-option == --longoption).
1426
1427 Version 2.02.121 - 12th June 2015
1428 =================================
1429 Distinguish between on-disk and lvmetad versions of text metadata.
1430 Remove DL_LIBS from Makefiles for daemons that don't need them.
1431 Zero errno in before strtoul call in dmsetup if tested after the call.
1432 Zero errno in before strtoul call in lvmpolld.
1433 Fix a segfault in pvscan --cache --background command.
1434 Fix test for AREA_PV when checking for failed mirrors.
1435 Do not use --sysinit in lvm2-activation{-early,-net}.service if lvmpolld used.
1436 Maintain outdated PV info in lvmetad till all old metadata is gone from disk.
1437 Do not fail polling when poll LV not found (already finished or removed).
1438 Replace poll_get_copy_vg/lv fns with vg_read() and find_lv() in polldaemon.
1439 Close all device fds only in before sleep call in polldaemon.
1440 Simplify Makefile targets that generate exported symbols.
1441 Move various -D settings from Makefiles to configure.h.
1442
1443 Version 2.02.120 - 15th May 2015
1444 ================================
1445 Make various adjustments to Makefile compilation flags.
1446 Add lvmpolld debug message class.
1447 Add lvmpolld client mode for querying running server instance for status info.
1448 Fix some libdaemon socket creation and reuse error paths.
1449 Daemons (libdaemon) support exit on idle also in non-systemd environment.
1450 Provide make dist and make rpm targets
1451 Configure lvm.conf for use_lvmetad and use_lvmpolld.
1452 Add lvpoll for cmdline communication with lvmpolld.
1453 Add lvmpolld acting as a free-standing version of polldaemon.
1454 Avoid repeated identical lvmetad VG lookups in commands processing all VGs.
1455 Handle switches to alternative duplicate PVs efficiently with lvmetad.
1456 Properly validate PV size for pvcreate --restorefile.
1457 Fix check if pvcreate wiped device (2.02.117).
1458 Fix storing of vgid when caching metadata (2.02.118).
1459 Fix recursive lvm-config man page. (2.02.119)
1460 Refactor polldaemon interfaces to poll every operation by VG/LV couple
1461 Skip wait after testing in _wait_for_single_lv when polling finished
1462 Return 'None' in python for empty string properties instead of crashing.
1463 Distinguish signed numerical property type in reports for lvm2app library.
1464 Reread raid completion status immediately when progress appears to be zero.
1465 lvm2app closes locking on lvm_quit().
1466 Configure detects /run or /var/run.
1467 Add missing newline in clvmd --help output.
1468
1469 Version 2.02.119 - 2nd May 2015
1470 ===============================
1471 New LVM_LOG_FILE_EPOCH, LVM_EXPECTED_EXIT_STATUS env vars. Man page to follow.
1472 Remove detailed content from lvm.conf man page: use lvmconfig instead.
1473 Generate complete config files with lvmconfig or 'make generate'.
1474 Also display info on deprecated config with lvmconfig --withcomments.
1475 Display version since which config is deprecated in lvmconfig --withversions.
1476 Add --showdeprecated to lvmconfig to also display deprecated settings.
1477 Hide deprecated settings in lvmconfig output for all types but current,diff.
1478 Introduce support for exit on idle feature in libdaemon
1479 Add --showunsupported to lvmconfig to also display unsupported settings.
1480 Display unsupported settings for lvmconfig --type current,diff only by default
1481 Honour lvmconfig --ignoreunsupported and --ignoreadvanced for all --type.
1482 Make python bindings usable with python3 (and compatible with 2.6 & 2.7).
1483 Add lvmconfig -l|--list as shortcut for lvmconfig --type list --withsummary.
1484 Add lvmconfig --type list to display plain list of configuration settings.
1485 Introduce lvmconfig as the preferred form of 'lvm dumpconfig'.
1486 Add lv_ancestors and lv_descendants reporting fields.
1487 Add --ignorelocal option to dumpconfig to ignore the local section.
1488 Close connection to lvmetad after fork.
1489 Make lvchange able to resume background pvmove polling again.
1490 Split pvmove update metadata fn in an initial one and a subsequent one.
1491 Refactor shared pvmove and lvconvert code into new _poll files.
1492 Add --unconfigured option to dumpconfig to print strings unconfigured.
1493 Add --withsummary option to dumpconfig to print first line - summary comment.
1494 Use number of device holders to help choose between duplicate PVs.
1495 Try to make lvmetad and non-lvmetad duplicate PV handling as similar as poss.
1496 Issue warnings about duplicate PVs discovered by lvmetad.
1497 Track alternative devices with matching PVIDs in lvmetad.
1498 Check for lvm binary in blkdeactivate and skip LVM processing if not present.
1499 Add --enable-halvm and --disable-halvm options to lvmconf script.
1500 Add --services, --mirrorservice and --startstopservices option to lvmconf.
1501 Use proper default value of global/use_lvmetad when processing lvmconf script.
1502 Respect allocation/cling_tag_list during initial contiguous allocation.
1503 Add A_PARTITION_BY_TAGS set when allocated areas should not share tags.
1504 Make changes persist with python addTag/removeTag.
1505 Set correct vgid when updating cache when writing PV metadata.
1506 More efficient clvmd singlenode locking emulation.
1507 Reject lvcreate -m with raid4/5/6 to avoid unexpected layout.
1508 Don't skip invalidation of cached orphans if vg write lck is held (2.02.118).
1509 Log relevant PV tags when using cling allocation.
1510 Add str_list_add_list() to combine two lists.
1511 Fix LV processing with selection to always do the selection on initial state.
1512 Add internal LV_REMOVED LV status flag.
1513
1514 Version 2.02.118 - 23rd March 2015
1515 ==================================
1516 Store metadata size + checksum in lvmcache and add struct lvmcache_vgsummary.
1517 Remove inaccessible clustered PVs from 'pvs -a'.
1518 Don't invalidate cached orphan information while global lock is held.
1519 Avoid rescan of all devices when requested pvscan for removed device.
1520 Measure configuration timestamps with nanoseconds when available.
1521 Disable lvchange of major and minor of pool LVs.
1522 Fix pvscan --cache to not scan and read ignored metadata areas on PVs.
1523 Add After=iscsi-shutdown.service to blk-availability.service systemd unit.
1524 Disallow vgconvert from changing metadata format when lvmetad is used.
1525 Don't do a full read of VG when creating a new VG with an existing name.
1526 Reduce amount of VG metadata parsing when looking for vgname on a PV.
1527 Avoid reparsing same metadata when reading same metadata from multiple PVs.
1528 Save extra device open/close when scanning device for size.
1529 Fix seg_monitor field to report status also for mirrors and thick snapshots.
1530 Replace LVM_WRITE with LVM_WRITE_LOCKED flags in metadata if system ID is set.
1531 Remove ACCESS_NEEDS_SYSTEM_ID VG status flag. (2.02.117)
1532 Enable system ID features.
1533
1534 Version 2.02.117 - 4th March 2015
1535 =================================
1536 Add CFG_DISABLED for new system ID config settings that must not yet be used.
1537 Preserve original format type field when processing backup files.
1538 Implement status action for lvm2-monitor initscript to display monitored LVs.
1539 Allow lvchange -p to change kernel state only if metadata state differs.
1540 Fix incorrect persistent .cache after report with label fields only (2.02.106).
1541 Reinstate PV tag recognition for pvs if reporting label fields only (2.02.105).
1542 Rescan devices before vgimport with lvmetad so exported VG is seen.
1543 Fix hang by adjusting cluster mirror regionsize, avoiding CPG msg limit.
1544 Do not crash when --cachepolicy is given without --cachesettings.
1545 Add NEEDS_FOREIGN_VGS flag to vgimport so --foreign is always supplied.
1546 Add --foreign to the 6 display and reporting tools and vgcfgbackup.
1547 Install /etc/lvm/lvmlocal.conf template with local section for systemid.
1548 Record creation_host_system_id in lvm2 metadata (never set yet).
1549 Reinstate recursive config file tag section processing. (2.02.99)
1550 Add 'lvm systemid' to display the current system ID (never set yet).
1551 Fix configure to properly recognize --with-default-raid10-segtype option.
1552 Do not refresh filters/rescan if no signature is wiped during pvcreate.
1553 Enforce none external dev info for wiping during pvcreate to avoid races.
1554 Add global/system_id_source and system_id_file to lvm.conf (disabled).
1555 Add support for VG system_id to control host access to VGs.
1556 Update vgextend to use process_each_vg.
1557 Add --ignoreskippedcluster to pvchange.
1558 Allow pvchange to modify several properties at once.
1559 Update pvchange to use process_each_pv.
1560 Fix pvs -a used with lvmetad to filter out devices unsuitable for PVs.
1561 Fix selection to recognize units for ba_start, vg_free and seg_start fields.
1562 Add support for -S/--select to vgexport and vgimport.
1563 Add support for -S/--select to vgdisplay, lvdisplay and pvdisplay without -C.
1564 Add support for -S/--select to vgremove and lvremove.
1565 Add support for -S/--select to vgchange,lvchange and pvchange.
1566 Add infrastructure to support selection for non-reporting tools.
1567 Add LVM_COMMAND_PROFILE env var to set default command profile name to use.
1568 Set CLOEXEC flag on file descriptors originating in libdaemon.
1569
1570 Version 2.02.116 - 30th January 2015
1571 ====================================
1572 Deactivate unused thin pools activated with lvm2 pre-2.02.112 versions.
1573 Check lock holding LV when lvconverting stacked raid LV in cluster.
1574 Support udev external dev info for filters: PV min size, mpath, md, partition.
1575 Add fw_raid_component_detection lvm.conf option to enable FW raid detection.
1576 Add devices/external_device_info_source lvm.conf option ("none" by default).
1577 Scan pools in for_each_sub_lv() and add for_each_sub_lv_except_pools().
1578 Fix lvm2app lvm_lv_get_property return value for fields with info/status ioctl.
1579 Fix lvm2app regression in lvm_lv_get_attr causing unknown values (2.02.115).
1580 Set default cache_mode to writethrough when missing in metadata.
1581 Preserve chunk size with repair and metadata swap of a thin pool.
1582 Fix raid --splitmirror 1 functionality (2.02.112).
1583 Fix tree preload to handle splitting raid images.
1584 Do not support unpartitioned DASD devices.
1585 Improve config validation to check if setting with string value can be empty.
1586
1587 Version 2.02.115 - 21st January 2015
1588 ====================================
1589 Report segment types without monitoring support as undefined.
1590 Support lvchange --errorwhenfull for thin pools.
1591 Improve the processing and reporting of duplicate PVs.
1592 Report lv_health_status and health attribute also for thin pool.
1593 Add lv_when_full reporting field.
1594 Add support for lvcreate --errorwhenfull y|n for thin pools.
1595 Fix lvconvert --repair to honour resilience requirement for segmented RAID LV.
1596 Filter out partitioned device-mapper devices as unsuitable for use as PVs.
1597 Also notify lvmetad about filtered device if using pvscan --cache DevicePath.
1598 Use LVM's own selection instead of awk expressions in clvmd startup scripts.
1599 Do not filter out snapshot origin LVs as unusable devices for an LVM stack.
1600 Fix incorrect rimage names when converting from mirror to raid1 LV (2.02.112).
1601 Introduce pvremove_many to avoid excessive metadata re-reading and messages.
1602 Check for cmirror availability during cluster mirror creation and activation.
1603 Add cache_policy and cache_settings reporting fields.
1604 Add missing recognition for --binary option with {pv,vg,lv}display -C.
1605 Fix vgimportclone to notify lvmetad about changes done if lvmetad is used.
1606 Fix vgimportclone to properly override config if it is missing in lvm.conf.
1607 Fix automatic use of configure --enable-udev-systemd-background-jobs.
1608 Correctly rename active split LV with -splitmirrors for raid1.
1609 Add report/compact_output to lvm.conf to enable/disable compact report output.
1610 Still restrict mirror region size to power of 2 when VG extent size is not.
1611
1612 Version 2.02.114 - 28th November 2014
1613 =====================================
1614 Release socket in daemon_close and protocol string in daemon_open error path.
1615 Add --cachepolicy and --cachesettings to lvcreate.
1616 Fix regression when parsing /dev/mapper dir (2.02.112).
1617 Fix missing rounding to 64KB when estimating optimal thin pool chunk size.
1618 Fix typo in clvmd initscript causing CLVMD_STOP_TIMEOUT var to be ignored.
1619 Fix size in pvresize "Resizing to ..." verbose msg to show proper result size.
1620
1621 Version 2.02.113 - 24th November 2014
1622 =====================================
1623 Add --cachepolicy and --cachesettings options to lvchange.
1624 Validate that converted volume and specified pool volume differ in lvconvert.
1625 Fix regression in vgscan --mknodes usage (2.02.112).
1626 Respect --prefix when setting CLMVD_PATH configure (2.02.89).
1627 Default to configure --enable-udev-systemd-background-jobs for systemd>=205.
1628 Fix ignore_vg() to properly react on various vg_read errors (2.02.112).
1629 Failed recovery returns FAILED_RECOVERY status flag for vg_read().
1630 Exit with non-zero status code when pvck encounters a problem.
1631 Fix clean_tree after activation/resume for cache target (2.02.112).
1632
1633 Version 2.02.112 - 11th November 2014
1634 =====================================
1635 Add cache_{read,write}_{hits,misses} reporting fields.
1636 Add cache_{total,used,dirty}_blocks reporting fields.
1637 Add _corig as reserved suffix.
1638 Reduce number of VG writes and commits when creating spare volumes.
1639 When remove_layer_from_lv() removes layer, restore subLV names.
1640 Cache-pool in use becomes invisible LV.
1641 Don't prompt for removal of _pmspare in VG without pool metadata LV.
1642 Deactivation of snapshot origin detects and deactivates left-over snapshots.
1643 Properly report error when taking snapshot of any cache type LV.
1644 Add basic thread debugging messages to dmeventd.
1645 Include threads being shutdown in dmeventd device registration responses.
1646 Initial support for external users of thin pools based on transaction_id.
1647 Report some basic percentage info for cache pools.
1648 Introduce size_mb_arg_with_percent() for advanced size arg reading.
1649 Add extra support for '.' as decimal point in size args.
1650 Add configure parameters for default segment type choices.
1651 Add global/sparse_segtype_default setting to use thin for --type sparse.
1652 Update and correct lvcreate and lvconvert man pages.
1653 Mark pools and snapshots as unzeroable volumes.
1654 Check for zeroing of volume after segment type is fully detected.
1655 Better support for persistent major and minor options with lvcreate.
1656 Refactor lvcreate towards more complete validation of all supported options.
1657 Support lvcreate --type linear.
1658 Improve _should_wipe_lv() to warn with message.
1659 Inform about temporarily created volumes only in verbose mode.
1660 Better support for --test mode with pool creation.
1661 Query lock holding LV when replacing and converting raid volumes.
1662 Add extra validate for locked lv within validate_lv_cache_create().
1663 Add internal lvseg_name() function.
1664 Skip use of lock files for virtual internal VG names.
1665 Fix selection on {vg,lv}_permissions fields to properly match selection criteria.
1666 Fix lv_permissions reporting to display read-only{-override} instead of blank.
1667 Fix liblvm2cmd and lvm shell to respect quotes around args in cmd line string.
1668 Permit extent sizes > 128KB that are not power of 2 with lvm2 format.
1669 Remove workaround for lvm2-monitor.service hang on stop if lvmetad stopped.
1670 Change vgremove to use process_each_lv_in_vg.
1671 Allow lvconvert --repair and --splitmirrors on internal LVs.
1672 Introduce WARN_ flags to control some metadata warning messages.
1673 Use process_each_pv in vgreduce.
1674 Refactor process_each_pv in toollib.
1675 Introduce single validation routine for pool chunk size.
1676 Support --yes like --force in vg/lvremove to skip y|n prompt.
1677 Support --yes with lvconvert --splitsnapshot.
1678 Fix detection of unsupported thin external lvconversions.
1679 Fix detection of unsupported cache and thin pool lvconversions.
1680 Fix detection of unsupported lvconversion of cache to snapshot.
1681 Improve code for creation of cache and cache pool volumes.
1682 Check cluster-wide (not local) active status before removing LV.
1683 Properly check if activation of removed cached LV really activated.
1684 lvremove cached LV removes cachepool (keep with lvconvert --splitcache).
1685 Always remove spare LV with last removed pool volume.
1686 Support lvconvert --splitcache and --uncache of cached LV.
1687 Option --cache has also shortcut -H (i.e. lvcreate -H).
1688 Refactor lvcreate code and better preserve --type argument.
1689 Refactor filter processing around lvmetad.
1690 Refactor process_each_lv in toollib.
1691 Refactor process_each_vg in toollib.
1692 Pools cannot be used as external origin.
1693 Use lv_update_and_reload() for snapshot reload.
1694 Don't print message in adjusted_mirror_region_size() in activation.
1695 Improve lv_update_and_reload() to find out proper lock holding LV.
1696 Improve search of LV in lv_ondisk().
1697 Do not scan sysfs in lv_check_not_in_use() when device is closed.
1698 Backup final metadata after resync of mirror/raid.
1699 Unify handling of --persistent option for lvcreate and lvchange.
1700 Validate major and minor numbers stored in metadata.
1701 Use -fPIE when linking -pie executables.
1702 Support DEBUG_MEMLOCK to trap unsupported mmap usage.
1703 Enable cache segment type by default.
1704 Ensure only supported volume types are used with cache segments.
1705 Fix inability to specify cachemode when 'lvconvert'ing to cache-pool.
1706 Grab cluster lock for active LVs when setting clustered attribute.
1707 Use va_copy to properly pass va_list through functions.
1708 Add function to detect rotational devices.
1709 Review internal checks for mirror/raid/pvmove volumes.
1710 Track mirror segment type with separate MIRROR flag.
1711 Fix cmirror endian conversions.
1712 Introduce lv_is_pvmove/locked/converting/merging macros.
1713 Avoid leaving linear logical volume when thin pool creation fails.
1714 Don't leak alloc_handle on raid target error path.
1715 Properly validate raid leg names.
1716 Archive metadata before starting their modification in raid target.
1717 Add missing vg_revert() in suspend_lv() raid and snapshot error path.
1718 Add missing backup of lvm2 metadata after some raid modifications.
1719 Use vg memory pool for extent allocation.
1720 Add allocation/physical_extent_size config option for default PE size of VGs.
1721 Demote an error to a warning when devices known to lvmetad are filtered out.
1722 Re-order filter evaluation, making component filters global.
1723 Fix logic that checks for full scan before iterating through devices.
1724 Introduce common code to modify metadata and reload updated LV.
1725 Fix rename of active snapshot volume in cluster.
1726 Make sure shared libraries are built with RELRO option.
1727
1728 Version 2.02.111 - 1st September 2014
1729 =====================================
1730 Pass properly sized char buffers for sscanf when initializing clvmd.
1731 Reinstate nosync logic when extending mirror. (2.02.110)
1732 Fix total area extent calculation when allocating cache pool. (2.02.110)
1733
1734 Version 2.02.110 - 26th August 2014
1735 ===================================
1736 Fix manipulation with thin-pools which are excluded via volume_list.
1737 Support lv/vgremove -ff to remove thin vols from broken/inactive thin pools.
1738 Fix typo breaking configure --with-lvm1=shared.
1739 Modify lvresize code to handle raid/mirrors and physical extents.
1740 Don't allow pvcreate to proceed if scanning or filtering fails.
1741 Cleanly error when creating RAID with stripe size < PAGE_SIZE.
1742 Print name of LV which on activation triggers delayed snapshot merge.
1743 Add lv_layout and lv_role LV reporting fields.
1744 Properly display lvs lv_attr volume type and target type bit for cache origin.
1745 Fix pvcreate_check() to update cache correctly after signature wiping.
1746 Fix primary device lookup failure for partition when processing mpath filter.
1747 If LV inactive and non-clustered, do not issue "Cannot deactivate" on -aln.
1748 Remove spurious "Skipping mirror LV" message on pvmove of clustered mirror.
1749
1750 Version 2.02.109 - 5th August 2014
1751 ==================================
1752 Remove lv_volume_type field from reports. (2.02.108)
1753 Fix a segfault in lvscan --cache when devices were already missing. (2.02.108)
1754 Fix incorrect persistent .cache after vgcreate with PV creation. (2.02.108)
1755 Display actual size changed when resizing LV.
1756 Allow approximate allocation with +%FREE in lvextend.
1757 Remove possible spurious "not found" message on PV create before wiping.
1758 Handle upgrade from 2.02.105 when an LV now gaining a uuid suffix is active.
1759
1760 Version 2.02.108 - 23rd July 2014
1761 =================================
1762 Add lvscan --cache which re-scans constituents of a particular LV.
1763 Make dmeventd's RAID plugin re-scan failed PVs when lvmetad is in use.
1764 Improve code sharing for lvconvert and lvcreate and pools (cache & thin).
1765 Improve lvconvert --merge validation.
1766 Improve lvconvert --splitsnapshot validation.
1767 Add report/list_item_separator lvm.conf option.
1768 Add lv_active_{locally,remotely,exclusively} LV reporting fields.
1769 Comment out devices/{preferred_names,filter} in default lvm.conf file.
1770 Enhance lvconvert thin, thinpool, cache and cachepool command line support.
1771 Display 'C' only for cache and cache-pool target types in lvs.
1772 Prompt for confirmation before change LV into a snapshot exception store.
1773 Return proper error codes for some failing lvconvert functions.
1774 Add initial code to use cache tools (cache_check|dump|repair|restore).
1775 Support lvdisplay --maps for raid.
1776 Add --activationmode degraded to activate degraded raid volumes by default.
1777 Add separate lv_active_{locally,remotely,exclusively} LV reporting fields.
1778 Recognize "auto"/"unmanaged" values in selection for appropriate fields only.
1779 Add report/binary_values_as_numeric lvm.conf option for binary values as 0/1.
1780 Add --binary arg to pvs,vgs,lvs and {pv,vg,lv}display -C for 0/1 on reports.
1781 Add separate reporting fields for each each {pv,vg,lv}_attr bit.
1782 Separate LV device status reporting fields out of LV fields.
1783 Fix regression causing PVs not in VGs to be marked as allocatable (2.02.59).
1784 Fix VG component of lvid in vgsplit/vgmerge and check in vg_validate.
1785 Add lv_full_name, lv_parent and lv_dm_path fields to reports.
1786 Change lv_path field to suppress devices that never appear in /dev/vg.
1787 Postpone thin pool lvconvert prompts (2.02.107).
1788 Require --yes option to skip prompt to lvconvert thin pool chunksize.
1789 Support lvremove -ff to remove thin volumes from broken thin pools.
1790 Require --yes to skip raid repair prompt.
1791 Change makefile %.d generation to handle filename changes without make clean.
1792 Fix use of builddir in make pofile.
1793 Enhance private volumes UUIDs with suffixed for easier detection.
1794 Do not use reserved _[tc]meta volumes for temporary LVs.
1795 Leave backup pool metadata with _meta%d suffix instead of reserved _tmeta%d.
1796 Allow RAID repair to reuse PVs from same image that suffered a failure.
1797 New RAID images now avoid allocation on any PVs in the same parent RAID LV.
1798 Always reevaluate filters just before creating PV.
1799
1800 Version 2.02.107 - 23rd June 2014
1801 =================================
1802 Introduce LCK_ACTIVATION to avoid concurrent activation of basic LV types.
1803 Fix open_count test for lvchange --refresh or mirrors and raids.
1804 Update pvs,vgs,lvs and lvm man page for selection support.
1805 Add -S/--select to lvm devtypes for report selection.
1806 Add -S/--select to pvs,vgs,lvs and {pv,vg,lv}display -C for report selection.
1807 Use dm_report_init_with_selection now, implicit "selected" field appears.
1808 Make use of libdm's DM_REPORT_FIELD_TYPE{SIZE,PERCENT,STRING_LIST} for fields.
1809 Support all-or-nothing pvmove --atomic.
1810 Automatically add snapshot metadata size for -l %ORIGIN calculation.
1811 When converting RAID origin to cache LV, properly rename sub-LVs.
1812 Use RemoveOnStop for lvm2-lvmetad.socket systemd unit.
1813 Add thin-generic configuration profile for generic thin settings.
1814 Fix crash when reporting empty labels on pvs.
1815 Use retry_deactivation also when cleaning orphan devices.
1816 Wait for client threads when shutting down lvmetad.
1817 Remove PV from cache on pvremove.
1818 Avoid repeatedly reporting of failure to connect to lvmetad.
1819 Introduce MDA_FAILED to permit metadata updates even if some mdas are missing.
1820 Prompt when setting the VG cluster attr if the cluster is not setup.
1821 Allow --yes to skip prompt in vgextend (worked only with -f).
1822 Don't use name mangling for LVM - it never uses dm names with wrong char set.
1823 Remove default.profile and add {command,metadata}_profile_template.profile.
1824 Use proper umask for systemd units generated by lvm2-activation-generator.
1825 Check for failing mirror_remove_missing() function.
1826 Prompt before converting volumes to thin pool and thin pool metadata.
1827 Add dumpconfig --type profilable-{metadata,command} to select profile type.
1828 Exit immediately with error if command profile is found invalid.
1829 Separate --profile cmd line arg into --commandprofile and --metadataprofile.
1830 Strictly separate command profiles and per-VG/LV profiles referenced in mda.
1831 Fix dumpconfig --type diff when run as second and later cmd in lvm shell.
1832 Fix wrong profile reuse from previous run if another cmd is run in lvm shell.
1833 Move cache description from lvm(8) to new lvmcache(7) man page.
1834 Display skipped prompt in silent mode.
1835 Make reporting commands show help about possible sort keys on '-O help'.
1836 Add metadata_percent to lvs_cols.
1837 Take account of parity areas with alloc anywhere in _calc_required_extents.
1838 Use proper uint64 casting for calculation of cache metadata size.
1839 Better support for nesting of blocking signals.
1840 Use only sigaction handler and drop duplicate signal handler.
1841 Separate signal handling and flock code out into lib/misc.
1842 Don't start dmeventd checking seg_monitor and monitoring is disabled.
1843 Catch CTRL-c during pvremove prompts.
1844 Show correct availability status for snapshot origin in lvscan.
1845 Move segment thin pool/volume info into segment display 'lvdisplay --maps'.
1846 Display thin pool usage even when just thin volume is available.
1847 Display monitoring status for monitorable segments in 'lvdisplay --maps'.
1848 Display virtual extents for virtual LVs in 'lvdisplay --maps'.
1849 Make vgsplit fail cleanly when not all PVs are specified for RAID 4/5/6.
1850 Make vgsplit work on mirrors with logs that share PVs with images.
1851 Use devices/ignore_suspended_devices=0 by default if not defined in lvm.conf.
1852 Use proper libmem mempool for allocation of unknown segment name.
1853 Add --readonly to reporting and display tools for lock-free metadata access.
1854 Add locking_type 5 for dummy locking for tools that do not need any locks.
1855 Fix _recover_vg() error path when lock conversion fails.
1856 Use X for LV attributes that are unknown when activation disabled.
1857 Only output lvdisplay 'LV Status' field when activation is enabled.
1858 Use lvmetad_used() in pvscan instead of config_tree.
1859 Configure --enable-udev-systemd-background-jobs if not disabled explicitly.
1860 Add lvmdump -s to collect system info and context (currently systemd only).
1861 Refactor allocation code to make A_POSITIONAL_FILL explicit.
1862 Use thread-safe ctime_r() for clvmd debug logging.
1863 Skip adding replies to already finished reply thread.
1864 Use mutex to check number of replies in request_timed_out() in clvmd.
1865 Drop usage of extra reply_mutex for localsock in clvmd.
1866 Protect manipulation with finished flag with mutex in clvmd.
1867 Shift mutex creation and destroy for localsock in clvmd to correct place.
1868 Fix usage of --test option in clvmd.
1869 Skip more libraries to be mlocked in memory.
1870 Remove LOCKED flag for pvmove replaced with error target.
1871 Return invalid command when specifying negative polling interval.
1872
1873 Version 2.02.106 - 10th April 2014
1874 ==================================
1875 Fix ignored --dataalignment/dataalignment offset for pvcreate --restorefile.
1876 Fix lost information about bootloader area when using lvmetad.
1877 Don't require --major to be specified when using -My option on kernels > 2.4.
1878 Add configure --disable-thin_check_needs_check to support old thin_check.
1879 Use thin_check --clear-needs-check-flag by default.
1880 Export lvm_even_rand() for controlled provision of random numbers.
1881 Add lvmthin man page to section 7.
1882 Ensure mapped device names are not too long in vg_validate and lvrename.
1883 Ensure resume failure in lvrename results in command failure.
1884 Add explicit error message when using lvdisplay -c -m.
1885 Report error if superfluous argument (e.g. PV name) supplied to pvscan.
1886 Fix error message for pvdisplay -c -m and add one for pvdisplay -c -s.
1887 Use EINVALID_CMD_LINE correctly instead of ECMD_FAILED in vgimport/export.
1888 Obtain list of known VGs from lvmetad for pvchange --all.
1889 Add man page for lvm-dumpconfig to section 8.
1890 Drop unused cmd pointer for internal function for_each_sub_lv().
1891 Validate name for renamed sub LVs.
1892 When lvrename fails on argument parsing return EINVALID_CMD_LINE.
1893 Fix exit code regression in failing pvchange command (2.02.66).
1894 Include 'lvm dumpconfig --type missing' and '--type diff' output to lvmdump.
1895 Return failure when specifying negative size for pvresize.
1896 Fix memory corruption in cmd context refresh if clvmd leaks opened device.
1897 Reinitialize lvmcache properly on fork to fix premature polldaemon exit.
1898 Add 'lvm dumpconfig --type diff' to show differences from defaults.
1899 Fix swap signature detection for devices smaller then 2MB.
1900 Use dm_malloc function in clvmd.c.
1901 Resolve memory release order for clvmd shutdown.
1902 Report error when lvm2 activation is released in critical_section.
1903 Fix memory corruption when pvscan reports long pv names.
1904 Do not report internal orphan VG names when reporting pvdisplay/pvscan.
1905 Fix pvdisplay -c man page referencing KB instead of sectors.
1906 Skip redundant synchronization calls on local clvmd.
1907 Use correct PATH_MAX for locking dir path.
1908 Do not check for backups when when its creation is disabled.
1909 Don't allow --mergedconfig without --type current in dumpconfig. Fix memleak.
1910 Make global/lvdisplay_shows_full_device_path lvm.conf setting profilable.
1911 Make global/{units|si_unit_consistency|suffix} lvm.conf setting profilable.
1912 Validate minimal chunk size for snapshot COW volume in lvconvert.
1913 Disallow lvconvert of origin to snapshot COW volume.
1914 Make report lvm.conf settings profilable.
1915 Add existing report settings to lvm.conf.
1916 Use VG read lock during 'pvscan --cache -aay' autoactivation.
1917 Issue a VG refresh before autoactivation only if the PV has changed/is new.
1918 Add flag to lvmetad protocol to indicate the PV scanned has changed/is new.
1919 Also add vgname to lvmetad protocol when referencing VGs for PVs scanned.
1920 Add man page for lvm2-activation-generator.
1921 Don't print an error and accept empty value for global/thin_disabled_features.
1922 Update API for internal function build_dm_uuid().
1923 Do not try to check empty pool with scheduled messages.
1924 Fix return value in pool_has_message() when querying for any message.
1925 Cleanup all client resources on clvmd exit.
1926 Use dm_zalloc to clear members of clvmd client struct.
1927 Use BLKID_CFLAGS when compiling with blkid support.
1928 Use correct rl_completion_func_t typedef for new readline.
1929 Make lvm 'dumpconfig --type default' complete for it to be consumed by lvm.
1930 Run pvscan --cache via systemd-run in udev if the PV label is detected lost.
1931 Fix memleak when lvmetad discovers PV to appear on another device.
1932 Fix calculation of maximum size of COW device for snapshot (2.02.99).
1933 Do not allow stripe size to be bigger then extent size for lvresize.
1934 Zero snapshot COW header when creating read-only snapshot.
1935 Comment out config lines in dumpconfig output without default values defined.
1936 Improve detection of clustered mirror support.
1937 Enhance raid code with feature flags, for now checks for raid10.
1938 Move parsing of VG metadata from vg_commit() back to vg_write() (2.02.99)
1939 Avoid a PV label scan while in a critical section.
1940 Remove (always 0) skip argument from lv_activation_skip().
1941 Create /dev/disk/by-id/lvm-pv-uuid-<PV_UUID> symlink for each PV via udev.
1942 lvcreate computes RAID4/5/6 stripes if not given from # of allocatable PVs.
1943 Fix merging of old snapshot into thin volume origin.
1944 Use --ignoreskippedcluster in lvm2-monitor initscript/systemd unit.
1945 Do not use VG read/write state for LV read/write state.
1946 Use --ignoreskippedcluster in activation systemd units if use_lvmetad=0.
1947 Allow approximate allocation when specifying size in percentage terms.
1948 Add basic LVM support for cache[pool] segment types.
1949 Use local exclusive activation for creation of raid in cluster.
1950 Use correctly signed 64b constant when selecting raid volumes.
1951 Add systemd native service for clvmd, cmirrord and clustered LV activation.
1952 Remove ExecReload from lvmetad systemd unit: lvmetad -R undefined. (2.02.98)
1953 Do not fork lvmetad if running under systemd.
1954 Wipe DM_snapshot_cow signature without prompt in new LVs with blkid wiping.
1955 Avoid exposing temporary devices when initializing raid metadata volumes.
1956 Add internal tags command to display any tags defined on the host.
1957 Prohibit use of external origin with size incompatible with thin pool.
1958 Avoid trying to convert single to thin pool and volume at the same time.
1959 Add support for partitions on ZFS zvol.
1960 Fix unwanted drop of hold flocks on forked children.
1961 Respect LVM_LVMETAD_PIDFILE env var for lvm command.
1962 Avoid exposing temporary devices when initializing thin pool volume.
1963 Fix test when checking target version for available thin features.
1964 Detect thin feature external_origin_extend and limit extend when missing.
1965 Rename internal pool_can_resize_metadata() to thin_pool_feature_supported().
1966 Issue error if libblkid detects signature and fails to return offset/length.
1967 Update autoconf config.guess/sub to 2014-01-01.
1968 Online thin pool metadata resize requires 1.10 kernel thin pool target.
1969
1970 Version 2.02.105 - 20th January 2014
1971 ====================================
1972 Fix thin LV flagging for udev to skip scanning only if the LV is wiped.
1973 Replace use of xfs_check with xfs_repair in fsadm.
1974 Mark lvm1 format metadata as FMT_OBSOLETE. Do not use it with lvmetad.
1975 Invalidate cached VG struct after a PV in it gets orphaned. (2.02.87)
1976 Mark pool format metadata as FMT_OBSOLETE.
1977 Use major:minor in lvm2-pvscan@.service for proper global_filter application.
1978 Syntax and spelling fixes in some man pages.
1979 Dependency scan counts with snapshots and external origins.
1980 Make sure VG extent size is always greater or equal to PV phys. block size.
1981 Optimize double call of stat() for cached devices.
1982 Enable support for thin provisioning for default configuration.
1983 Improve process_each_lv_in_vg() tag processing.
1984 Reordered and simplified logging code.
1985 Fix SYSTEMD_READY assignment for foreign devices in lvmetad udev rules.
1986 Disable online thin pool metadata resize for 1.9 kernel thin target.
1987 Shortened code for initialization of raid segment types.
1988 Cache global library dir in command context.
1989 Return success when inserting dirs and links into device cache.
1990 Test for remote exclusive activation after activation fails.
1991 Support lvconvert --merge for thin snapshots.
1992 Add support to read thin device id from table line entry.
1993 Drop extra test for origin when testing merging origin in lv_refresh().
1994 Extend lv_remove_single() to not print info about removed LV.
1995 Replace open_count check with lv_check_not_in_use() for snapshot open test.
1996 Add error messages with LV names for failing lv refresh.
1997 Compile/link executables with new RELRO and PIE options (non-static builds).
1998 Support per-object compilation cflags via CFLAGS_object.o.
1999 Automatically detect support for compiler/linker options to use RELRO and PIE.
2000 Add --splitsnapshot to lvconvert to separate out cow LV.
2001 Reinstate origin reload to complete lvconvert -s with active LVs. (2.02.98)
2002 Select only active volume groups if vgdisplay -A is used.
2003 Add -p and LVM_LVMETAD_PIDFILE env var to lvmetad to change pid file.
2004 Allow lvmetad to reuse stale socket.
2005 Only unlink lvmetad socket on error if created by the same process.
2006 Append missing newline to lvmetad missing socket path error message.
2007 Check for non-zero alignment in _text_pv_add_metadata_area() to not div by 0.
2008 Add allocation/use_blkid_wiping to lvm.conf to enable blkid wiping.
2009 Enable blkid_wiping by default if the blkid library is present.
2010 Add configure --disable-blkid_wiping to disable libblkid signature detection.
2011 Add -W/--wipesignatures lvcreate option to support wiping on new LVs.
2012 Add allocation/wipe_signatures_when_zeroing_new_lvs to lvm.conf.
2013 Do not fail the whole autoactivation if the VG refresh done before fails.
2014 Do not connect to lvmetad on vg/lvchange --sysinit -aay and socket absent.
2015 Use lv_check_not_in_use() when testing device in use before merging.
2016 Move test for target present from init_snapshot_merge() to lvconvert.
2017 Check for failure of lvmcache_add_mda() when writing pv.
2018 Check for failure of dev_get_size() when reporting device size.
2019 Drop extra unneeded '/' when scanning sysfs directory.
2020 Fix undef value if skipped clustered VG ignored for toollib PV seg. (2.02.103)
2021 Support validation of VG/LV names in liblvm/python.
2022 Allow creation of PVs with arguments to liblvm/python.
2023 Ensure sufficient metadata copies retained in liblvm/python vgreduce.
2024 Fix installation of profiles from conf subdir when not building in srcdir.
2025 Show UUIDs for missing PVs in reports.
2026 Change dev_size/name, pv_fmt/mda_free/mda_size/uuid fields from pv to label.
2027 Add struct device *dev to struct label.
2028 Introduce process_each_label.
2029 Change void *private to struct format_type *fmt in struct labeller.
2030 Remove pv_read.
2031 Add reporting of thin_id device id for thin volumes.
2032 Fix reporting of empty numerical values for recently-added fields.
2033 Use _field_set_percent/value in reporting code.
2034
2035 Version 2.02.104 - 13th November 2013
2036 =====================================
2037 Workaround VG refresh race during autoactivation by retrying the refresh.
2038 Handle failures in temporary mirror used when adding images to mirrors.
2039 Fix and improve logic for implicitly exclusive activations.
2040 Return success when LV cannot be activated because of volume_list filter.
2041 Return proper error state for remote exclusive activation.
2042 Fix missing lvmetad scan for PVs found on MD partitions.
2043 Respect DM_UDEV_DISABLE_OTHER_RULES_FLAG in lvmetad udev rules.
2044 Fix clvmd message verification to not reject REMOTE flag. (2.02.100)
2045 Compare equality of double values with DBL_EPSILON predefined constant.
2046 Use additional gcc warning flags by default.
2047 Add ignore_lvm_mirrors to config file to read/ignore labels on mirrors.
2048 Add internal flag for temporary LVs to properly direct udev to not interfere.
2049 Fix endless loop in blkdeactivate <device>... if unable to umount/deactivate.
2050 Add dev-block-<major>:<minor>.device systemd alias for complete PV tracking.
2051 Use major:minor as short form of --major and --minor arg for pvscan --cache.
2052 Remove 2>/dev/null from three lvm commands executed by vgimportclone.
2053 Add configure --enable-udev-systemd-background-jobs.
2054 Add lvm2-pvscan@.service to run pvscan as a service for lvmetad/autoactivation.
2055 Use #ifdef __linux__ instead of linux throughout.
2056 Fix lvconvert swap of poolmetadata volume for active thin pool.
2057 Check for open count with a timeout before removal/deactivation of an LV.
2058 Report RAID images split with tracking as out-of-sync ("I").
2059 Improve parsing of snapshot lv segment.
2060 Add workaround for deactivation problem of opened virtual snapshot.
2061 Disable unsupported merge for virtual snapshot.
2062 Move code to remove virtual snapshot from tools to lib for lvm2app.
2063 Fix possible race during daemon worker thread creation (lvmetad).
2064 Fix possible deadlock while clearing lvmetad cache for full rescan.
2065 Recognise NVM Express devices in filter.
2066 Fix failing metadata repair when lvmetad is used.
2067 Fix incorrect memory handling when reading messages from lvmetad.
2068 Fix locking in lvmetad when handling the PV which is gone.
2069 Recognize new flag to skip udev scanning in udev rules and act appropriately.
2070 Add support for flagging an LV to skip udev scanning during activation.
2071 Improve message when unable to change discards setting on active thin pool.
2072 Run full scan before vgrename operation to avoid any cache name collision.
2073 Fix lvconvert when converting to a thin pool and thin LV at once. (2.02.99)
2074
2075 Version 2.02.103 - 4th October 2013
2076 ===================================
2077 Ensure vgid matches before removing vgname entry from lvmetad cache.
2078 Add --ignoreskippedcluster for exit status success when clustered VGs skipped.
2079 Fix 3 minute udev timeout so that it is applied for all LVM volumes.
2080 Fix thin/raid & activation config defaults with configure --disable-devmapper.
2081 Fix RAID calculation for sufficient allocatable space.
2082 lvconvert from linear to mirror or RAID1 now honors mirror_segtype_default.
2083 Add thin-performance configuration profile.
2084 Add lvm.conf allocation/thin_pool_chunk_size_policy option.
2085 Fix contiguous & cling allocation policies for parity RAID. (2.02.100)
2086 Have lvmconf --enable/disable-cluster reset/set use_lvmetad.
2087 Don't install separate command symlink for 'lvm devtypes'. (2.02.101)
2088 Add seg_size_pe field to reports.
2089 Support start+length notation with command line PE ranges.
2090 Exit cleanly with message when pvmove cannot restart because LV is inactive.
2091
2092 Version 2.02.102 - 23rd September 2013
2093 ======================================
2094 Fix missing build dependency for scripts subdir in Makefile.
2095 Extend lv_info() for more efficient lv_is_active_locally() check.
2096 Fix node up/down handling in clvmd corosync module.
2097
2098 Version 2.02.101 - 20th September 2013
2099 ======================================
2100 Fix 3-thread clvmd deadlock triggered by cleanup on EOF from client.
2101 Remove VG from lvmetad before restoring it with vgcfgrestore.
2102 Use strtoull instead of strtol in _get_int_arg.
2103 Add devtypes report command to display built-in recognised block device types.
2104 Fix CC Makefile override which had reverted to using built-in value. (2.02.75)
2105 Recognise bcache block devices in filter (experimental).
2106 Run lvm2-activation-net after lvm2-activation service to prevent parallel run.
2107 Add man page entries for lvmdump's -u and -l options.
2108 Fix lvm2app segfault while using lvm_list_pvs_free fn if there are no PVs.
2109 Improve of clvmd singlenode locking simulation.
2110 lvconvert no longer converts LVs of "mirror" segment type to thinpool.
2111 lvconvert no longer converts thinpool sub-LVs to "mirror" segment type.
2112 Direct udev to use 3min timeout for LVM devices. Recent udev has default 30s.
2113 Do not scan multipath or RAID components and avoid incorrect autoactivation.
2114 Fix MD/loop udev handling to fire autoactivation after setup or coldplug only.
2115 Make RAID capable of single-machine exclusive operations in a cluster.
2116 Drop calculation of read ahead for deactivated volume.
2117 Check for exactly one lv segment in validation of thin pools and volumes.
2118 Fix dmeventd unmonitoring of thin pools.
2119 Fix lvresize for stacked thin pool volumes (i.e. mirrors).
2120 Write Completed debug message before reinstating log defaults after command.
2121 Refresh existing VG before autoactivation (event retrigger/device reappeared).
2122 Use pvscan -b in udev rules to avoid a deadlock on udev process count limit.
2123 Add pvscan -b/--background for the command to be processed in the background.
2124 Don't assume stdin file descriptor is readable.
2125 Avoid unlimited recursion when creating dtree containing inactive pvmove LV.
2126 Require exactly 3 arguments for lvm2-activation-generator. Remove defaults.
2127 Inform lvmetad about any lost PV label to make it in sync with system state.
2128 Support most of lvchange operations on stacked thin pool meta/data LVs.
2129 Enable non-clustered pvmove of snapshots and snapshot origins.
2130 Add ability to pvmove non-clustered RAID, mirror, and thin volumes.
2131 Make lvm2-activation-generator silent unless it's in error state.
2132 Remove "mpath major is not dm major" msg for mpath component scan (2.02.94).
2133 Prevent cluster mirror logs from being corrupted by redundant checkpoints.
2134 Fix ignored lvmetad update on loop device configuration (2.02.99).
2135 Use LVM_PATH instead of hardcoded value in lvm2 activation systemd generator.
2136 Fix vgck to notice on-disk corruption even if lvmetad is used.
2137 Move mpath device filter before partitioned filter (which opens devices).
2138 Split partitioned filter out of lvm_type filter.
2139 Merge filter*.h into a single filter.h.
2140 Require confirmation for vgchange -c when no VGs listed explicitly.
2141 Also skip /var and /var/log by default in blkdeactivate when unmounting.
2142 Add support for bind mounts in blkdeactivate.
2143 Add blkdeactivate -v/--verbose for debug output from external tools used.
2144 Add blkdeactivate -e/--errors for error messages from external tools used.
2145 Suppress messages from external tools called in blkdeactivate by default.
2146
2147 Version 2.02.100 - 13th August 2013
2148 ===================================
2149 Fix inability to remove a VG's cluster flag if it contains a mirror.
2150 Suppress arg: prefix in log_sys_error macro when arg is empty string.
2151 Fix bug making lvchange unable to change recovery rate for RAID.
2152 Prohibit conversion of thin pool to external origin.
2153 Workaround gcc v4.8 -O2 bug causing failures if config/checks=1 (32bit arch).
2154 Verify clvmd message validity before processing and log error if incorrect.
2155 When creating PV on existing LV don't forbid reserved LV names on LVs below.
2156 Split out device_is_suspended_or_blocking from device_is_usable.
2157 When converting mirrors, default segtype should be the same unless specified.
2158 Make "raid1" the default mirror segment type.
2159 Fix clogd descriptor leak when daemonizing.
2160 Fix clvmd descriptor leak on restart.
2161 Add pipe_open/close() to use instead of less efficient/secure popen().
2162 Fix metadata area offset/size overflow if it's >= 4g and while using lvmetad.
2163 Inherit and apply any profile attached to a VG if creating new thin pool.
2164 Add initial support thin pool lvconvert --repair.
2165 Add --with-thin-repair and --with-thin-dump configure options.
2166 Add lvm.conf thin_repair/dump_executable and thin_repair_options.
2167 Require 1.9 thin pool target version for online thin pool metadata resize.
2168 Ignore previous LV seg with alloc contiguous & cling when num stripes varies.
2169 Fix segfault if devices/global_filter is not specified correctly.
2170
2171 Version 2.02.99 - 24th July 2013
2172 ================================
2173 Do not zero init 4KB of thin snapshot for non-zeroing thin pool (2.02.94).
2174 Issue an error msg if lvconvert --type used incorrectly with other options.
2175 Use LOG_DEBUG/ERR msg severity instead default for lvm2-activation-generator.
2176 Support ARG_GROUPABLE with merge_synonym (for --raidwritemostly).
2177 Fix segfault when reporting raid_syncaction for older kernels.
2178 Add LV report fields: raid_mismatch_count/raid_sync_action/raid_write_behind.
2179 Add LV reporting fields raid_min_recovery_rate, raid_max_recovery_rate.
2180 Add sync_percent as alias for copy_percent LV reporting field.
2181 Add lv_ prefix to modules reporting field.
2182 Use units B or b (never E) with no decimal places when displaying sizes < 1k.
2183 Add support for poolmetadataspare LV, that will be used for pool recovery.
2184 Improve activation order when creating thin pools in non-clustered VG.
2185 List thin-pool and thin modules for thin volumes.
2186 Correct thin creation error paths.
2187 Use local activation for clearing snapshot COW device.
2188 Add lvm2-activation-net systemd unit to activate LVs on net-attached storage.
2189 Release memory allocated with _cached_info().
2190 Add whole log_lv and metadata_lv sub volumes when creating partial tree.
2191 Properly use snapshot layer for origin which is also thin volume.
2192 Avoid generating metadata backup when calling update_pool_lv().
2193 Send thin messages also for active thin pool and inactive thin volume.
2194 Add activation/auto_set_activation_skip to control activation skip flagging.
2195 Add 's(k)ip activation' bit to lvs -o lv_attr to indicate skip flag attached.
2196 Add --ignoreactivationskip to lvcreate/vgchange/lvchange to ignore skip flag.
2197 Add --setactivationskip to lvcreate/lvchange to set activation skip flag.
2198 Automatically flag thin snapshots to be skipped during activation.
2199 Add support for persistent flagging of LVs to be skipped during activation.
2200 Add --type profilable to lvm dumpconfig to show profilable config settings.
2201 Add --mergedconfig to lvm dumpconfig for merged --config/--profile/lvm.conf.
2202 Release memory and unblock signals in lock_vol error path.
2203 Define LVM2_* command errors in lvm2cmd.h and use in dmeventd plugins.
2204 Move errors.h to tools dir.
2205 Add man page entries for profile configuration and related options.
2206 Improve error logging when user tries to interrupt commands.
2207 Rename _swap_lv to _swap_lv_identifiers and move to allow an additional user.
2208 Rename snapshot segment returning methods from find_*_cow to find_*_snapshot.
2209 liblvm/python API: Additions: PV create/removal/resize/listing
2210 liblvm/python API: Additions: LV attr/origin/Thin pool/Thin LV creation
2211 Add vgs/lvs -o vg_profile/lv_profile to report profiles attached to VG/LV.
2212 Add default.profile configuration profile and install it on make install.
2213 Create a new 'conf' subdir for configuration files including profiles.
2214 Make selected thinp settings customizable by a profile.
2215 Support changing VG/LV profiles: vgchange/lvchange --profile/--detachprofile.
2216 Support storing profile name in metadata for both VGs and LVs.
2217 Add new --profile command line arg to select a configuration profile for use.
2218 Add config/profile_dir to set working directory to load profiles from.
2219 Add configure --with-default-profile-subdir to select dir to keep profiles in.
2220 Add support for configuration profiles.
2221 Introduce config_source wrapper for identification of configuration sources.
2222 Avoid creation of multiple archives for one command.
2223 Use mirror_segtype_default if type not specified for linear->mirror upconvert.
2224 Fix use of too big chunks of memory when communication with lvmetad.
2225 Fix vgcfgrestore crash when specified incorrect vg name.
2226 Refine lvm.conf and man page documentation for autoactivation feature.
2227 Add support for thin volumes in vgsplit.
2228 Also filter partitions on mpath components if multipath_component_detection=1.
2229 Add lvresize support for online thin pool metadata volume resize.
2230 Add helper functions find_pool_lv() and pool_can_resize_metadata().
2231 Add detection for thin pool metadata resize kernel support.
2232 Report lvs volume type 'e' with higher priority.
2233 Report lvs volume type 'o' also for external origin volumes.
2234 Report lvs target type 't' only for thin pools and thin volumes.
2235 Fix test for active snapshot in cluster before resizing it.
2236 Allow local activation to receive a locally-supplied LV struct.
2237 Add vg->vg_ondisk / lv_ondisk() holding committed metadata.
2238 Report backtrace from dump filter error path.
2239 Do not use persistent filter with lvmetad.
2240 Composable persistent filter functionality for global filter.
2241 Override system's global_filter settings for vgimportclone.
2242 Detect maximum usable size for snapshot for lvresize.
2243 Creation of snapshot takes at most 100% origin coverage.
2244 Add cow_max_extents() to calc extents for 100% origin coverage.
2245 For creation of snapshot require size for at least 3 chunks.
2246 Fix lvresize --use-policies of VALID but 100% full snapshot.
2247 Do not accept size parameters bigger then 16EiB.
2248 Fix release of PV's fid in free_pv_fid().
2249 Skip monitoring of snapshots that are already bigger then origin.
2250 Add lv_is_cow_covering_origin() to check if cow covers origin size.
2251 Use libdm dm_get_status_snapshot() to parse snapshot status.
2252 Add detection of mounted fs also for vgchange deactivation.
2253 Replace 'lv_is_active' with more correct/specific variants (e.g. *_locally).
2254 Refuse to init a snapshot merge in lvconvert if there's no kernel support.
2255 Fix exported symbols regex for non-GNU busybox sed.
2256 Accept --yes in all commands so test scripts can be simpler.
2257 Fix alignment of PV data area if detected alignment less than 1 MB (2.02.74).
2258 Fix memory resource leak in memlocking error path.
2259 Fix premature DM version checking which caused useless mapper/control access.
2260 Add "active" LV reporting field to show activation state.
2261 Add "monitor" segment reporting field to show dmevent monitoring status.
2262 Document lvextend --use-policies option in man.
2263 Fix creation and removal of clustered snapshot.
2264 Fix clvmd caching of metadata when suspending inactive volumes.
2265 Find newest timestamp of merged config files.
2266 Fix assignment order for vg fid for lvm1 and pool format.
2267 Fix memleak in dmeventd thin plugin in device list obtaining err path.
2268 Add explicit message about unsupported pvmove for thin/thinpool volumes.
2269 Fix lvmetad error path in lvmetad_vg_lookup() for null vgname.
2270 Fix clvmd _cluster_request() return code in memory fail path.
2271 Add lvcreate/lvchange --[raid]{min|max}recoveryrate for raid LVs.
2272 Add lvchange --[raid]writemostly/writebehind support for RAID1
2273 Add lv_change_activate() for common activation code in vg/lvchange.
2274 Add lvchange --[raid]syncaction for scrubbing of RAID LVs.
2275 Improve RAID kernel status retrieval to include sync_action/mismatch_cnt.
2276 Add external origin support for lvcreate.
2277 Improve lvcreate, lvconvert and lvm man pages.
2278 Clean up format1 PV write to remove a need for an orphan VG for it to pass.
2279 Fix vgextend to not allow a PV with 0 MDAs to be used while already in a VG.
2280 Move update_pool_params() from /tools to /lib for better reuse.
2281 Give precedence to EMC power2 devices with duplicate PVIDs.
2282 Add --validate option to lvm dumpconfig to validate current config on demand.
2283 Add --ignoreadvanced and --ignoreunsupported switch to lvm dumpconfig.
2284 Add --withcomments and --withversions switch to lvm dumpconfig.
2285 Add --type {current|default|missing|new} and --atversion to lvm dumpconfig.
2286 Support automatic config validation and add 'config' section to lvm.conf.
2287 Add pvs -o pv_ba_start,pv_ba_size to report bootloader area start and size.
2288 Add --bootloaderareasize to pvcreate and vgconvert to create bootloader area.
2289 Add PV header extension: extension version, flags and bootloader areas.
2290 Initial support for lvconvert of thin external origin.
2291 Add _lv_remove_segs_using_this_lv() for removal of dependent lvs.
2292 Improve activation code for better support of stacked devices.
2293 Add _add_layer_target_to_dtree() for adding linear layer into dtree.
2294 Extend _cached_info() to accept layer string.
2295 vgimport '--force' now allows import of VGs with missing PVs.
2296 Fix PV alignment to incorporate alignment offset if the PV has zero MDAs.
2297 Add global/raid10_segtype_default to lvm.conf.
2298 Allow removal or replacement of RAID LV components that are error segments.
2299 Make 'vgreduce --removemissing' able to handle RAID LVs with missing PVs.
2300 Accept activation/raid_region_size in preference to mirror_region_size config.
2301 Fix pvs -o pv_free reporting for PVs with zero PE count.
2302 Fix missing cleanup of flags when the LV is detached from pool.
2303 Fix check for some forbidden discards conversion of thin pools.
2304 Add pool_is_active() to check for any pool related active LV.
2305 Report blank origin_size field if the LV doesn't have an origin instead of 0.
2306 Do not take a free lv name argument for lvconvert --thinpool option.
2307 Avoid flushing thin pool when just requesting transaction_id.
2308 Add internal function lv_layer() to obtain layer name for LV.
2309 Report partial and in-sync RAID attribute based on kernel status
2310 Fix blkdeactivate to handle nested mountpoints and mangled mount paths.
2311 Use LC_ALL to set locale in daemons and fsadm instead of lower priority LANG.
2312 Avoid crash-inducing race in lvmetad when VG disappears during rename.
2313 Add log/debug_classes to lvm.conf to control debug log messages.
2314 Synchronize with udev in pvscan --cache and fix dangling udev_sync cookies.
2315 Fix autoactivation to not autoactivate VG/LV on each change of the PVs used.
2316 Limit RAID device replacement to repair only if LV is not in-sync.
2317 Disallow RAID device replacement or repair on inactive LVs.
2318 Fix possible race while removing metadata from lvmetad.
2319 Fix possible deadlock when querying and updating lvmetad at the same time.
2320 Check lvmcache_info_from_pvid and recall only when needed in _pv_read.
2321 Check for memory failure of dm_config_write_node() in lvmetad.
2322 Fix socket leak on error path in lvmetad's handle_connect.
2323 Check for failing id_read_format() in _pv_populate_lvmcache.
2324 Fix memleak on error path for lvmetad's pv_found.
2325 Unlock vg mutex in error path when lvmetad tries to lock_vg.
2326 Detect key string duplication failure in config_make_nodes_v in libdaemon.
2327 Detect fid creation failure in _scan_file in format_text.
2328 Log output also to syslog when abort_on_internal_error is set.
2329 Add LV snapshot support to liblvm and python-lvm.
2330 Avoid a global lock in pvs when lvmetad is in use.
2331 Fix crash in pvscan --cache -aay triggered by non-mda PV.
2332 Allow lvconvert --stripes/stripesize only with --mirrors/--repair/--thinpool.
2333 Fix memleak in device_is_usable mirror testing function.
2334 Do not ignore -f in lvconvert --repair -y -f for mirror and raid volumes.
2335 Disallow pvmove on RAID LVs until they are addressed properly
2336 Allow empty activation/{auto_activation|read_only|}_volume_list config option.
2337 Add lvm.conf option global/thin_disabled_features.
2338 Add lvconvert support to swap thin pool metadata volume.
2339 Implement internal function detach_pool_metadata_lv().
2340 Fix lvm2app to return all property sizes in bytes (not sectors).
2341 Recognize DM_DISABLE_UDEV environment variable for a complete fallback.
2342 Do not verify udev operations if --noudevsync command option is used.
2343 Fix lvm2app and return lvseg discards property as string.
2344 Allow vgcfgrestore of lvm2 metadata with thin volumes if --force is used.
2345 Recognise Storage Class Memory (IBM S/390) devices in filter.
2346 Recognise STEC skd devices in filter.
2347 Recognise Violin Memory vtms devices in filter.
2348 Add lvm.conf thin pool allocation settings thin_pool_{chunk_size|discards|zero}.
2349 Support discards for non-power-of-2 thin pool chunks.
2350 Automatically restore MISSING PVs with no MDAs.
2351 When no --stripes argument is given when creating a RAID10 volume, default to 2 stripes.
2352 Do not allow lvconvert --splitmirrors on RAID10 logical volumes.
2353 Skip mlocking [vectors] on arm architecture.
2354 Support allocation of pool metadata with lvconvert command.
2355 Move common functionality for thin lvcreate and lvconvert to toollib.
2356 Repair a mirrored log before the mirror itself when both fail.
2357 Add python-lvm unit test case
2358 Exit pvscan --cache immediately if cluster locking used or lvmetad not used.
2359 Don't use lvmetad in lvm2-monitor.service ExecStop to avoid a systemd issue.
2360 Remove dependency on fedora-storage-init.service in lvm2 systemd units.
2361 Depend on lvm2-lvmetad.socket in lvm2-monitor.service systemd unit.
2362 Hardcode use_lvmetad=0 if cluster locking used and issue a warning msg.
2363 Avoid trying to read a mirror that has a failed device in its mirrored log.
2364 Relax ignore_suspended_devices to read from mirrors that don't have a device marked failed.
2365 Change lvs heading Copy% to Cpy%Sync and print RAID4/5/6 sync% there too.
2366 Fix clvmd support for option -d and properly use its argument.
2367 Support use of option --yes for lvchange --persistent.
2368 Fix memory leak on error path for pvcreate with invalid uuid.
2369 Implement ref-counting for parents in python lib.
2370 Add lv_is_active_locally and use instead of most local lv_info calls.
2371 Reduce some log_error messages to log_warn where we don't fail.
2372 Remove python liblvm object. systemdir can only be changed using env var now.
2373
2374 Version 2.02.98 - 15th October 2012
2375 ===================================
2376 Switch from DEBUG() to DEBUGLOG() in lvmetad as -DDEBUG is already used.
2377 Prohibit not yet supported change of thin-pool to read-only.
2378 Support creation of read-only thin volumes (lvcreate -p r).
2379 Using autoextend percent 0 for thin pool fails 'lvextend --use-policies'.
2380 Introduce blkdeactivate script to deactivate block devs with dependencies.
2381 Implement devices/global_filter to hide devices from lvmetad.
2382 Make vgscan --cache an alias for pvscan --cache.
2383 Clear lvmetad metadata/PV cache before a rescan.
2384 Fix a segmentation fault upon receiving a corrupt lvmetad response.
2385 Give inconsistent metadata warnings in pvscan --cache.
2386 Make lvremove ask before discarding data areas.
2387 Avoid overlapping locks that could cause a deadlock in lvmetad.
2388 Fix memory leaks in libdaemon and lvmetad.
2389 Optimize libdaemon logging for a fast no-output path.
2390 Only create lvmetad pidfile when running as a daemon (no -f).
2391 Warn if lvmetad is running but disabled.
2392 Warn about running lvmetad with use_lvmetad = 0 in example.conf.
2393 Update lvmetad help output (flags and their meaning).
2394 Make pvscan --cache read metadata from LVM1 PVs.
2395 Make libdaemon buffer handling asymptotically more efficient.
2396 Add lvmdump -l, to collect a state dump from lvmetad.
2397 Make --sysinit suppress lvmetad connection failure warnings.
2398 Prohibit usage of lvcreate --thinpool with --mirrors.
2399 Fix lvm2api origin reporting for thin snapshot volume.
2400 Add configure --enable-python_bindings for liblvm2app to new python subdir.
2401 Add implementation of lvm2api function lvm_percent_to_float.
2402 Allow non power of 2 thin chunk sizes if thin pool driver supports that.
2403 Allow limited metadata changes when PVs are missing via [vg|lv]change.
2404 Do not start dmeventd for lvchange --resync when monitoring is off.
2405 Remove pvscan --cache from lvm2-lvmetad init script.
2406 Remove ExecStartPost with pvscan --cache from lvm2-lvmetad.service.
2407 Report invalid percentage for property snap_percent of non-snapshot LVs.
2408 Disallow conversion of thin LVs to mirrors.
2409 Fix lvm2api data_percent reporting for thin volumes.
2410 Do not allow RAID LVs in a clustered volume group.
2411 Add --discards to lvconvert.
2412 Add --poolmetadata to lvconvert and support thin meta/data dev stacking.
2413 Support changes of permissions for thin snapshot volumes.
2414 Enhance insert_layer_for_lv() with recursive rename for _tdata LVs.
2415 Skip building dm tree for thin pool when called with origin_only flag.
2416 Add internal lv_rename_update() to rename LV without updating mda.
2417 Ensure descriptors 0,1,2 are always available, using /dev/null if necessary.
2418 Use /proc/self/fd when available for closing opened descriptors efficiently.
2419 Add missing pkg init with --enable-testing in configure.in (2.02.71).
2420 Fix inability to create, extend or convert to a large (> 1TiB) RAID LV.
2421 Split out daemon-io from daemon-shared and always build libdaemonclient.
2422 Update lvmetad communications to cope with clients using different filters.
2423 Add (p)artial attribute to lvs.
2424 Don't try to issue discards to a missing PV to avoid segfault.
2425 Clear LV_NOSYNCED flag when a RAID1 LV is converted to a linear LV.
2426 Disallow RAID1 upconvert if the LV was created with --nosync.
2427 Depend on systemd-udev-settle in units generated by activation generator.
2428 Fix vgchange -aay not to activate non-matching LVs that follow a matching LV.
2429 Fix lvchange --resync for RAID LVs which had no effect.
2430 Restructure mirror resync code.
2431 Disallow addition of RAID images until the array is in-sync.
2432 Fix RAID LV creation with '--test' so valid commands do not fail.
2433 Add lvm_lv_rename() to lvm2api.
2434 Fix setvbuf code by closing and reopening stream before changing buffer.
2435 Disable private buffering when using liblvm.
2436 When private stdin/stdout buffering is not used always use silent mode.
2437 Add log/silent to lvm.conf equivalent to -qq.
2438 Suppress non-essential stdout with -qq.
2439 Switch non-essential log_print messages to log_print_unless_silent.
2440 Use -q as short form of --quiet.
2441 Add RAID10 support (--type raid10).
2442 Reuse _reload_lv() in more lvconvert functions.
2443 Fix 32-bit device size arithmetic needing 64-bit casting throughout tree.
2444 Remove numerous unnecessary #includes and the empty util.c.
2445 Fix dereference of NULL in lvmetad error path logging.
2446 Fix buffer memory leak in lvmetad logging.
2447 Add support for lvcreate --discards.
2448 Correct the discards field in the lvs manpage (2.02.97).
2449 Use proper condition to check for discards settings unsupported by kernel.
2450 Reinstate correct default to ignore discards for thin metadata from old tools.
2451 Issue error message when -i and -m args do not match specified RAID type.
2452 Change lvmetad logging syntax from -ddd to -l {all|wire|debug}.
2453 Add new libdaemon logging infrastructure.
2454
2455 Version 2.02.97 - 7th August 2012
2456 =================================
2457 Improve documentation of allocation policies in lvm.8.
2458 Increase limit for major:minor to 4095:1048575 when using -My option.
2459 Add make install_systemd_generators.
2460 Add generator for lvm2 activation systemd units.
2461 Add lvm_config_find_bool lvm2app fn to retrieve bool value from config tree.
2462 Respect --test when using lvmetad.
2463 No longer capitalise first LV attribute char for invalid snapshots.
2464 Allow vgextend to add PVs to a VG that is missing PVs.
2465 Recognise Micron PCIe SSDs in filter and move array out to device-types.h.
2466 Fix dumpconfig <node> to print only <node> without its siblings. (2.02.89)
2467 Do not issue "Failed to handle a client connection" error if lvmetad killed.
2468 Support lvchange --discards and -Z with thin pools.
2469 Add discard LV segment field to reports.
2470 Add --discards to lvcreate --thin.
2471 Set discard and external snapshot features if thin pool target is vsn 1.1+.
2472 Count percentage of completeness upwards not downwards when merging snapshot.
2473 Skip activation when using vg/lvchange --sysinit -a ay and lvmetad is active.
2474 Fix extending RAID 4/5/6 logical volumes
2475 Fix test for PV with unknown VG in process_each_pv to ignore ignored mdas.
2476 Update man pages with --activate ay option and auto_activation_volume_list.
2477 Fix _alloc_parallel_area to avoid picking already-full areas for raid devices.
2478 Use vgchange -aay instead of vgchange -ay in clmvd init script.
2479 Add activation/auto_activation_volume_list to lvm.conf.
2480 Add --activate ay to lvcreate, lvchange, pvscan and vgchange.
2481 Add support for volume autoactivation using lvmetad.
2482 Add --activate synonym for --available arg and prefer --activate.
2483 Never issue discards when LV extents are being reconfigured, not deleted.
2484 Allow release_lv_segment_area to fail as functions it calls can fail.
2485 Open device read-only instead of read-write when obtaining readahead value.
2486 Fix lvconvert thin pool error path NULL pointer dereference.
2487 Detect create_instance() failure in pvscan_lvmetad_single().
2488 Use 64-bit calculations for reserved memory and stack.
2489 Fix missing sync of filesystem when creating thin volume snapshot.
2490
2491 Version 2.02.96 - 8th June 2012
2492 ===============================
2493 Upstream source repo now fedorahosted.org git not sources.redhat.com CVS.
2494 Fix error paths for regex filter initialization.
2495 Re-enable partial activation of non-thin LVs until it can be fixed. (2.02.90)
2496 Fix alloc cling to cling to PVs already found with contiguous policy.
2497 Fix cling policy not to behave like normal policy if no previous LV seg.
2498 Fix allocation loop not to use later policies when --alloc cling without tags.
2499 Append _TO_LVSEG to names of internal A_CONTIGUOUS and A_CLING flags.
2500 Add missing pkg init --with-systemdsystemunitdir in configure.in (2.02.92).
2501 Fix division by zero if PV with zero PE count is used during vgcfgrestore.
2502 Add initial support for thin pool lvconvert.
2503 Fix lvrename for thin volumes (regression in for_each_sub_lv). (2.02.89)
2504 Fix up-convert when mirror activation is controlled by volume_list and tags.
2505 Warn of deadlock risk when using snapshots of mirror segment type.
2506 Fix bug in cmirror that caused incorrect status info to print on some nodes.
2507 Remove statement that snapshots cannot be tagged from lvm man page.
2508 Disallow changing cluster attribute of VG while RAID LVs are active.
2509 Fix lvconvert error message for non-mergeable volumes.
2510 Allow subset of failed devices to be replaced in RAID LVs.
2511 Prevent resume from creating error devices that already exist from suspend.
2512 Improve clmvd singlenode locking for better testing.
2513 Update and correct lvs man page with supported column names.
2514 Handle replacement of an active device that goes missing with an error device.
2515 Change change raid1 segtype always to request a flush when suspending.
2516 Add udev info and context to lvmdump.
2517 Add lvmetad man page.
2518 Fix RAID device replacement code so that it works under snapshot.
2519 Fix inability to split RAID1 image while specifying a particular PV.
2520 Update man pages to give them all the same look&feel.
2521 Fix lvresize of thin pool for striped devices.
2522 For lvresize round upward when specifying number of extents.
2523 For lvcreate with %FREE support rounding downward stripe alignment.
2524 Change message severity to log_very_verbose for missing dev info in udev db.
2525 Fix lvconvert when specifying removal of a RAID device other than last one.
2526 Fix ability to handle failures in mirrored log in dmeventd plugin. (2.02.89)
2527 Fix unlocking volume group in vgreduce in error path.
2528 Cope when VG name is part of the supplied name in lvconvert --splitmirrors -n.
2529 Fix exclusive lvchange running from other node. (2.02.89)
2530 Add 'vgscan --cache' functionality for consistency with 'pvscan --cache'.
2531 Keep exclusive activation in pvmove if LV is already active.
2532 Disallow exclusive pvmove if some affected LVs are not exclusively activated.
2533 Remove unused and wrongly set cluster VG flag from clvmd lock query command.
2534 Fix pvmove for exclusively activated LV pvmove in clustered VG. (2.02.86)
2535 Always free hash table on update_pvid_to_vgid() in lvmetad.
2536 Update and fix monitoring of thin pool devices.
2537 Check hash insert success in lock_vg in clvmd.
2538 Check for buffer overwrite in get_cluster_type() in clvmd.
2539 Fix global/detect_internal_vg_cache_corruption config check.
2540 Update lcov Makefile target to support all dmeventd plugins.
2541 Fix initialization of thin monitoring. (2.02.92)
2542 Cope with improperly formatted device numbers in /proc/devices. (2.02.91)
2543 Exit if LISTEN_PID environment variable incorrect in lvmetad systemd handover.
2544 Use pvscan --cache instead of vgscan in lvmetad scripts.
2545 Fix fsadm propagation of -e option.
2546 Fix fsadm parsing of /proc/mounts files (don't check for substrings).
2547 Fix fsadm usage of arguments with space.
2548 Fix arg_int_value alongside ARG_GROUPABLE --major/--minor for lvcreate/change.
2549 Fix name conflicts that prevent down-converting RAID1 when specifying a device
2550 Improve thin_check option passing and use configured path.
2551 Add --with-thin-check configure option for path to thin_check.
2552 Fix error message when pvmove LV activation fails with name already in use.
2553 Better structure layout for device_info in dev_subsystem_name().
2554 Change message severity for creation of VG over uninitialized devices.
2555 Fix error path for failed toolcontext creation.
2556 Detect lvm binary path in lvmetad udev rules.
2557 Don't unlink socket on lvmetad shutdown if instantiated from systemd.
2558 Restart lvmetad automatically from systemd if it exits from uncaught signal.
2559 Fix warn msg for thin pool chunk size and update man for chunksize. (2.02.89)
2560
2561 Version 2.02.95 - 6th March 2012
2562 ================================
2563 If unspecified, adjust thin pool metadata and chunk size to fit into 128MB.
2564 Print just warning on thin pool check callback path for failing check.
2565 Always use 64bit arithmetic with VG extent_size expression.
2566 Validate udev structures in _insert_udev_dir().
2567 Take repeatable --major --minor with pvscan --cache instead of major:minor.
2568 Scan all devices for lvmetad if 'pvscan --cache' used without device list.
2569 Populate lvmcache from lvmetad before displaying PVs in pvscan. (2.02.94)
2570 Suppress incorrect -n pvscan warning now always displayed. (2.02.94)
2571
2572 Version 2.02.94 - 3rd March 2012
2573 ================================
2574 Add support to execute thin_check with each de/active of thin pool.
2575 Fix automatic estimation of metadata device size for thin pool.
2576 Test for alloc fail from _alloc_pv_segment() in _extend_pv().
2577 Check for alloc fail from get_segtype_from_string() in _lvcreate_params().
2578 Add _rimage as reserved suffix to lvm.8 man page.
2579 Improve error logging from mpath filter.
2580 Check for allocation failure in hold_lock() in clvmd.
2581 Use set_lv() (wipe initial 4KiB) for non zeroed thin volume.
2582 Allow cluster mirrors to handle the absence of the checkpoint lib (libSaCkpt).
2583 Revert free of allocated segtype in init segment error path (2.02.89).
2584 Test dm_hash_insert() failures in filter-persistent.c and fid_add_mda().
2585 Ensure clvmd message is always NUL-terminated after read.
2586 Add some close() and dev_close() error path backtraces.
2587 Set stdin/stdout/stderr to /dev/null for polldaemon.
2588 Limit the max size of processed clvmd message to ~8KB.
2589 Do not send uninitialized bytes in cluster error reply messages.
2590 Use unsigned type for bitmask instead of enum type for lvm properties.
2591 Add missing cleanup of excl_uuid hash on some exit paths of clvmd.
2592 Check for existence of vg_name in _format1/_pool_vg_read().
2593 Fix missing break in _format_pvsegs (2.02.92).
2594 Test seg pointer for non-null it in raid_target_percent error path.
2595 Check for errors in _init_tags() during config loading.
2596 Always check result of _set_vg_name() in lvcreate.
2597 Drop unused call to uname() during clvmd initialization.
2598 Test allocation result in sysfs filter creation.
2599 Limit sscanf parameters with buffer size in clvmd get_initial_state().
2600 Use const lv pointer for lv_is_active...() functions.
2601 Use same signed numbers in _mirrored_transient_status().
2602 Support 'pvscan --cache' to update lvmetad state from specific PVs.
2603 Provide new metadata daemon for testing with configure --enable-lvmetad .
2604 Integrate client-side lvmetad into build.
2605
2606 Version 2.02.93 - 23rd February 2012
2607 ====================================
2608 Require number of stripes to be greater than parity devices in higher RAID.
2609 Fix allocation code to allow replacement of single RAID 4/5/6 device.
2610 Check all tags and LV names are in a valid form in vg_validate.
2611 Add tmpfiles.d style configuration for lvm2 lock and run directory.
2612 Add configure --with-tmpfilesdir for dir holding volatile-file configuration.
2613 Allow 'lvconvert --repair' to operate on RAID 4/5/6.
2614 Fix build_parallel_areas_from_lv to account correctly for raid parity devices.
2615 Print message when faulty raid devices have been replaced.
2616
2617 Version 2.02.92 - 20th February 2012
2618 ====================================
2619 Read dmeventd monitoring config settings for every lvm command.
2620 For thin devices, initialize monitoring only for thin pools not thin volumes.
2621 Make conversion from a synced 'mirror' to 'raid1' not cause a full resync.
2622 Properly test buffer for unit check in units_to_bytes().
2623 Add configure --with-systemdsystemunitdir.
2624 Add check for allocation failure in _build_matcher().
2625 Add check for rimage name allocation failure in _raid_add_images().
2626 Add check for mda_copy failure in _text_pv_setup().
2627 Add check for _mirrored_init_target failure.
2628 Add free_orphan_vg.
2629 Skip pv/vg_set_fid processing if the fid is same.
2630 Check for foreach loop errors in _vg_read_orphans() (2.02.91).
2631 Clean error paths for format instance creation (2.02.91).
2632 Release vg in error path of _format1_vg_read() instead of just free().
2633 Report allocation failure for allocation of PV structure.
2634 Add clvmd init dependency on dlm service when running with new corosync.
2635
2636 Version 2.02.91 - 12th February 2012
2637 ====================================
2638 Remove PV-based format instances (which are no longer needed).
2639 Link all orphan PVs directly to a per-format global orphan VG.
2640 Refactor lvmcache around an internal API.
2641 Stop processing lvextend if trying to extend a mirror that is being recovered.
2642 Add pool_below_threshold() function to check thin pool percent status.
2643 Fix test for snap percent for failing merge when removing LV.
2644 Switch int to void return for str_list_del().
2645 Fix error path handling in _build_desc().
2646 Add range test for device number in _scan_proc_dev().
2647 Use signed long for sysconf() call in cmirrord.
2648 Do not write in front of log buffer in print_log().
2649 Add boundary test for number of mirror devs and logs.
2650 Check that whole locking_dir fits _lock_dir buffer in init_file_locking().
2651 Use list functions for label_exit().
2652 Ensure strncpy() function always ends with '\0'.
2653 Set status in _fsadm_cmd() for error path.
2654 Add missing deps for lvm2api for rebuild when lvm-internal is changed.
2655 Fix resource leaks for failing allocation of formats (lvm1/2,pool).
2656 Release allocated resources in error path for composite_filter_create().
2657 Do not use lstat() results when failed in _rm_link().
2658 Remove a "waiting for another thread" log message from dmeventd plugins.
2659
2660 Version 2.02.90 - 1st February 2012
2661 ===================================
2662 sync_local_dev_names before (re)activating mirror log for initialization.
2663 Disable partial activation for thin LVs and LVs with all missing segments.
2664 Do not print warning for pv_min_size between 512KB and 2MB.
2665 Clean up systemd unit ordering and requirements.
2666 Fix lcov reports when srcdir != builddir.
2667 Allow ALLOC_NORMAL to track reserved extents for log and data on same PV.
2668 Automatically detect whether corosync clvmd needs to use confdb or cmap.
2669 Fix data% report for thin volume used as origin for non-thin snapshot.
2670
2671 Version 2.02.89 - 26th January 2012
2672 ===================================
2673 Add missing check for uname result in clvmd TEST processing.
2674 Fix memleak in target_version() error path (unsupported LIST_VERSIONS).
2675 Limit data_alignment and data_alignment_offset to 32bit values.
2676 Check for correctness of uint64 dev_size value in format_text.
2677 Thin pools have segment fields thin_count, zero, transaction_id.
2678 Add data_percent and metadata_percent for thin pools to lvs -v.
2679 Add data_lv & metadata_lv fields to lvs for thin pools.
2680 Add data_percent & pool_lv fields to lvs for thin volumes.
2681 Rename origin_only param to use_layer for lv_info and use with thin LVs.
2682 Add lv_thin_pool_transaction_id to read the transaction_id value.
2683 Use {suspend,resume}_origin_only when up-converting RAID, as mirrors do.
2684 Always add RAID metadata LVs to deptree (even when origin_only is set).
2685 Change exclusive LV activation logic to try local node before remote nodes.
2686 Add CLVMD_FLAG_REMOTE to skip processing on local node.
2687 Prompt if request is made to remove a snapshot whose "Merge failed".
2688 Allow removal of an invalid snapshot that was to be merged on next activation.
2689 Don't allow a user to merge an invalid snapshot.
2690 Use m and M lv_attr to indicate that a snapshot merge failed in lvs.
2691 Differentiate between snapshot status of "Invalid" and "Merge failed".
2692 Report snapshot usage percent of origin volume when a snapshot is merging.
2693 Require global/lvdisplay_shows_full_device_path for (bogus) lvm1-style paths.
2694 Do not report linear segtype for non-striped targets.
2695 Record creation host & time for each LV and report as lv_time & lv_host.
2696 Make error message hit when preallocated memlock memory exceeded clearer.
2697 Use R lv_attr to indicate read-only activation of non-read-only device in lvs.
2698 Show read-only activation override in lvdisplay & add 4 to perms in -c.
2699 Add activation/read_only_volume_list to override LV permission in metadata.
2700 Give priority to emcpower devices with duplicate PVIDs.
2701 Add check for error in _adjust_policy_params() (lvextend --use-policies).
2702 Round specified percentages upwards (%LV, %VG...) when resizing LVs.
2703 Use dmeventd_lvm2_command in dmeventd plugins snapshot, raid, mirror.
2704 Add helper dmeventd_lvm2_command() to libdevmapper-event-lvm2 library.
2705 Update documentation for dmeventd.
2706 Remove unnecessary stat before opening device in dev_open_flags.
2707 Reduce number of lstat calls when selecting device alias.
2708 Add _dev_init to initialize common struct device members.
2709 Always zalloc struct device during initialization.
2710 Fix missing thread list manipulation protection in dmeventd.
2711 Do not dereference lv pointer in _percent_run() function before NULL check.
2712 Allow empty strings for description and creation_host config fields.
2713 Issue deprecation warning when removing last lvm1-format snapshot.
2714 Reinstate support for snapshot removal with lvm1 format. (2.02.86)
2715 Add policy-based automated repair of RAID logical volumes.
2716 Don't allow two images to be split and tracked from a RAID LV at one time.
2717 Don't allow size change of RAID LV that is tracking changes for a split image.
2718 Don't allow size change of RAID sub-LVs independently.
2719 Don't allow name change of RAID LV that is tracking changes for a split image.
2720 Do not allow users to change the name of RAID sub-LVs independently.
2721 Do not allow users to change permissions on RAID sub-LVs.
2722 Allow lvconvert to replace specified devices in a RAID array.
2723 Add activation/use_linear_target enabled by default.
2724 Use gcc warning options only with .c to .o compilation.
2725 Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.
2726 Replace the unit testing framework with CUnit (--enable-testing).
2727 Fix dmeventd snapshot monitoring when multiple extensions were involved.
2728 Don't ignore configure --mandir and --infodir.
2729 Drop pool memory allocated within lv_has_target_type().
2730 Reduce stack allocation of some PATH_MAX sized char buffers.
2731 Unlock memory before writing metadata.
2732 Add query before removing snapshots when inactive snapshot origin is removed.
2733 Allow changing availability state of snapshots.
2734 Skip non-virtual snapshots for availability change for lvchange with vg name.
2735 Skip adjusting mirror region size unless mirror or raid.
2736 Reorder prompt conditions for removal of active volumes.
2737 Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag.(2.02.86)
2738 Fix --enable-static_link unless using --enable-dmeventd / --enable-udev_sync.
2739 Move gentoo MAKEDEV to /sbin in lvm2create_initrd.
2740 Add filter to avoid scan of device if it is part of active multipath.
2741 Add missing default $LVM_VG_NAME usage for snapshots.
2742 Avoid extent_count overflow with lvextend.
2743 Add missing lvrename mirrored log recursion in for_each_sub_lv.
2744 Improve lv_extend stack reporting.
2745 Increase virtual segment size instead of creating multiple segment list.
2746 Add last_seg(lv) internal function.
2747 Support empty string for log/prefix.
2748 Disallow mirrored logs for cluster mirrors. (2.02.72)
2749 Don't print char type[8] as a plain string in pvck PV type.
2750 Use vg memory pool implicitly for vg read.
2751 Always use vg memory pool for allocated lv segment.
2752 Remove extra 4kB buffer allocated on stack in print_log().
2753 Make move_lv_segment non-static function and use dm_list function.
2754 Pass exclusive LV locks to all nodes in the cluster.
2755 Improve lvcreate chunksize man page description.
2756 Improve man page style for lvcreate & lvs.
2757 Avoid recursive calls to dmeventd in its LVM plugins.
2758 Log dev name now returned to kernel for registering during cmirror CTR.
2759 Fix lv_info open_count test for disabled verify_udev_operations. (2.02.86)
2760 Simplify code for lvm worker thread in clvmd.
2761 Use pthread_barrier to synchronize clvmd threads at startup.
2762 Limit clvmd's thread size to 128KiB and ignore activation/reserved_stack.
2763 Reduce default preallocated stack size to 64KiB.
2764 Add check for access through NULL pointer when refresh_filter() fails.
2765 Use pthread condition for SINGLENODE lock implementation.
2766 Improve backtrace reporting for some dev_manager_ functions.
2767 Change message severity to log_warn when symlink creation fails.
2768 Add ability to convert mirror segtype to RAID1 segtype.
2769 Add ability to convert from linear to RAID1.
2770 Add ability to extend mirrors with '--nosync' option.
2771 Fix splitmirror LV names to maintain consistent state in a cluster.
2772 Apply appropriate udev flags when suspending/resuming mirror sub-LVs.
2773 Fix vgsplit to handle mirrored logs.
2774 Clarify multi-name device filter pattern matching explanation in lvm.conf.
2775 Introduce revert_lv for better pvmove cleanup.
2776 Replace incomplete pvmove activation failure recovery code with a message.
2777 Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely.
2778 Change suspend_lvs to call vg_revert internally.
2779 Change vg_revert to void and remove superfluous calls after failed vg_commit.
2780 Use execvp for CLVMD restart to preserve environment settings.
2781 Restart CLVMD with same cluster manager.
2782 Fix log_error() usage in raid and unknown segtype initialization.
2783 Improve testing Makefile.
2784 Fix install_ocf make target when srcdir != builddir. (2.02.80)
2785 Support env vars LVM_CLVMD_BINARY and LVM_BINARY in clvmd.
2786 Fix restart of clvmd (preserve exclusive locks). (2.02.64)
2787 Add 'Volume Type' lv_attr characters for RAID and RAID_IMAGE.
2788 Add activation/retry_deactivation to lvm.conf to retry deactivation of an LV.
2789 Replace open_count check with holders/mounted_fs check on lvremove path.
2790 Disallow the creation of mirrors (mirror or raid1 segtype) with only one leg.
2791 Cleanup restart clvmd code (no memory allocation, debug print passed args).
2792 Add all exclusive locks to clvmd restart option args.
2793 Always send the whole clvmd packet header in refresh commands.
2794 Add missing error checks for some system calls in cmirrord.
2795 Add missing log_error() to lvresize command when fsadm tool fails.
2796 Add support for DM_DEV_DIR device path into fsadm script.
2797 Support different PATH setting for fsadm script testing.
2798 Surround all executed commands with quotes in fsadm script.
2799 Fix missing '$' in test for content of "$LVM" in fsadm script.
2800 Move debug message in exec_cmd after sync_local_dev_names.
2801 Fix clvmd processing of invalid request on local socket.
2802 Fix command line option decoding.
2803 Reset LV status when unlinking LV from VG.
2804 Fix overly-strict extent-count divisibility requirements for striped mirrors.
2805 Fix rounding direction in lvresize when reducing volume size.
2806 Fix possible overflow of size if %FREE or %VG is used.
2807 Fix vgchange activation of snapshot with virtual origin.
2808 Activate virtual snapshot origin exclusively (only on local node in cluster).
2809 Fix lv_mirror_count to handle mirrored stripes properly.
2810 Fix failure to down-convert a mirror to linear due to udev "dev open" conflict
2811 Fix mirrored log creation when PE size is small: use log_size >= region_size.
2812 Fix log size calculation when only a log is being added to a mirror.
2813 Add 7th lv_attr char to show the related kernel target.
2814 Terminate pv_attr field correctly. (2.02.86)
2815 Fix 'not not' typo in pvcreate man page.
2816 Improve man page style for fsadm, lvreduce, lvremove, lvrename & lvresize.
2817 Support break for vgchange and vgrefresh operation.
2818 Switch int to unsigned type for pvmetadatacopies for pv_create().
2819 Replace :space: with [\t ] for awk in vgimportclone (not widely supported).
2820 Begin using 64-bit status field flags.
2821 Detect sscanf recovering_region input error in cmirrord pull_state().
2822 Fix error path bitmap leak in cmirrord import_checkpoint().
2823 Log unlink() error in cmirrord remove_lockfile().
2824 Remove incorrect requirement for -j or -m from lvchange error message.
2825 Fix unsafe table load when splitting off smaller mirror from a larger one.
2826 Use size_t return type for text_vg_export_raw() and export_vg_to_buffer().
2827 Add configure --enable-lvmetad for building the (experimental) LVMetaD.
2828 Fix resource leak when strdup fails in _get_device_status() (2.02.85).
2829 Directly allocate buffer memory in a pvck scan instead of using a mempool.
2830 Add configure --with-thin for segtypes "thin" and "thin_pool".
2831 Fix raid shared lib segtype registration (2.02.87).
2832
2833 Version 2.02.88 - 19th August 2011
2834 ==================================
2835 Remove incorrect 'Breaking' error message from allocation code. (2.02.87)
2836 Add lvconvert --merge support for raid1 devices split with --trackchanges.
2837 Support lvconvert of -m1 raid1 devices to a higher number.
2838 Add --trackchanges support to lvconvert --splitmirrors option for raid1.
2839 Support splitting off a single raid1 rimage in lvconvert --splitmirrors.
2840 Use sync_local_dev_names when reducing number of raid rimages in lvconvert.
2841 Add -V as short form of --virtualsize in lvcreate.
2842 Fix make clean not to remove Makefile. (2.02.87)
2843
2844 Version 2.02.87 - 12th August 2011
2845 ==================================
2846 Fix make distclean to remove stray dmeventd and exported symbols files.
2847 Add global/detect_internal_vg_cache_corruption to lvm.conf.
2848 Use memory pool locking to check for corruption of internal VG structs.
2849 Cache and share generated VG structs.
2850 Fix possible format instance memory leaks and premature releases in _vg_read.
2851 Suppress locking error messages in monitoring init scripts.
2852 If pipe in clvmd fails return busy instead of using uninitialized descriptors.
2853 Add ability to reduce the number of mirrors in raid1 arrays to lvconvert.
2854 Add dmeventd plugin for raid.
2855 Replace free_vg with release_vg and move it to vg.c.
2856 Remove INCONSISTENT_VG flag from the code.
2857 Remove lock from cache in _lock_vol even if unlock fails.
2858 Initialize clvmd locks before lvm context to avoid open descriptor leaks.
2859 Remove obsolete gulm clvmd cluster locking support.
2860 Suppress low-level locking errors and warnings while using --sysinit.
2861 Remove unused inconsistent_seqno variable in _vg_read().
2862 Remove meaningless const type qualifiers on cast type.
2863 Add test for fcntl error in singlenode client code.
2864 Remove --force option from lvrename manpage.
2865 Add global/mirror_segtype_default to pick md raid or dm mirror as default.
2866 Add configure --with-raid for new segtype 'raid' for MD RAID 1/4/5/6 support.
2867 Change DEFAULT_UDEV_SYNC to 1 so udev_sync is used if there is no config file.
2868 Add systemd unit file to provide lvm2 monitoring.
2869 Compare file size (as well as timestamp) to detect changed config file.
2870
2871 Version 2.02.86 - 8th July 2011
2872 ===============================
2873 Remove unnecessary warning in pvcreate for MD linear devices.
2874 Move snapshot removal activation logic into lib/activate.
2875 Cope with a PV only discovered missing when creating deptree.
2876 Abort operation if dm_tree_node_add_target_area fails.
2877 Add activation/checks to lvm.conf to perform additional ioctl validation.
2878 Always preload on suspend, even if no metadata changed (lvchange --refresh).
2879 When suspending, automatically preload newly-visible existing LVs.
2880 Teardown any stray devices with $COMMON_PREFIX during test runs.
2881 Reinstate correct permissions when creating mirrors. [2.02.85]
2882 Append 'm' attribute to pv_attr for missing PVs.
2883 Annotate CLVMD_CMD_SYNC_NAMES in decode_cmd.
2884 Remove enforcement of udev verification when using non-standard /dev location.
2885 Keep an exclusive mirror non-clustered if reloaded e.g. during conversion.
2886 Reject allocation if number of extents is not divisible by area count.
2887 Fix cluster mirror creation to work with new mirror allocation algorithm.
2888 Ignore activation/verify_udev_operations if dm kernel driver vsn < 4.18.
2889 Add activation/verify_udev_operations to lvm.conf, disabled by default.
2890 Call vg_mark_partial_lvs() before VG structure is returned from the cache.
2891 Remove unused internal flag ACTIVATE_EXCL from the code.
2892 Remove useless test of ACTIVATE_EXCL in lv_add_mirrors() clustered code path.
2893 Add lv_activate_opts structure for activation (replacing activation flags).
2894 Ignore inconsistent pre-commit metadata on MISSING_PV devs while activating.
2895 Add proper udev library context initialization and finalization to liblvm.
2896 Fix last snapshot removal to avoid table reload while a device is suspended.
2897 Use dm_get_suspended_counter in replacement critical_section logic.
2898 Downgrade critical_section errors to debug level until it is moved to libdm.
2899 Fix ignored background polling default in vgchange -ay.
2900 Fix pvmove activation sequences to avoid trapped I/O with multiple LVs.
2901 Annotate critical section debug messages.
2902 Fix reduction of mirrors with striped segments to always align to stripe size.
2903 Validate mirror segments size.
2904 Include lvmetad development code in tree.
2905 Fix extent rounding for striped volumes never to reduce more than requested.
2906 Fix create_temp_name to replace any '/' found in the hostname with '?'.
2907 Always use append to file in lvmdump. selinux policy may ban file truncation.
2908 Propagate test mode to clvmd to skip activation and changes to held locks.
2909 Defer writing PV labels until vg_write.
2910 Store label_sector only in struct physical_volume.
2911 Permit --available with lvcreate so non-snapshot LVs need not be activated.
2912 Report sector containing label in verbose message.
2913 Clarify error message when unable to convert an LV into a snapshot of an LV.
2914 Add and use dev_open_readonly and variations.
2915 Do not log a superfluous stack message when the lv is properly processed.
2916 Do not issue an error message when unable to remove .cache on read-only fs.
2917 Avoid memlock size mismatch by preallocating stdio line buffers.
2918 Rewrite vgreduce --removemissing --force to share lvconvert code.
2919 Reorganize lvconvert --repair code to allow reuse.
2920
2921 Version 2.02.85 - 29th April 2011
2922 =================================
2923 Add new obtain_device_list_from_udev setting to lvm.conf.
2924 Obtain device list from udev by default if LVM2 is compiled with udev support.
2925 Add test for vgimportclone and querying of vgnames with duplicate pvs.
2926 Avoid use of released memory when duplicate PV is found.
2927 Add "devices/issue_discards" to lvm.conf.
2928 Issue discards on lvremove and lvreduce etc. if enabled and supported.
2929 Add seg_pe_ranges and devices fields to liblvm.
2930 Fix incorrect tests for dm_snprintf() failure.
2931 Fix some unmatching sign comparison gcc warnings in the code.
2932 Support lv_extend() on empty LVs.
2933 Avoid regenerating cache content when exported VG buffer is unchanged.
2934 Extend the set of memory regions that are not locked to memory.
2935 Workaround some problems when compiled for valgrind memcheck.
2936 Support controlled quit of the lvm_thread_fn function in clvmd.
2937 Fix reading of unallocated memory in lvm1 format import function.
2938 Replace several strncmp() calls with id_equal().
2939 Fix lvmcache_info transfer to orphan_vginfo in _lvmcache_update_vgname().
2940 Fix -Wold-style-definition gcc warnings.
2941 Rename MIRROR_NOTSYNCED to LV_NOTSYNCED.
2942 Fix _move_lv_segments to handle empty LVs.
2943 Fixes for lvconvert (including --repair) of temporary mirror stacks.
2944 Avoid potential loop when removing mirror images.
2945 Fix mirror removal always to take account of preferences as to which.
2946 Fix MIRRORED flag usage.
2947 Remove error messages issued by device_is_usable when run as non-root.
2948 Add missing \0 for grown debug object in _bitset_with_random_bits().
2949 Fix allocation of system_id buffer in volume_group structure.
2950 Fix readlink usage inside get_primary_dev().
2951 Use format instance mempool where possible and adequate.
2952 Call destroy_instance for any PVs found in VG structure during vg_free call.
2953 Add new free_pv_fid fn and use it throughout to free all attached fids.
2954 Use only vg_set_fid and new pv_set_fid fn to assign the format instance.
2955 Make create_text_context fn static and move it inside create_instance fn.
2956 Add mem and ref_count fields to struct format_instance for own mempool use.
2957 Use new alloc_fid fn for common format instance initialization.
2958 Optimise _get_token() and _eat_space().
2959 Add _lv_postorder_vg() to improve efficiency for all LVs in VG.
2960 Add gdbinit script for debugging.
2961 Use hash tables to speedup string search in vg_validate().
2962 Refactor allocation of VG structure adding alloc_vg().
2963 Avoid possible endless loop in _free_vginfo when 4 or more VGs have same name.
2964 Use empty string instead of /dev// for LV path when there's no VG.
2965 Don't allocate unused VG mempool in _pvsegs_sub_single.
2966 Do not send uninitialized bytes in local clvmd messages.
2967 Support --help option for clvmd and return error for unknown option.
2968 Avoid reading freed memory when printing LV segment type.
2969 Fix syslog initialization in clvmd to respect lvm.conf setting.
2970 Fix possible overflow in maximum stripe size and physical extent size.
2971 Improve pvremove error message when PV belongs to a VG.
2972 Extend normal policy to allow mirror logs on same PVs as images if necessary.
2973 Improve cling policy to recognise PVs already used during the transaction.
2974 Improve normal allocation algorithm to include clinging to existing areas.
2975 Add allocation/maximise_cling & mirror_logs_require_separate_pvs to lvm.conf.
2976 Adapt metadata balancing code to work with metadata handling changes.
2977 Add old_id field to physical_volume and fix pvchange -u for recent changes.
2978 Allow pvresize on a PV with two metadata areas.
2979 Change pvcreate to use new metadata handling interface.
2980 Restructure existing pv_setup and pv_write and add pv_initialise.
2981 Add internal interface to support adding and removing metadata areas.
2982 Allow internal indexing of metadata areas (PV id + mda order).
2983 Generalise internal format_instance infrastructure for PV and VG use.
2984 Handle decimal digits with --units instead of ignoring them silently.
2985 Fix remaining warnings and compile with -Wpointer-arith.
2986 Fix gcc warnings for unused variables and const casts.
2987 Add stack backtraces for error paths in process_each_lv().
2988 Temporarily suppress error from calling yes_no_prompt while locks are held.
2989 Replace void* with char* arithmetic in _text_write, _text_read & send_message.
2990 Fix compilation without DEVMAPPER_SUPPORT.
2991 Remove fs_unlock() from lv_suspend error path.
2992 Allow memory to stay locked between leaving and re-entering critical sections.
2993 Rename memlock to critical_section throughout.
2994 Make pv_min_size configurable and increase to 2048KB to exclude floppy drives.
2995 Add find_config_tree_int64 to read 64-bit ints from config.
2996 Ensure resuming exclusive cluster mirror continues to use local mirror target.
2997 Clear temporary postorder LV status flags to allow reuse with same LV struct.
2998 Remove invalid snapshot umount mesg which floods syslog from dmeventd plugin.
2999 Add extended examples to pvmove man page.
3000 Support LVM_TEST_DEVDIR env var for private /dev during testing.
3001
3002 Version 2.02.84 - 9th February 2011
3003 ===================================
3004 Fix CRC32 calculation on big endian CPU (2.02.75).
3005
3006 Version 2.02.83 - 4th February 2011
3007 ===================================
3008 Allow exclusive activation of snapshots in a cluster.
3009 Leave EX lock unchanged when suspending a device in clvmd.
3010 Use sync_dev_names in unlock_vg macro for cluster-wide dev name sync.
3011 Fix fs operation stack handling when multiple operations on same device.
3012 Increase hash table size to 1024 lv names and 64 pv uuids.
3013 Remove fs_unlock() from lv_resume path.
3014 Fix wipe size when setting up mda.
3015 Remove unneeded checks for open_count in lv_info().
3016 Synchronize with udev before checking open_count in lv_info().
3017 Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested.
3018 Add "dmsetup ls --tree" output to lvmdump.
3019 Fix udev synchronization with no-locking --sysinit (2.02.80).
3020 Improve man page style consistency for pvcreate, pvremove, pvresize, pvscan.
3021 Avoid rebuilding of uuid validation table.
3022 Improve lvcreate error text from insufficient "extents" to "free space".
3023 Always use O_DIRECT when opening block devices to check for partitioning.
3024
3025 Version 2.02.82 - 24th January 2011
3026 ===================================
3027 Bring lvscan man page up-to-date.
3028 Fix lvchange --test to exit cleanly.
3029 Add change_tag to toollib.
3030 Allow multiple pvchange command line options to be specified together.
3031 Do not fail pvmove polling if another process cleaned up first.
3032 Avoid clvmd incrementing dlm lockspace reference count more than once.
3033 Add -f (don't fork) option to clvmd and fix clvmd -d<num> description.
3034
3035 Version 2.02.81 - 17th January 2011
3036 ===================================
3037 Do not scan devices in dev_reset_error_count().
3038 Skip unnecessary LOCK_NULL unlock call during volume deactivation.
3039 Skip fs_unlock when calling exec_cmd within activation code (for modprobe).
3040 Extend exec_cmd params to specify when device sync (fs_unlock) is needed.
3041 Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80)
3042 Introduce sync_local_dev_names and CLVMD_CMD_SYNC_NAMES to issue fs_unlock.
3043 Accept fusion fio in device type filter.
3044 Add ability to convert mirror log type from disk to mirrored.
3045
3046 Version 2.02.80 - 10th January 2011
3047 ===================================
3048 Use same dm cookie for consecutive dm ops in same VG to reduce udev waits.
3049 Speed up command processing by caching resolved config tree.
3050 Pass config_tree to renamed function import_vg_from_config_tree().
3051 Detect NULL handle in get_property().
3052 Fix superfluous /usr in ocf_scriptdir installation path.
3053 Add --with-ocfdir configurable option.
3054 Add aclocal.m4 (for pkgconfig).
3055 Fix memory leak in persistent filter creation error path.
3056 Check for errors setting up dm_task struct in _setup_task().
3057 Fail polldaemon creation when lvmcache_init() fails.
3058 Return PERCENT_INVALID for errors in _copy_percent() and _snap_percent().
3059 Remove some unused variables.
3060 Improve general lvconvert man page description.
3061 Return 0 from cmirrord initscript 'start' if daemon is already running.
3062 Fix wrongly paired unlocking of VG_GLOBAL in pvchange. (2.02.66)
3063 Add backtraces for backup and backup_remove fail paths.
3064 Detect errors from dm_task_set calls in _get_device_info (dmeventd).
3065 Add backtraces for archive and backup_locally in check_current_backup().
3066 Fix memory leak in debug mode of restart_clvmd() error path.
3067 Log error message for pthread_join() failure in clvmd.
3068
3069 Version 2.02.79 - 20th December 2010
3070 ====================================
3071 Remove some unused variables.
3072 Add missing test for reallocation error in _find_parallel_space().
3073 Add checks for allocation errors in config node cloning.
3074 Fix error path if regex engine cannot be created in _build_matcher().
3075 Use char* arithmetic in target_version(), _process_all() & _targets().
3076 Fixing const cast gcc warnings in the code.
3077 Check read() and close() results in _get_cmdline().
3078 Add const for struct config_node usage.
3079 Fix NULL pointer check in error path in clvmd do_command(). (2.02.78)
3080 Fix device.c #include to ensure 64-bit fopen64 use. (2.02.51)
3081 Add copy_percent and snap_percent to liblvm.
3082 Enhance vg_validate to ensure integrity of LV and PV structs referenced.
3083 Enhance vg_validate to check composition of pvmove LVs.
3084 Create /var/run/lvm directory during clvmd initialization if missing.
3085 Use new dm_prepare_selinux_context instead of dm_set_selinux_context.
3086 Avoid revalidating the label cache immediately after scanning.
3087 Support scanning for a single VG in independent mdas.
3088 Don't skip full scan when independent mdas are present even if memlock is set.
3089 Set cmd->independent_metadata_areas if metadata/dirs or disk_areas in use.
3090 Cope better with an undefined target_percent operation in _percent_run.
3091 Avoid writing to freed memory in vg_release and rename to free_vg. (2.02.78)
3092
3093 Version 2.02.78 - 6th December 2010
3094 ===================================
3095 Abort if segment tag allocation fails in pool format _add_stripe_seg.
3096 Abort in _mirrored_transient_status if referenced log/image LV is not active.
3097 Add backtraces for dev_set() and dev_close_immediate() errors in set_lv().
3098 Log any unlink() error in clvmd remove_lockfile().
3099 Log any pipe write() or close() errors in clvmd child_init_signal().
3100 Detect if orphan vginfo was lost from cache before _lvmcache_update_vgname().
3101 Do a full rescan if some device is missing in lvm1 format read_pvs_in_vg.
3102 Add missing check that dm_pool_create succeeded in write_config_node().
3103 Use dm_snprintf in clvmd-command.c to ensure an overlong buffer is truncated.
3104 Don't write to buffer if its reallocation failed in clvmd do_command().
3105 Switch from float to fixed point percentage handling.
3106 Avoid misleading missing PV warnings in vgextend --restoremissing.
3107 Fix memory leak when VG allocation policy in metadata is invalid.
3108 Ignore unrecognised allocation policy found in metadata instead of aborting.
3109 Factor out tag printing into _out_tags and avoid leaking string buffer.
3110 Remove some unused variables & assignments.
3111 Add missing vg_release calls in _vg_read_by_vgid.
3112 Fix debug logging of derived flag LCK_CACHE in clvmd.
3113 Fix test for no system_dir in _init_backup().
3114 Disallow lvconvert ops that both allocate & free supplied PEs in a single cmd.
3115 Fix liblvm seg_size to give bytes not sectors.
3116 Add functions to look up LV/PV by name/uuid to liblvm.
3117 Free cmd_context if fallback to LVM1 fails in lvm2_main().
3118 Free device name buffer in dmsetup parse_loop_device_name() error paths.
3119 Close format lib if init_format_fn fails in _init_formats().
3120 Don't leave /proc/mounts open after dmeventd snapshot event processing.
3121 Fix out-of-scope arg_vgnames use in process_each_lv().
3122 Remove incorrect dm_task_destroy(NULL) from _node_clear_table() error path.
3123 Add missing closedir in _rm_blks after removing stray LVM1 VG files.
3124 Suppress 'No PV label' message when removing several PVs without mdas.
3125 Fix default /etc/lvm permissions to be 0755. (2.02.66)
3126
3127 Version 2.02.77 - 22nd November 2010
3128 ====================================
3129 Allocate a pool for dummy VG in _pvsegs_sub_single.
3130 Add PV and LV segment types and functions to liblvm.
3131 Add set_property functions to liblvm.
3132 Remove tag length restriction and allow / = ! : # & characters.
3133 Support repetition of --addtag and --deltag arguments.
3134 Add infrastructure for specific cmdline arguments to be repeated in groups.
3135 Split the_args cmdline arguments and values into arg_props and arg_values.
3136 Fix fsadm no longer to require '-f' to resize an unmounted filesystem.
3137 Fix fsadm to detect mounted filesystems on older systems. (2.0.75)
3138 Extend cling allocation policy to recognise PV tags (cling_by_tags).
3139 Add allocation/cling_tag_list to lvm.conf.
3140 Regenerate configure with 'autoreconf' for --enable-ocf. (2.02.76)
3141
3142 Version 2.02.76 - 8th November 2010
3143 ===================================
3144 Clarify error messages when activation fails due to activation filter use.
3145 Add pacemaker script VolumeGroup.ocf with configure --enable-ocf.
3146 Import make.tmpl into include/ Makefile.
3147 Fix handling of online filesystem resize (using new fsadm return code).
3148 Add DIAGNOSTICS section to fsadm man page.
3149 Modify fsadm to return different status code for check of mounted filesystem.
3150 Update VG metadata only once in vgchange when making multiple changes.
3151 Allow independent vgchange arguments to be used together.
3152 Automatically unmount invalidated snapshots in dmeventd.
3153 Suppress some superfluous messages from clang static analysis.
3154 Fix a deadlock caused by double close in clvmd.
3155 Fix NULL pointer dereference on too-large MDA error path in _vg_read_raw_area.
3156 Use static for internal _align_chunk() and _new_chunk() from pool-fast.c.
3157 Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange.
3158 Add lvm2app functions to query any pv, vg, or lv property / report field.
3159
3160 Version 2.02.75 - 25th October 2010
3161 ===================================
3162 Annotate more variables and parameters as const.
3163 Fix missing variable initialization in cluster_send() function from cmirrord.
3164 Fix pointer for VG name in _pv_resize_single error code path.
3165 Fix warning for changed alignment requirements for dmeventd read/write func.
3166 Add global/metadata_read_only to use unrepaired metadata in read-only cmds.
3167 Don't take write lock in vgchange --refresh, --poll or --monitor.
3168 Skip dm devices in scan if they contain only error targets or are empty.
3169 Fix strict-aliasing compile warning in partition table scanning.
3170 Fix pthread mutex usage deadlock in clvmd.
3171 Automatically extend snapshots with dmeventd according to policy in lvm.conf.
3172 Add activation/snapshot_autoextend_threshold/percent to lvm.conf.
3173 Fix liblvm2cmd link order to support --as-needed.
3174 Remove dependency on libm by replacing floor() by an integer-based algorithm.
3175 Fix hang when repairing a mirrored-log that had both devs fail.
3176 Convey need for snapshot-merge target in lvconvert error message and man page.
3177 Add devices/disable_after_error_count config to limit access to failing devs.
3178 Give correct error message when creating a too-small snapshot.
3179 Implement vgextend --restoremissing to reinstate missing devs that return.
3180 Make lvconvert respect --yes and --force when converting an inactive log.
3181 Refactor and add 'get' functions for lv properties/fields.
3182 Update script for fsadm testing.
3183 Better support of noninteractive shell execution of fsadm.
3184 Fix usage of --yes flag for ReiserFS resize in fsadm.
3185 Fix detection of mounted filesystems for fsadm when udev is used.
3186 Fix assignment of default value to LVM variable in fsadm.
3187 Fix support for --yes flag for fsadm.
3188 Do not execute lvresize from fsadm --dry-run.
3189 Fix fsadm return error code from user's break action.
3190 Allow CC to be overridden at build time (for 'scan-build make').
3191 Rename 'flags' to 'status' in struct metadata_area.
3192 Avoid segfault by limiting partial mode for lvm1 metadata. (2.02.74)
3193 Use dm_zalloc and dm_pool_zalloc throughout.
3194 Add pv_get_property and create generic internal _get_property function.
3195 Add 'get' functions for pv and vg properties/fields.
3196 Make generic GET_*_PROPERTY_FN macros with secondary macro for vg, pv & lv.
3197 Add tags_format_and_copy() common function and call from _tags_disp.
3198 Add id_format_and_copy() common function and call from _uuid_disp.
3199 Refactor report.c '*_disp' functions to call supporting functions.
3200 Move parts of metadata*.[ch] into new {pv|vg|lv}.[ch] files.
3201 Fix vg_read memory leak with directory-based metadata.
3202 Fix memory leak of config_tree in reinitialization code path.
3203 Fix pool destruction order in dmeventd_lvm2_exit() to avoid leak debug mesg.
3204 Read whole /proc/self/maps file before working with maps entries.
3205 Speed up unquoting of quoted double quotes and backslashes.
3206 Speed up CRC32 calculations by using a larger lookup table.
3207
3208 Version 2.02.74 - 24th September 2010
3209 =====================================
3210 Allow : and @ to be escaped with \ in device names of PVs.
3211 Replace alloca with dm_malloc in _aligned_io to avoid stack corruption.
3212 Fix partial mode operations for lvm1 metadata format.
3213 Track recursive filter iteration to avoid refreshing while in use. (2.02.56)
3214 Revert to old glibc vsnprintf behaviour in emit_to_buffer() to catch overflow.
3215 Allocate buffer for metadata tags dynamically to remove 4k limit.
3216 Add random suffix to archive file names to prevent races when being created.
3217 Reinitialize archive and backup handling on toolcontext refresh.
3218 Make poll_mirror_progress report PROGRESS_CHECK_FAILED if LV is not a mirror.
3219 Like mirrors, don't scan origins if ignore_suspended_devices() is set.
3220 Fix return type qualifier to avoid compiler warning. (2.02.69)
3221 Automatically generate LSB Requires-Start for clvmd init script.
3222 Fix return code of pvmove --abort PV.
3223 Fix pvmove --abort to remove even for empty pvmove LV.
3224 Add configure --with-default-data-alignment.
3225 Update heuristic used for default and detected data alignment.
3226 Add "devices/default_data_alignment" to lvm.conf.
3227 Add implementation for simple numeric 'get' property functions.
3228 Define GET_NUM_PROPERTY_FN macro to simplify numeric property 'get' function
3229 Add properties.[ch] to lib/report using columns.h.
3230 Add macro definitions to report infrastructure for character array length.
3231 Remove explicit double quotes from columns.h 'id' entries.
3232 Add 'flags' field to columns.h and define FIELD_MODIFIABLE.
3233 Add vg_mda_size and vg_mda_free functions.
3234 Simplify MD/swap signature detection in pvcreate and allow aborting.
3235 Allow --yes to be used without --force mode.
3236 Fix file descriptor leak in swap signature detection error path.
3237 Detect and allow abort in pvcreate if LUKS signature is detected.
3238 Always mask lock flags correctly when checking for LCK_WRITE.
3239
3240 Version 2.02.73 - 18th August 2010
3241 ==================================
3242 Fix potential for corruption during cluster mirror device failure.
3243 Use 'SINGLENODE' instead of 'dead' in clvmd singlenode messages.
3244 Ignore snapshots when performing mirror recovery beneath an origin.
3245 Pass LCK_ORIGIN_ONLY flag around cluster.
3246 Add suspend_lv_origin and resume_lv_origin using LCK_ORIGIN_ONLY.
3247 Allow internal suspend and resume of origin without its snapshots.
3248 Fix dev_manager_transient to access -real device not snapshot-origin.
3249 Monitor origin -real device below snapshot instead of overlay device.
3250 Don't really change monitoring status when in test mode.
3251 Fix some exit statuses when starting/stopping monitoring fails.
3252 Enable snapshot monitoring by default when dmeventd is enabled.
3253 Move cloned libdevmapper-event client code from segments into lib/activate.
3254 Fix 'lvconvert --splitmirrors' in cluster operation.
3255 Fix clvmd init script exit code to return 4 when executed as non-root user.
3256 Change default alignment of pe_start to 1MB.
3257 Add --norestorefile option to pvcreate.
3258 Require --restorefile when using pvcreate --uuid.
3259 Recognise and give preference to md device partitions (blkext major).
3260 Never scan internal LVM devices.
3261 Don't ignore user-specified PVs in split-mirror operations. (2.02.71)
3262 Fix data corruption bug in cluster mirrors.
3263 Require logical volume(s) to be explicitly named for lvconvert --merge.
3264 Avoid changing aligned pe_start as a side-effect of very verbose logging.
3265 Use built-in rule for device aliases: block/ < dm- < disk/ < mapper/ < other.
3266 Fix const warning in dev_manager_info() and _dev_manager_lv_rmnodes().
3267 Fix const warning in archive_file structure from archive.c.
3268 Clean generated files .exported_symbols_generated, example.conf for distclean.
3269 Handle failure of all mirrored log devices and all but one mirror leg.
3270 Disallow 'mirrored' log type for cluster mirrors.
3271 Do not use VPATH in include/Makefile.
3272 Fix exported_symbols generation to use standard compiler arguments.
3273 Use #include <> not "" in lvm2app.h which gets installed on the system.
3274 Make lib and liblvm.device-mapper wait for include file generation.
3275 Fix configure to supply DEFAULT_RUN_DIR to Makefiles.
3276 Fix allocation of wrong number of mirror logs with 'remove' fault policy.
3277
3278 Version 2.02.72 - 28th July 2010 [CVE-2010-2526]
3279 =================================================
3280 Change clvmd to communicate with lvm2 via a socket in /var/run/lvm.
3281 Return controlled error if clvmd is run by non-root user.
3282 Add configure --default-run-dir for /var/run/lvm.
3283 Never use clvmd singlenode unless explicitly requested with -Isinglenode.
3284
3285 Version 2.02.71 - 28th July 2010
3286 ================================
3287 Document LVM fault handling in doc/lvm_fault_handling.txt.
3288 Make vgck warn about missing PVs.
3289 Clarify help text for vg_mda_count.
3290 Check if cluster log daemon is running before allowing cmirror create.
3291 Add unit-tests dir.
3292 Add configure --enable-testing and reports and report-generators dirs.
3293 Correct LV list order used by lvconvert when splitting a mirror.
3294 Check if LV with specified name already exists when splitting a mirror.
3295 Fix suspend/resume logic for LVs resulting from splitting a mirror.
3296 Update pvcreate, {pv|vg}change, and lvm.conf man pages about metadataignore.
3297 Switch cmirrord and clvmd to use dm_create_lockfile.
3298 Allow clvmd pidfile to be configurable.
3299 Update comments about memory handling in lvm2app.h.
3300 Add more verbose messages while checking volume_list and hosttags settings.
3301 Add log_error when strdup fails in {vg|lv}_change_tag().
3302 Remove unnecessary includes in liblvm files.
3303 Use __attribute__ consistently throughout.
3304 Fix redundant declarations and always compile with -Wredundant-decls.
3305 Fix possible hang when all mirror images of a mirrored log fail.
3306 Pass metadataignore to pv_create, pv_setup, _mda_setup, and add_mda.
3307 Init mda->list in mda_copy.
3308 Do not log backtrace in valid _lv_resume() code path.
3309 Cleanup help strings in configure.in.
3310 Prompt if metadataignore with vgextend or pvchange would adjust vg_mda_copies.
3311 Adjust vg_mda_copies if metadataignore given with vgextend or pvchange.
3312 Adjust auto-metadata repair and caching logic to try to cope with empty mdas.
3313
3314 Version 2.02.70 - 6th July 2010
3315 ===============================
3316 Remove log directly if all mirror images of a mirrored log fail.
3317 Randomly select which mdas to use or ignore.
3318 Add some missing standard configure.in checks.
3319 Add printf format attributes to yes_no_prompt and fix a caller.
3320 Always pass unsuspended dm devices through persistent filter to other filters.
3321 Move test for suspended dm devices ahead of other filters.
3322 Fix another segfault in clvmd -R if no response from daemon. (2.02.68)
3323 Remove superfluous suspended device counter from clvmd.
3324 Fix lvm shell crash when input is entirely whitespace.
3325 Update partial mode warning message.
3326 Preserve memlock balance in clvmd when activation triggers a resume.
3327 Restore the removemissing behaviour of lvconvert --repair --use-policies.
3328
3329 Version 2.02.69 - 30th June 2010
3330 ================================
3331 Fix vgremove to allow removal of VG with missing PVs. (2.02.52)
3332 Add metadata/vgmetadatacopies to lvm.conf.
3333 Add --metadataignore to pvcreate and vgextend.
3334 Add vg_mda_copies, pv_mda_used_count and vg_mda_used_count to reports.
3335 Describe --vgmetadatacopies in lvm.conf and other man pages.
3336 Add --[vg]metadatacopies to select number of mdas to use in a VG.
3337 Make the metadata ignore bit control read/write metadata areas in a PV.
3338 Add pvchange --metadataignore to set or clear a metadata ignore bit.
3339 Refactor metadata code to prepare for --metadataignore / --vgmetadatacopies.
3340 Ensure region_size of mirrored log does not exceed its full size.
3341 Generate liblvm2app exported symbols from header file.
3342 Preload libc locale messages to prevent reading it in memory locked state.
3343 Fix handling of simultaneous mirror image and mirrored log image failure.
3344
3345 Version 2.02.68 - 23rd June 2010
3346 ================================
3347 Fix clvmd initscript status to print only active clustered LVs.
3348 Add lv_path to reports to offer full /dev pathname.
3349 Fix typo in warning message about missing device with allocated data areas.
3350 Add device name and offset to raw_read_mda_header error messages.
3351 Honour log argument when down-converting stacked mirror.
3352 Sleep to workaround clvmd -S race: socket closed early and server drops cmd.
3353 Use early udev synchronization and update of dev nodes for clustered mirrors.
3354 Remove incorrect inclusion of kdev_t.h from cmirrord/functions.h.
3355 Add man pages for lvmconf and non-existent lvmsadc and lvmsar tools.
3356 Exit successfully when using -o help (but not -o +help) with LVM reports.
3357 Do not use internal DLM lock definitions in generic LVM2 clvmd code.
3358 Add --force, --nofsck and --resizefs to lvresize/extend/reduce man pages.
3359 Fix lvm2cmd example in documentation.
3360 Allow use of lvm2app and lvm2cmd headers in C++ code.
3361 Remove unused #includes from clvmd files and introduce clvmd-common.h.
3362 Move common inclusions to clvmd-common.h.
3363 Use #include "" for libdevmapper.h and configure.h throughout tree.
3364 Fix LVM_PATH expansion when exec_prefix=NONE. (2.02.67)
3365 Fix segfault in clvmd -R if no response from daemon received.
3366
3367 Version 2.02.67 - 4th June 2010
3368 ===============================
3369 Handle failed restart of clvmd using -S switch properly.
3370 Fix clvmd initscript restart command to start clvmd if not yet running.
3371 Use built-in absolute paths in clvmd (clvmd restart and PV and LV queries).
3372 Require partial option in lvchange --refresh for partial LVs.
3373 Do not fail lvm_init() if init_logging() or _init_rand() generates an errno.
3374 Don't merge unchanged persistent cache file before dumping if tool scanned.
3375 Fix incorrect memory pool deallocation while using vg_read for files.
3376 Add --type parameter description to the lvcreate man page.
3377 Replace strncmp kernel version number checks with proper ones.
3378 Avoid selecting names under /dev/block if there is an alternative.
3379 Update clustered log kernel module name to log-userspace for 2.6.31 onwards.
3380 Add replicators' LVs to dtree for activation.
3381 Suppress activation message if there is a missing replicator VG.
3382 Fix scripts/relpath.awk to work in mawk
3383 Extend lock_vol to check for missing replicator VGs first.
3384 Update _process_one_vg and process_each_lv_in_vg to populate cmd_vg.
3385 Add cmd_vg structure and associated functions for replicator.
3386 Extend _lv_each_dependency() to handle replicator dependencies.
3387 Add check_replicator_segment() to catch internal replicator errors.
3388 Initial support for replicator metadata.
3389 Extend process_each_lv_in_vg() to provide list of failed lvnames.
3390 Consistently return ECMD_FAILED if process_each_*lv() is interrupted.
3391
3392 Version 2.02.66 - 20th May 2010
3393 ===============================
3394 If unable to obtain snapshot percentage leave value blank on reports.
3395 Add install_system_dirs and install_initscripts makefile targets.
3396 Add configure options for system and locking directories.
3397 Generate example.conf so default lvm.conf contents can be configured.
3398 Install lvmconf script by default.
3399 Remove unnecessary versioned dmeventd plugin symlinks.
3400 Add tests for lvm_vgname_from_{pvid|device}.
3401 Add lvm2app interfaces to lookup a vgname from a pvid and pvname.
3402 Update pvchange to always obtain a vg handle for each pv to process.
3403 Add find_vgname_from_{pvname|pvid} functions.
3404 Add pvid_from_devname and lvmcache_vgname_from_pvid lvmcache functions.
3405 Validate orphan and VG_GLOBAL lock order too.
3406 Accept orphan VG names as parameters to lock_vol() and related functions.
3407 Use is_orphan_vg in place of hard-coded prefix tests and add is_global_vg.
3408
3409 Version 2.02.65 - 17th May 2010
3410 ===============================
3411 Fix clvmd init script never to deactivate non-clustered volume groups.
3412 Disallow vgchange --clustered if there are active mirrors or snapshots.
3413 Introduce lv_is_mirrored.
3414 Use /bin/bash for scripts with bashisms.
3415 Skip internal lvm devices in scan if ignore_suspended_devices is set.
3416 Do not merge old device cache after we run full scan. (2.02.56)
3417 Add pkgconfigdir Makefile variable for make install override.
3418 Configure pkgconfig udev and selinux dependencies.
3419 Switch Libs.private to Requires.private in devmapper.pc and lvm2app.pc.
3420 Use pkgconfig Requires.private for devmapper-event.pc.
3421 Add libdevmapper to linked libdevmapper-event.so.
3422 Link liblvm2cmd.so with libdevmapper-event and libdevmapper.
3423 Fix truncated total size displayed by pvscan.
3424 Add new --sysinit compound option to vgchange and lvchange.
3425 Drop duplicate errors for read failures and missing devices to verbose level.
3426 Use $(libdir)/lvm2 with make install_lvm2_plugin.
3427 Use $(libdir)/device-mapper with make install_dm_plugin.
3428 Add dm_list_splice() function to join two lists together.
3429
3430 Version 2.02.64 - 30th April 2010
3431 =================================
3432 Avoid pointless initialization when the 'version' command is run directly.
3433 Fix memory leak for invalid regex pattern input.
3434 Display invalid regex pattern for filter configuration in case of error.
3435 Remove no-longer-used arg_ptr_value.
3436 Fix -M and --type to use strings, not pointers that change on config refresh.
3437 Fix lvconvert error message when existing mirrored LV is not found.
3438 Set appropriate udev flags for reserved LVs.
3439 Disallow the direct removal of a merging snapshot.
3440 Don't preload the origin when removing a snapshot whose merge is pending.
3441 Disallow the addition of mirror images while a conversion is happening.
3442 Disallow primary mirror image removal when mirror is not in-sync.
3443 Remove obsolete --name parameter from vgcfgrestore.
3444 Add -S command to clvmd to restart the daemon preserving exclusive locks.
3445 Increment lvm2app version from 1 to 2 (memory allocation changes).
3446 Change lvm2app memory alloc/free for pv/vg/lv properties.
3447 Change daemon lock filename from lvm2_monitor to lvm2-monitor for consistency.
3448 Install symbolic .so links with relative paths between usrlibdir and libdir.
3449 Add awk script relpath.awk to calculate paths for relative symlinks.
3450 Use @AWK@ in makefiles.
3451 Fix double DESTDIR usage for infodir and mandir.
3452
3453 Version 2.02.63 - 14th April 2010
3454 =================================
3455 Rename lvm_dump.sh to lvmdump.sh.
3456 Allow incomplete mirror restore in lvconvert --repair upon insufficient space.
3457 Do not reset position in metadata ring buffer on vgrename and vgcfgrestore.
3458 Allow VGs with active LVs to be renamed.
3459 Use UUIDs instead of names while processing event handlers.
3460 Only pass visible LVs to tools in cmdline VG name/tag expansions without -a.
3461 Use typedefs for toollib process_each functions.
3462 Use C locales and use_mlockall for clvmd.
3463 Refactor code related to vg->pvs list and add pv->vg link.
3464 Mask LCK_HOLD flag in cluster VG locks for backwards compatibility.
3465 Add activation/polling_interval to lvm.conf as --interval default.
3466 Don't ignore error if resuming any LV fails in resume_lvs.
3467 Skip closing persistent filter cache file if open failed.
3468 Install .a and .so links into $(usrlibdir).
3469 Add --enable-write_install options to install user-writable files.
3470 Use INSTALL_PROGRAM/DATA/WDATA target.
3471 Switch from using VPATH to vpath in Makefiles.
3472 Permit mimage LVs to be striped in lvcreate, lvresize and lvconvert.
3473 Fix pvmove allocation to take existing parallel stripes into account.
3474 Add pvmove_source_seg to struct lv_segment.
3475 Fix incorrect removal of symlinks after LV deactivation fails.
3476 Fix is_partitioned_dev not to attempt to reopen device.
3477 Fix another thread race in clvmd.
3478 Refactor management of vg->pvs list.
3479 Fix lcov rules and generate better coverage report.
3480 Improve vg_validate to detect some loops in lists.
3481 Change most remaining log_error WARNING messages to log_warn.
3482 Always use blocking lock for VGs and orphan locks.
3483 Allocate all memory for segments from private VG mempool.
3484 Return newly allocated PV segment after segment split.
3485 Optimise searching PV segments for seeking the most recently-added.
3486 Remove vg_validate call when parsing cached metadata.
3487 Use hash table of LVs to speed up parsing of text metadata with many LVs.
3488 Fix two vg_validate messages, adding whitespace and parentheses.
3489 When dmeventd is not forking because of -d flag, don't kill parent process.
3490 Fix 'make install' when $(builddir) is different from $(srcdir).
3491 Fix dso resource leak in error path of dmeventd.
3492 Use C locales and use_mlockall for dmeventd.
3493 Fix --alloc contiguous policy only to allocate one set of parallel areas.
3494 Do not allow {vg|lv}change --ignoremonitoring if on clustered VG.
3495 Improved dependency tracking for dmeventd and liblvm2cmd sources.
3496 Improved Makefile rules for distclean and cflow targets.
3497 Add ability to create mirrored logs for mirror LVs.
3498 Fix clvmd cluster propagation of dmeventd monitoring mode.
3499 Allow ALLOC_ANYWHERE to split contiguous areas.
3500 Use INTERNAL_ERROR for internal errors throughout tree.
3501 Add some assertions to allocation code.
3502 Introduce pv_area_used into allocation algorithm and add debug messages.
3503 Add activation/monitoring to lvm.conf.
3504 Add --monitor and --ignoremonitoring to lvcreate.
3505 Allow dynamic extension of array of areas selected as allocation candidates.
3506 Export and use only valid cookie value in test suite.
3507 Remove const modifier for struct volume_group* from process_each_lv_in_vg().
3508 Don't allow resizing of internal logical volumes.
3509 Fix libdevmapper-event pkgconfig version string to match libdevmapper.
3510 Avoid scanning all pvs in the system if operating on a device with mdas.
3511 Add configure --with-clvmd=singlenode to use clvmd w/o cluster infrastructure.
3512 Get stacktrace if testsuite test drops core and lvm was built with debugging.
3513 Disable long living process flag in lvm2app.
3514 Fix pvcreate device md filter check.
3515 Suppress repeated errors about the same missing PV uuids.
3516 Bypass full device scans when using internally-cached VG metadata.
3517 Only do one full device scan during each read of text format metadata.
3518 Remove unnecessary full_scan parameter from get_vgids and get_vgnames calls.
3519 Look up missing PVs by uuid not dev_name in _pvs_single to avoid invalid stat.
3520 Make find_pv_in_vg_by_uuid() return same type as related functions.
3521 Introduce is_missing_pv().
3522 Fix clvmd Makefile to not overwrite LIBS from template definition.
3523
3524 Version 2.02.62 - 9th March 2010
3525 ================================
3526 Add use_mlockall and mlock_filter to activation section of lvm.conf.
3527 Add default alternative to mlockall using mlock to reduce pinned memory size.
3528 Remove -rdynamic from static builds.
3529 Update checks for pthread, readline & selinux libs and link only when needed.
3530 Introduce makefile vars UDEV_LIBS, DL_LIBS, SELINUX_LIBS, STATIC_LIBS.
3531 Introduce makefile vars LVMINTERNAL_LIBS, READLINE_LIBS, PTHREAD_LIBS.
3532 Toggle configure help to print --disable-fsadm.
3533 Use $() instead of ${} consistently for all Makefile variables.
3534 Replace CFLOW_CMD only in make.tmpl and use it as variable elsewhere.
3535 Use $(top_builddir) for inclusion of make.tmpl in Makefiles.
3536 Fix autoconf warning about ignored datarootdir.
3537 Increase AC_PREREQ version to 2.61 (for AC_PROC_SED, AC_PROG_MKDIR_P).
3538 Handle misaligned devices that report alignment_offset of -1.
3539 Extend core allocation code in preparation for mirrored log areas.
3540 Rewrite clvmd init script.
3541 Remove lvs_in_vg_activated_by_uuid_only call.
3542 No longer fall back to looking up active devices by name if uuid not found.
3543 Don't touch /dev in vgmknodes if activation is disabled.
3544 Update lvm2app.h Doxygen comments and add lvm2app Doxygen config file.
3545 Update nightly tests and lvm2app unit tests to cover tags.
3546 Add lvm2app functions lvm_{vg|lv}_{get|add|remove}_tag() functions.
3547 Add dm_pool_strdup to allocate and copy memory in tag library function.
3548 Refactor vgcreate, vgchange, and lvchange for tag library function.
3549 Refactor snapshot-merge deptree and device removal to support info-by-uuid.
3550
3551 Version 2.02.61 - 15th February 2010
3552 ====================================
3553 Fix some consts and floating point gcc warnings.
3554 Fix dm_report_field_uint64 function to accept 64-bit ints.
3555 Change readhead display to use 32-bit -1 const instead of 64-bit.
3556 Add LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable.
3557 Remove hard-coding that skipped _mimage devices from 11-dm-lvm.rules.
3558 Use udev transactions in test suite.
3559 Set udev state automatically instead of using LVM_UDEV_DISABLE_CHECKING.
3560 Add lvm_pv_get_size, lvm_pv_get_free and lvm_pv_get_dev_size to lvm2app.
3561 Change lvm2app to return all sizes in bytes as documented (not sectors).
3562 Add 'fail_if_percent_unsupported' arg to _percent and _percent_run.
3563 Remove false "failed to find tree node" error when activating merging origin.
3564 Exit with success when lvconvert --repair --use-policies performs no action.
3565 Accept a list of LVs with 'lvconvert --merge @tag' using process_each_lv.
3566 Avoid unnecessary second resync when adding mimage to core-logged mirror.
3567 Exclude internal VG names and uuids from lists returned through lvm2app.
3568 Add %ORIGIN support to lv{create,extend,reduce,resize} --extents.
3569 Add _mda_copy to clone a struct metadata_area.
3570 Remove pointless versioned symlinks to dmeventd plugin libraries.
3571 Fix dmeventd snapshot plugin build dependency.
3572 Make clvmd -V return status zero.
3573 Remove unnecessary 'dmsetup resume' following 'dmsetup create' in tests.
3574 Fix cmirrord segfault in clog_cpg list processing when converting mirror log.
3575 Deactivate temporary pvmove mirror cluster-wide when activating it fails.
3576 Always query device by uuid and not name in clvmd.
3577 Add missing metadata vg_reverts in pvmove error paths.
3578 Unlock shared lock in clvmd if activation calls fail.
3579 Return success from dev_manager_info with non-existent uuid if ioctl succeeds.
3580
3581 Version 2.02.60 - 23rd January 2010
3582 ===================================
3583 Extend cmirrord man page.
3584 Sleep before first progress check if pvmove/lvconvert interval has prefix '+'.
3585 Default to checking progress before waiting in _wait_for_single_lv.
3586 Fix cmirror initscript (including syntax error).
3587 Eliminate avoidable ioctls for checking open_count in _add_new_lv_to_dtree.
3588 Disable memory debugging if dmeventd is configured. (Not thread-safe.)
3589 Fix first log message prefix in syslog for dmeventd plugins.
3590 Fix exported symbols names for dmeventd lvm2 wrapper plugin.
3591 Make failed locking initialization messages more descriptive.
3592
3593 Version 2.02.59 - 21st January 2010
3594 ===================================
3595 Add libdevmapper-event-lvm2.so to serialise dmeventd plugin liblvm2cmd use.
3596 Cleanup memory initialization and freeing in pv_read() and pv_create().
3597 Clear pointer and counters after their release in _fin_commands().
3598 Stop dmeventd trying to access already-removed snapshots.
3599 Remove (fallback) /dev mknod from cmirrord.
3600 Add t-topology-support.sh and t-snapshot-merge.sh tests.
3601 Fix clvmd to never scan suspended devices.
3602 Fix dmeventd build outside source tree.
3603 Assorted cmirror code changes to remove various compiler warnings.
3604 Fix detection of completed snapshot merge.
3605 Add Red Hat cmirror initscript (unfinished).
3606 Add cmirrord man page (incomplete).
3607 Make cluster log communication structures architecture independent.
3608 Fix cluster log in-memory bitmap handling.
3609 Improve snapshot merge metadata import validation.
3610 Improve target type compatibility checking in _percent_run().
3611 Add 'target_status_compatible' method to 'struct segtype_handler'.
3612 Change underscore to hyphen in table line for clustered log type.
3613
3614 Version 2.02.58 - 14th January 2010
3615 ===================================
3616 Cleanup some minor gcc warnings.
3617 Add --merge to lvconvert to merge a snapshot into its origin.
3618 Fix clvmd automatic target module loading crash (no reset_locking fn).
3619 Fix allocation code not to stop at the first area of a PV that fits.
3620
3621 Version 2.02.57 - 12th January 2010
3622 ===================================
3623 Ensure exactly one process returns from poll_daemon(), never two.
3624 Reset _vgs_locked in lvmcache_init() in child after forking.
3625 Define {DM, LVM}_UDEV_DISABLE_CHECKING=1 environment variables during tests.
3626 Enable udev_sync and udev_rules in lvm.conf by default while running tests.
3627 If LVM_UDEV_DISABLE_CHECKING in set in environment, disable udev warnings.
3628 Add --splitmirrors to lvconvert to split off part of a mirror.
3629 Change background polldaemon's process name to "(lvm2)".
3630 Allow vgremove to remove a VG with PVs missing after a prompt.
3631 Return success in lvconvert --repair --use-policies on failed allocation.
3632 Keep log type consistent when changing mirror image count.
3633 Always set environment variables for an LVM2 device in 11-dm-lvm.rules.
3634 Add activation/udev_rules config option in lvm.conf.
3635 Add consts to text metadata flag structs.
3636 Add macros outfc, outsize, outhint and function out_text_with_comment.
3637 Reimplement report FIELD macro using offsetof instead of static structs.
3638 Fix fsadm man page typo (fsdam).
3639 Rename mirror_device_fault_policy to mirror_image_fault policy.
3640 Remove empty PV devices if lvconvert --repair is using defined policies.
3641 Use fixed buffer to prevent stack overflow in persistent filter dump.
3642 Use extended status of new kernel snapshot target 1.8.0 to detect when empty.
3643 Insert stack macros in suspend_lv, resume_lv & (de)activate_lv callers.
3644 Add --poll flag to vgchange and lvchange to control background daemon launch.
3645 Propagate metadata commit and revert notifications to other cluster nodes.
3646 Use proper mask for VG lock mode in clvmd.
3647 Allow precommitted metadata to be dropped from lvmcache.
3648 Move processing of VG locks to separate function in clvmd.
3649 Properly decode all flags in clvmd messages including VG locks.
3650 Properly handle precommitted cache flag when only committed metadata present.
3651 Resume renamed volumes in reverse order to preserve memlock pairing.
3652 Drop cached metadata after device was auto-repaired and removed from VG.
3653 Clear MISSING_PV flag if PV reappeared and is empty.
3654 Fix removal of multiple devices from a mirror.
3655 Also clean up PVs flagged as missing in vgreduce --removemissing --force.
3656 Introduce INTERNAL_ERROR macro for error messages and use throughout.
3657 Remove superfluous returns from void functions.
3658 Destroy allocated mempool in _vg_read_orphans() error path.
3659 Fix some pvresize and toollib error paths with missing VG releases/unlocks.
3660 Explicitly call suspend for temporary mirror layer.
3661 Allow use of precommitted metadata when a PV is missing.
3662 Add memlock information to do_lock_lv debug output.
3663 Always bypass calls to remote cluster nodes for non-clustered VGs.
3664 Permit implicit cluster lock conversion in pre/post callbacks on local node.
3665 Permit implicit cluster lock conversion to the lock mode already held.
3666 Fix lock flag masking in clvmd so intended code paths get invoked.
3667 Replace magic masks in cluster locking code by defined masks.
3668 Remove newly-created mirror log from metadata if initial deactivation fails.
3669 Correct activated or deactivated text in vgchange summary message.
3670 Improve pvmove error message when all source LVs are skipped.
3671 Fix memlock imbalance in lv_suspend if already suspended.
3672 Fix pvmove test mode not to poll (and fail).
3673 Fix vgcreate error message if VG already exists.
3674 Fix tools to use log_error when aborted due to user response to prompt.
3675 Fix ignored readahead setting in lvcreate --readahead.
3676 Fix clvmd memory leak in lv_info_by_lvid by calling release_vg.
3677 If aborting due to internal error, always send that message to stderr.
3678 Add global/abort_on_internal_errors to lvm.conf to assist testing.
3679 Fix test Makefiles when builddir and srcdir differ.
3680 Impose limit of 8 mirror images to match the in-kernel kcopyd restriction.
3681 Use locking_type 3 (compiled in) for lvmconf --enable-cluster.
3682 Remove list.c and list.h with no-longer-used dm_list macros and functions.
3683 Log failure type and recognize type 'F' (flush) in dmeventd mirror plugin.
3684 Extend internal PV/VG/LV/segment status variables from 32-bit to 64-bit.
3685
3686 Version 2.02.56 - 24th November 2009
3687 ====================================
3688 Add missing vg_release to pvs and pvdisplay to fix memory leak.
3689 Do not try to unlock VG which is not locked in _process_one_vg.
3690 Move is_long_lived persistent_filter_dump to happen after every full scan.
3691 Refresh device filters before full device rescan in lvmcache.
3692 Return error status if vgchange fails to activate some volume.
3693 Fix suspend/resume lock type test causing unbalanced memory locking.
3694 Revert vg_read_internal change as clvmd was not ready for vg_read. (2.02.55)
3695
3696 Version 2.02.55 - 19th November 2009
3697 ====================================
3698 Fix deadlock when changing mirrors due to unpaired memlock refcount changes.
3699 Use separate memlock counter for dmeventd handlers to permit device scanning.
3700 Directly restrict vgchange to activating visible LVs.
3701 Fix pvmove region_size overflow for very large PVs.
3702 Fix lvcreate and lvresize %PVS argument always to use sensible total size.
3703 Tidy some uses of arg_count and introduce arg_is_set.
3704 Export outnl and indent functions for modules.
3705 Flush stdout after yes/no prompt.
3706 Update vgsplit and vgcreate to use vg_set_clustered.
3707 Add vg_mda_count and vg_set_clustered library functions.
3708 Add more vgcreate and vgsplit nightly tests.
3709 Insert some missing stack macros into activation code.
3710 Recognise DRBD devices and handle them like md devices.
3711
3712 Version 2.02.54 - 26th October 2009
3713 ===================================
3714 Update lvcreate/lvconvert man pages to explain PhysicalVolume parameter.
3715 Document --all option in man pages, cleanup {pv|vg|lv}{s|display} man pages.
3716 Permit snapshots of mirrors.
3717 Cleanup mimagetmp LV if allocation fails for new lvconvert mimage.
3718 Fix clvmd segfault when refresh_toolcontext fails.
3719 Remember to clear 'global lock held during cache refresh' state after use.
3720 Use udev flags support in LVM and apply various fixes to udev rules.
3721 Delay announcing mirror monitoring to syslog until initialization succeeded.
3722 Handle metadata with unknown segment types more gracefully.
3723 Set default owner and group to null.
3724 Add dmeventd.static to the build.
3725 Disable realtime support code by default.
3726 Make clvmd return 0 on success rather than 1.
3727 Add --pvmetadatacopies for pvcreate, vgcreate, vgextend, vgconvert.
3728 Add implicit pvcreate support to vgcreate and vgextend.
3729 Correct example.conf to indicate that lvm2 not lvm1 is the default format.
3730 Remove an unused stray LVM1_SUPPORT ifdef.
3731 Only include selinux libs in libdevmapper.pc when selinux build enabled.
3732 Allow for a build directory separate from the source.
3733 Update distclean target for rename clogd to cmirrord. (2.02.52)
3734 Only do lock conversions in clvmd if we are explicitly asked for one.
3735 Introduce percent_range_t and centralise snapshot full/mirror in-sync checks.
3736 Factor out poll_mirror_progress and introduce progress_t.
3737 Distinguish between powers of 1000 and powers of 1024 in unit suffixes.
3738 Restart lvconverts in vgchange by sharing lv_spawn_background_polling.
3739 Generalise polldaemon code by changing mirror-specific variable names.
3740 Don't attempt to deactivate an LV if any of its snapshots are in use.
3741 Return error if lv_deactivate fails to remove device from kernel.
3742 Provide alternative implementation of obsolete siginterrupt().
3743 Consolidate LV allocation into alloc_lv().
3744 Treat input units of both 's' and 'S' as 512-byte sectors. (2.02.49)
3745 Use standard output units for 'PE Size' and 'Stripe size' in pv/lvdisplay.
3746 Add configure --enable-units-compat to set si_unit_consistency off by default.
3747 Add global/si_unit_consistency to enable cleaned-up use of units in output.
3748
3749 Version 2.02.53 - 25th September 2009
3750 =====================================
3751 Create any directories in /dev with DM_DEV_DIR_UMASK (022).
3752 Enable dmeventd monitoring section of config file by default.
3753 Update lvm2 monitoring script to lvm2_monitoring_init_red_hat.in.
3754 Fix lvm2app test to run under test/api subdirectory only when configured.
3755 Add vg_is_resizeable() and cleanup reference to VG_RESIZEABLE.
3756
3757 Version 2.02.52 - 15th September 2009
3758 =====================================
3759 Update _process_one_vg to cleanup properly after vg_read_error.
3760 Add lots of missing stack debug messages to tools.
3761 Make readonly locking available as locking type 4.
3762 Fix readonly locking to permit writeable global locks (for vgscan). (2.02.49)
3763 Add DM_UDEV_RULES_VSN environment variable to udev rules.
3764 Update vgsplit, vgmerge, and vgrename to obey new vgname ordering rules.
3765 Make lvm2app pv_t, lv_t, vg_t handle definitions consistent with lvm_t.
3766 Enforce an alphabetical lock ordering on vgname locking.
3767 Prioritise write locks over read locks by default for file locking.
3768 Add local lock files with suffix ':aux' to serialise locking requests.
3769 Fix global locking in PV reporting commands (2.02.49).
3770 Fix pvcreate string termination in duplicate uuid warning message.
3771 Don't loop reading sysfs with pvcreate on a non-blkext partition (2.02.51).
3772 Fix vgcfgrestore error paths when locking fails (2.02.49).
3773 Update Makefile distclean target.
3774 Add libudev configuration check.
3775 Make clvmd check corosync to see what cluster interface it should use.
3776 Add clvmd autodetection check and cleanup related configure messages.
3777 Rewrite clvmd configuration code to cope with all combinations of libs.
3778 Added configure --enable-cmirrord to build the cluster mirror log daemon.
3779 Rename clogd to cmirrord.
3780 Make lvchange --refresh only take a read lock on volume group.
3781 Fix race where non-blocking file locks could be granted in error.
3782 Fix vgextend error path - if ORPHAN lock fails, unlock / release vg (2.02.49).
3783 Fix compile warning in clvmd.
3784 Clarify use of PE ranges in lv{convert|create|extend|resize} man pages.
3785 Remove useless _pv_write wrapper.
3786 Add lvm2app.sh to tests conditional upon configure --enable-applib.
3787 Add lvm_vg_is_clustered, lvm_vg_is_exported, and lvm_vg_is_partial.
3788 Update lvm_vg_remove to require lvm_vg_write to commit remove to disk.
3789 Update test/api/test.c to call lvm_vg_create and lvm_vg_remove.
3790
3791 Version 2.02.51 - 6th August 2009
3792 =================================
3793 Fix locking in clvmd (2.02.50).
3794 Add --noudevsync option for relevant LVM tools.
3795 Add activation/udev_sync to lvm.conf.
3796 Only change LV symlinks on ACTIVATE not PRELOAD.
3797 Make lvconvert honour log mirror options combined with downconversion.
3798 Allow LV suspend while --ignorelockingfailure is in force.
3799 Update synopsis in lvconvert manpage to mention --repair.
3800 Set cookies in activation code and wait for udev to complete processing.
3801 Added configure --enable-udev_rules --enable-udev_sync.
3802 Added configure --with-udev-prefix --with-udevdir.
3803 Added udev dir to hold udev rules.
3804 Add devices/data_alignment_detection to lvm.conf.
3805 Add devices/data_alignment_offset_detection to lvm.conf.
3806 Add --dataalignmentoffset to pvcreate to shift start of aligned data area.
3807 Fix _mda_setup() to not check first mda's size before pe_align rounding.
3808 Document -I option of clvmd in the man page.
3809 Fix configure script to handle multiple clvmd selections.
3810 Fix lvm2app.pc installation filename.
3811 Remove pv_t, vg_t & lv_t handles from lib. Only liblvm uses them.
3812 Rename lvm.h to lvm2app.h for now.
3813
3814 Version 2.02.50 - 28th July 2009
3815 ================================
3816 Change test/api/test.c prompt so it's not confused with the main lvm prompt.
3817 Update liblvm unit tests in test/api to cover latest liblvm changes.
3818 Add unimplemented lvm_lv_resize and lvm_pv_resize skeletons to liblvm.
3819 Add lvm_library_get_version to liblvm.
3820 Add lvm_config_override to liblvm to allow caller to override LVM config.
3821 Add lvm_lv_is_active and lvm_lv_is_suspended to liblvm.
3822 Add lvm_lv_activate and lvm_lv_deactivate to liblvm.
3823 Add lvm_scan, lvm_vg_reduce and lvm_vg_remove_lv to liblvm.
3824 Add functions to get numeric properties to liblvm.
3825 Add lvm_{pv|vg|lv}_get_{name|uuid} to liblvm.
3826 Add lvm_vg_list_pvs and lvm_vg_list_lvs to liblvm.
3827 Add lvm_vg_open and lvm_vg_create_lv_linear to liblvm.
3828 Add lvm_list_vg_names/uuids to liblvm.
3829 Add lvm_errno and lvm_errmsg to liblvm to obtain failure information.
3830 Rename lvm_create/destroy to lvm_init/quit.
3831 Rename lvm_reload_config to lvm_config_reload.
3832 Refactor _override_settings to use new override_config_tree_from_string.
3833 Add vg_reduce to metadata.c and metadata-exported.h.
3834 Update lvm.h to clarify API behavior and return codes.
3835 Update lvm_vg_extend to do an implicit pvcreate on the device.
3836 Update display.c to use vg_free(vg) instead of duplicating the calculation.
3837 Refactor vg_size, vg_free, and pv_mda_count field calculations for liblvm.
3838 Refactor pvcreate and lvcreate for liblvm.
3839 Add global/wait_for_locks to lvm.conf so blocking for locks can be disabled.
3840 All LV locks are non-blocking so remove LCK_NONBLOCK from separate macros.
3841 Fix race condition with vgcreate and vgextend on same device (2.02.49).
3842 Remove redundant validate_name call from vgreduce.
3843 Remove unused handles lvseg, pvseg inside liblvm/lvm.h.
3844 Add liblvm2app Makefile installation targets.
3845 Add liblvm pkgconfig file.
3846 Use newly-independent LVM_LIBAPI in liblvm soname. E.g. liblvm2app.so.2.1.
3847 Add an API version number, LVM_LIBAPI, to the VERSION string for liblvm.
3848 Pass a pointer to struct cmd_context to init_multiple_segtypes
3849 Return EINVALID_CMD_LINE not success when invalid VG name format is used.
3850 Remove unnecessary messages after vgcreate/vgsplit refactor (2.02.49).
3851 Add log_errno to set a specific errno and replace log_error in due course.
3852 Change create_toolcontext to still return an object if it fails part-way.
3853 Add EUNCLASSIFIED (-1) as the default LVM errno code.
3854 Store any errno and error messages issued while processing each command.
3855 Use log_error macro consistently throughout in place of log_err.
3856
3857 Version 2.02.49 - 15th July 2009
3858 ================================
3859 Add readonly locking type to replace implementation of --ignorelockingfailure.
3860 Exclude VG_GLOBAL from vg_write_lock_held so scans open devs read-only again.
3861 Add unit test case for liblvm VG create/delete APIs.
3862 Add liblvm APIs to implement creation and deletion of VGs.
3863 Initialize cmd->cmd_line to "liblvm" in new liblvm library.
3864 Place handles to liblvm objects for pv, vg, lv, lvseg, pvseg inside lvm.h.
3865 Refactor vgsplit and vgextend to remove READ_REQUIRE_RESIZEABLE flag.
3866 Use _exit() not exit() after forking to avoid flushing libc buffers twice.
3867 Add cast to log_info arg in _find_labeller to avoid Sparc64 warning.
3868 Make cmd->cmd_line const.
3869 Fix dev name mismatch in vgcreate man page example.
3870 Refactor vg_remove_single for use in liblvm.
3871 Make all tools use consistent lock ordering obtaining VG_ORPHAN lock second.
3872 Check md devices for a partition table during device scan.
3873 Add extended device (blkext) and md partition (mdp) types to filters.
3874 Make text metadata read errors for segment areas more precise.
3875 Fix text segment metadata read errors to mention correct segment name.
3876 Include segment and LV names in text segment import error messages.
3877 Add parent node to config_node structure.
3878 Update vgsplit and vgcreate to call new vg_create and 'set' functions.
3879 Change vg_create to take minimal parameters, obtain a lock, and return vg_t.
3880 Refactor vgchange extent_size, max_lv, max_pv, and alloc_policy for liblvm.
3881 Update t-vgcreate-usage.sh to test for default vg properties.
3882 Fix memory leak in vgsplit when re-reading the vg.
3883 Make various exit/cleanup paths more robust after lvm init failures.
3884 Use LCK_NONBLOCK implicitly instead of explicit vg_read() flag.
3885 Remove unnecessary locking and existence tests from new vg_read() interface.
3886 Permit several segment types to be registered by a single shared object.
3887 Update the man pages to document size units uniformly.
3888 Allow commandline sizes to be specified in terms of bytes and sectors.
3889 Update 'md_chunk_alignment' to use stripe-width to align PV data area.
3890 Update test/t-inconsistent-metadata.sh to match new vg_read interface.
3891 Add lvmcache_init() to polldaemon initialization.
3892 Convert tools to use new vg_read / vg_read_for_update.
3893 Fix segfault in vg_release when vg->cmd is NULL.
3894
3895 Version 2.02.48 - 30th June 2009
3896 ================================
3897 Abort if automatic metadata correction fails when reading VG to update it.
3898 Explicitly request fallback to default major number in device mapper.
3899 Ignore suspended devices during repair.
3900 Call vgreduce --removemissing automatically to fix missing PVs in dmeventd.
3901 Suggest using lvchange --resync when adding leg to not-yet-synced mirror.
3902 Destroy toolcontext on clvmd exit to avoid memory pool leaks.
3903 Fix lvconvert not to poll mirror if no conversion in progress.
3904 Fix memory leaks in toolcontext error path.
3905 Reinstate partial activation support in clustered mode. (2.02.40)
3906 Allow metadata correction even when PVs are missing.
3907 Use 'lvm lvresize' instead of 'lvresize' in fsadm.
3908 Do not use '-n' realine option in fsadm for busybox compatibility.
3909 Add vg_lock_newname() library function for vgrename, vgsplit and vgcreate.
3910 Round up requested readahead to at least one page and print warning.
3911 Try to repair vg before actual vgremove when force flag provided.
3912 Fix possible double release of VG after recovery.
3913 Add parameter to process_each_vg specifying what to do with inconsistent VG.
3914 Unify error messages when processing inconsistent volume group.
3915 Use lvconvert --repair instead of vgreduce in mirror dmeventd DSO.
3916 Introduce lvconvert --use_policies (repair policy according to lvm.conf).
3917 Update clvmd-corosync to match new corosync API.
3918 Fix lib Makefile to include any shared libraries in default target.
3919 Fix rename of active snapshot with virtual origin.
3920 Fix convert polling to ignore LV with different UUID.
3921 Cache underlying device readahead only before activation calls.
3922 Fix segfault when calculating readahead on missing device in vgreduce.
3923 Remove verbose 'visited' messages.
3924 Handle multi-extent mirror log allocation when smallest PV has only 1 extent.
3925 Add LSB standard headers and functions (incl. reload) to clvmd initscript.
3926 When creating new LV, double-check that name is not already in use.
3927 Remove /dev/vgname/lvname symlink automatically if LV is no longer visible.
3928 Rename internal vorigin LV to match visible LV.
3929 Suppress 'removed' messages displayed when internal LVs are removed.
3930 Fix lvchange -a and -p for sparse LVs.
3931 Fix lvcreate --virtualsize to activate the new device immediately.
3932 Make --snapshot optional with lvcreate --virtualsize.
3933 Generalise --virtualoriginsize to --virtualsize.
3934 Skip virtual origins in process_each_lv_in_vg() without --all.
3935 Fix counting of virtual origin LVs in vg_validate.
3936 Attempt to load dm-zero module if zero target needed but not present.
3937
3938 Version 2.02.47 - 22nd May 2009
3939 ===============================
3940 Rename liblvm.so to liblvm2app.so and use configure --enable-applib.
3941 Reinstate version in liblvm2cmd.so soname. (2.02.44)
3942
3943 Version 2.02.46 - 21st May 2009
3944 ===============================
3945 Inherit readahead setting from underlying devices during activation.
3946 Detect LVs active on remote nodes by querying locks if supported.
3947 Enable online resizing of mirrors.
3948 Use suspend with flush when device size was changed during table preload.
3949 Implement query_resource_fn for cluster_locking.
3950 Support query_resource_fn in locking modules.
3951 Introduce CLVMD_CMD_LOCK_QUERY command for clvmd.
3952 Fix pvmove to revert operation if temporary mirror creation fails.
3953 Fix metadata export for VG with missing PVs.
3954 Add vgimportclone and install it and the man page by default.
3955 Force max_lv restriction only for newly created LV.
3956 Remove unneeded import parameter from lv_create_empty.
3957 Merge lv_is_displayable and lv_is_visible functions.
3958 Introduce lv_set_visible & lv_set_hidden functions.
3959 Fix lv_is_visible to handle virtual origin.
3960 Introduce link_lv_to_vg and unlink_lv_from_vg functions.
3961 Remove lv_count from VG and use counter function instead.
3962 Fix snapshot segment import to not use duplicate segments & replace.
3963 Do not query nonexistent devices for readahead.
3964 Remove NON_BLOCKING lock flag from tools and set a policy to auto-set.
3965 Remove snapshot_count from VG and use function instead.
3966 Fix first_seg() call for empty segment list.
3967 Add install_lvm2 makefile target to install only the LVM2 components.
3968 Reject missing PVs from allocation in toollib.
3969 Fix PV dataalignment for values starting prior to MDA area. (2.02.45)
3970 Add sparse devices: lvcreate -s --virtualoriginsize (hidden zero origin).
3971 Fix minimum width of devices column in reports.
3972 Add lvs origin_size field.
3973 Fix linux configure --enable-debug to exclude -O2.
3974 Implement lvconvert --repair for repairing partially-failed mirrors.
3975 Fix vgreduce --removemissing failure exit code.
3976 Fix remote metadata backup for clvmd.
3977 Introduce unlock_and_release_vg macro.
3978 Introduce vg_release() to be called to free every struct volume_group.
3979 Alloc PV internal structure from VG mempool if possible.
3980 Fix metadata backup to run after vg_commit always.
3981 Tidy clvmd volume lock cache functions.
3982 Fix pvs report for orphan PVs when segment attributes are requested.
3983 Fix pvs -a output to not read volume groups from non-PV devices.
3984 Add MMC (mmcblk) device type to filters.
3985 Introduce memory pools per volume group (to reduce memory for large VGs).
3986 Use copy of PV structure when manipulating global PV lists.
3987 Always return exit error status when locking of volume group fails.
3988 Fix mirror log convert validation question.
3989 Avoid referencing files from DESTDIR during build process.
3990 Avoid creating some static libraries unless configured --enable-static_link.
3991 Enable use of cached metadata for pvs and pvdisplay commands.
3992 Add missing 'device-mapper' internal subdir build dependency.
3993 Fix memory leak in mirror allocation code.
3994 Save and restore the previous logging level when log level is changed.
3995 Fix error message when archive initialization fails.
3996 Make sure clvmd-corosync releases the lockspace when it exits.
3997 Fix segfault for vgcfgrestore on VG with missing PVs.
3998 Block SIGTERM & SIGINT in clvmd subthreads.
3999 Detect and conditionally wipe swapspace signatures in pvcreate.
4000 Fix maximal volume count check for snapshots if max_lv set for volume group.
4001 Fix lvcreate to remove unused cow volume if the snapshot creation fails.
4002 Fix error messages when PV uuid or pe_start reading fails.
4003 Build new liblvm application-level library.
4004 Rename liblvm.a to liblvm-internal.a.
4005 Flush memory pool and fix locking in clvmd refresh and backup command.
4006 Fix unlocks in clvmd-corosync. (2.02.45)
4007 Fix error message when adding metadata directory to internal list fails.
4008 Fix size and error message of memory allocation at backup initialization.
4009 Remove old metadata backup file after renaming VG.
4010 Restore log_suppress state when metadata backup file is up-to-date.
4011
4012 Version 2.02.45 - 3rd March 2009
4013 ================================
4014 Avoid scanning empty metadata areas for VG names.
4015 Attempt proper clean up in child before executing new binary in exec_cmd().
4016 Do not scan devices if reporting only attributes from PV label.
4017 Use pkgconfig to obtain corosync library details during configuration.
4018 Fix error returns in clvmd-corosync interface to DLM.
4019 Add --refresh to vgchange and vgmknodes man pages.
4020 Pass --test from lvresize to fsadm as --dry-run.
4021 Supply argv[] list to exec_cmd() to allow for variable number of parameters.
4022 Prevent fsadm from checking mounted filesystems.
4023 No longer treats any other key as 'no' when prompting in fsadm.
4024 Tidy fsadm command line processing.
4025 Add lib/lvm.h and lib/lvm_base.c for the new library interface.
4026 Move tools/version.h to lib/misc/lvm-version.h.
4027 Split LVM_VERSION into MAJOR, MINOR, PATCHLEVEL, RELEASE and RELEASE_DATE.
4028 Add system_dir parameter to create_toolcontext().
4029 Add --dataalignment to pvcreate to specify alignment of data area.
4030 Exclude LCK_CACHE locks from _vg_lock_count, fixing interrupt unblocking.
4031 Provide da and mda locations in debug message when writing text format label.
4032 Mention the restriction on file descriptors at invocation on the lvm man page.
4033 Index cached vgmetadata by vgid not vgname to cope with duplicate vgnames.
4034 No longer require kernel and metadata major numbers to match.
4035 Add a fully-functional get_cluster_name() to clvmd corosync interface.
4036 Remove duplicate cpg_initialize from clvmd startup.
4037 Add option to /etc/sysconfig/cluster to select cluster type for clvmd.
4038 Allow clvmd to start up if its lockspace already exists.
4039 Separate PV label attributes which do not need parse metadata when reporting.
4040 Remove external dependency on the 'cut' command from fsadm.
4041 Fix pvs segfault when pv mda attributes requested for not available PV.
4042 Add fsadm support for resizing ext4 filesystems.
4043 Move locking_type reading inside init_locking().
4044 Rename get_vgs() to get_vgnames() and clarify related error messages.
4045 Allow clvmd to be built with all cluster managers & select one on cmdline.
4046 Mention --with-clvmd=corosync in ./configure.
4047 Replace internal vg_check_status() implementation.
4048 Rename vg_read() to vg_read_internal().
4049
4050 Version 2.02.44 - 26th January 2009
4051 ===================================
4052 Fix --enable-static_link after the recent repository changes.
4053 Add corosync/DLM cluster interface to clvmd.
4054 Add --nameprefixes, --unquoted, --rows to pvs, vgs, lvs man pages.
4055 Fix lvresize size conversion for fsadm when block size is not 1K.
4056 Fix pvs segfault when run with orphan PV and some VG fields.
4057 Display a 'dev_size' of zero for missing devices in reports.
4058 Add pv_mda_size to pvs and vg_mda_size to vgs.
4059 Fix lvmdump /sys listing to include virtual devices directory.
4060 Add "--refresh" functionality to vgchange and vgmknodes.
4061 Avoid exceeding LV size when wiping device.
4062 Calculate mirror log size instead of using 1 extent.
4063 Ensure requested device number is available before activating with it.
4064 Fix incorrect exit status from 'help <command>'.
4065 Fix vgrename using UUID if there are VGs with identical names.
4066 Fix segfault when invalid field given in reporting commands.
4067 Move is_static from cmd to global is_static().
4068 Refactor init_lvm() for lvmcmdline and clvmd.
4069 Add liblvm interactive test infrastructure to build.
4070 Add skeleton lvm2.h file in preparation for a shared library interface.
4071 Use better random seed value in temp file creation.
4072 Add read_urandom to read /dev/urandom. Use in uuid calculation.
4073 Use displayable_lvs_in_vg and lv_is_displayable for consistency throughout.
4074 Fix race in vgcreate that would result in second caller overwriting first.
4075 Fix uninitialised lv_count in vgdisplay -c.
4076 Don't skip updating pvid hash when lvmcache_info struct got swapped.
4077 Add tinfo to termcap search path for pld-linux.
4078 Fix startup race in clvmd.
4079 Generate Red Hat clvmd startup script at config time with correct paths.
4080 Fix clvmd & dmeventd builds after tree restructuring.
4081 Cope with snapshot dependencies when removing a whole VG with lvremove.
4082 Make man pages and tool help text consistent using | for alternative options.
4083
4084 Version 2.02.43 - 10th November 2008
4085 ====================================
4086 Merge device-mapper into the lvm2 tree.
4087 Correct prototype for --permission on lvchange and lvcreate man pages.
4088 Exit with non-zero status from vgdisplay if couldn't show any requested VG.
4089 Move list.c into libdevmapper and rename functions.
4090 Rename a couple of variables that matched function names.
4091 Use simplified x.y.z version number in libdevmapper.pc.
4092 Remove ancient debian directory.
4093 Split out lvm-logging.h from log.h and lvm-globals.[ch] from log.[ch].
4094
4095 Version 2.02.42 - 26th October 2008
4096 ===================================
4097 Accept locking fallback_to_* options in the global section as documented.
4098 Fix temp table activation in mirror conversions not to happen in other cmds.
4099 Fix temp table in mirror conversions to use always-present error not zero.
4100
4101 Version 2.02.41 - 17th October 2008
4102 ===================================
4103 Use temp table to set device size when converting mirrors.
4104 In resume_mirror_images replace activate_lv with resume_lv as workaround.
4105 Avoid overwriting in-use on-disk text metadata by forgetting MDA_HEADER_SIZE.
4106 Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
4107 Generate man pages from templates and include version.
4108 Add usrlibdir and usrsbindir to configure.
4109 Fix conversion of md chunk size into sectors.
4110 Free text metadata buffer after a failure writing it.
4111 Fix misleading error message when there are no allocatable extents in VG.
4112 Fix handling of PVs which reappeared with old metadata version.
4113 Fix mirror DSO to call vgreduce with proper parameters.
4114 Fix validation of --minor and --major in lvcreate to require -My always.
4115 Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning.
4116
4117 Version 2.02.40 - 19th September 2008
4118 =====================================
4119 Allow lvremove to remove LVs from VGs with missing PVs.
4120 In VG with PVs missing, by default allow activation of LVs that are complete.
4121 Track PARTIAL_LV and MISSING_PV flags internally.
4122 Require --force with --removemissing in vgreduce to remove partial LVs.
4123 No longer write out PARTIAL flag into metadata backups.
4124 Treat new default activation/missing_stripe_filler "error" as an error target.
4125 Remove internal partial_mode.
4126 Add devices/md_chunk_alignment to lvm.conf.
4127 Pass struct physical_volume to pe_align and adjust for md chunk size.
4128 Store sysfs location in struct cmd_context.
4129 Avoid shuffling remaining mirror images when removing one, retaining primary.
4130 Add missing LV error target activation in _remove_mirror_images.
4131 Prevent resizing an LV while lvconvert is using it.
4132 Avoid repeatedly wiping cache while VG_GLOBAL is held in vgscan & pvscan.
4133 Fix pvresize to not allow resize if PV has two metadata areas.
4134 Fix setting of volume limit count if converting to lvm1 format.
4135 Fix vgconvert logical volume id metadata validation.
4136 Fix lvmdump metadata gather option (-m) to work correctly.
4137 Fix allocation bug in text metadata format write error path.
4138 Fix vgcfgbackup to properly check filename if template is used.
4139 configure aborts if lcov or genhtml are missing with --enable-profiling
4140 vgremove tries to remove lv snapshot first.
4141 Added function lv_remove_with_dependencies().
4142 Improve file descriptor leak detection to display likely culprit and filename.
4143 Change clustered mirror kernel module name from cmirror to dm-log-clustered.
4144 Avoid looping forever in _pv_analyze_mda_raw used by pvck.
4145 Change lvchange exit status to indicate if any part of the operation failed.
4146 Fix pvchange and pvremove to handle PVs without mdas.
4147 Refactor _text_pv_read and always return mda list if requested.
4148 Fix configure to work w/o readline unless --enable-readline used. (2.02.39)
4149 Remove is_lvm_partition template which has not yet been coded.
4150 Refactor pvcreate to separate parameter parsing from validation logic.
4151 Check for label_write() failure in _text_pv_write().
4152 Add pvcreate tests and update vgsplit tests to handle lvm1 and lvm2 metadata.
4153 Fix pvchange -M1 -u to preserve existing extent locations when there's a VG.
4154 Cease recognising snapshot-in-use percentages returned by early devt kernels.
4155 Add backward-compatible flags field to on-disk format_text metadata.
4156 Fix dmeventd monitoring libraries to link against liblvm2cmd again. (2.02.39)
4157
4158 Version 2.02.39 - 27th June 2008
4159 ================================
4160 Enable readline by default if available.
4161 Update autoconf to 2008-01-16.
4162 Add $DISTCLEAN_DIRS to make.tmpl.in.
4163 Create coverage reports with --enable-profiling and make lcov or lcov-dated.
4164 Fix up cache for PVs without mdas after consistent VG metadata is processed.
4165 Update validation of safe mirror log type conversions in lvconvert.
4166 Fix lvconvert to disallow snapshot and mirror combinations.
4167 Fix reporting of LV fields alongside unallocated PV segments.
4168 Add --unquoted and --rows to reporting tools.
4169 Add and use uninitialized_var() macro to suppress invalid compiler warnings.
4170 Introduce enum for md minor sb version to suppress compiler warning.
4171 Avoid undefined return value after _memlock manipulation in lvm2_run.
4172 Avoid link failure if configured without --enable-cmdlib or --enable-readline.
4173 Make clvmd return at once if other nodes down in a gulm or openais cluster.
4174 Fix and improve readahead 'auto' calculation for stripe_size.
4175 Fix lvchange output for -r auto setting if auto is already set.
4176 Add test case for readahead.
4177 Avoid ambiguous use of identifier error_message_produced.
4178 Begin syncing configure.in for merge/unification with device-mapper.
4179 Fix add_mirror_images not to dereference uninitialized log_lv upon failure.
4180 Don't call openlog for every debug line output by clvmd.
4181 Add --force to lvextend and lvresize.
4182 Fix vgchange not to activate component mirror volumes directly.
4183 Fix test directory clean up in make distclean.
4184
4185 Version 2.02.38 - 11th June 2008
4186 ================================
4187 Fix tracking of validity of PVs with no mdas in lvmcache.
4188 Fix return values for reporting commands when run with no PVs, LVs, or VGs.
4189 Add omitted unlock_vg() call when sigint_caught() during vg processing.
4190 Fix free_count when reading pool metadata.
4191 Fix segfault when using pvcreate on a device containing pool metadata.
4192 Fix segfault after _free_vginfo by remembering to remove vginfo from list.
4193 Tweak detection of invalid fid after changes to PVs in VG in _vg_read.
4194 Revert assuming precommitted metadata is live when activating (unnecessary).
4195 Drop cached metadata for disappearing VG in vgmerge.
4196 In script-processing mode, stop if any command fails.
4197 Warn if command exits with non-zero status code without a prior log_error.
4198 Check lv_count in vg_validate.
4199 Add --nameprefixes to reporting tools for field name prefix output format.
4200
4201 Version 2.02.37 - 6th June 2008
4202 ===============================
4203 Make clvmd-cman use a hash rather than an array for node updown info.
4204 Correct config file line numbers in messages when parsing comments.
4205 Drop cached metadata when renaming a VG.
4206 Allow for vginfo changing during _vg_read.
4207 Decode numbers in clvmd debugging output.
4208 Add missing deactivation after activation failure in lvcreate -Zy.
4209 When activating, if precommitted metadata is still cached, assume it's live.
4210 When removing LV symlinks, skip any where the VG name is not determined.
4211 Drop metadata cache if update fails in vg_revert or vg_commit.
4212 Avoid spurious duplicate VG messages referring to VGs that are gone.
4213 Drop dev_name_confirmed error message to debug level.
4214 Fix setpriority error message to signed int.
4215 Temporarily disable dmeventd mirror monitoring during lvchange --resync.
4216 Refactor some vginfo manipulation code.
4217 Add assertions to trap deprecated P_ and V_ lock usage.
4218 Add missing mutex around clvmd lvmcache_drop_metadata library call.
4219 Fix uninitialized mutex in clvmd if all daemons are not running at startup.
4220 Avoid using DLM locks with LCK_CACHE type P_ lock requests.
4221 When asked to drop cached committed VG metadata, invalidate cached PV labels.
4222 Drop metadata cache before writing precommitted metadata instead of after.
4223 Don't touch /dev in vgrename if activation is disabled.
4224
4225 Version 2.02.36 - 29th April 2008
4226 =================================
4227 Fix fsadm.sh to work with older blockdev, blkid & readlink binaries.
4228 Fix lvresize to pass new size to fsadm when extending device.
4229 Remove unused struct in clvmd-openais, and use correct node count.
4230 Fix nodes list in clvmd-openais, and allow for broadcast messages.
4231 Exclude VG_GLOBAL from internal concurrent VG lock counter.
4232 Fix vgsplit internal counting of snapshot LVs.
4233 Fix vgmerge snapshot_count when source VG contains snapshots.
4234 Simplify clvmd-openais by using non-async saLckResourceLock.
4235 Fix internal LV counter when a snapshot is removed.
4236 Fix metadata corruption writing lvm1-formatted metadata with snapshots.
4237 Fix lvconvert -m0 allocatable space check.
4238
4239 Version 2.02.35 - 15th April 2008
4240 =================================
4241 Drop cached VG metadata before and after committing changes to it.
4242 Rename P_global to P_#global.
4243 Don't attempt remote metadata backups of non-clustered VGs. (2.02.29)
4244 Don't store fid in VG metadata cache to avoid clvmd segfault. (2.02.34)
4245 Update vgsplit tests to verify loosening of active LV restriction.
4246 Update vgsplit to only restrict split with active LVs involved in split.
4247 Add lv_is_active() to determine whether an lv is active.
4248
4249 Version 2.02.34 - 10th April 2008
4250 =================================
4251 Improve preferred_names lvm.conf example.
4252 Fix vgdisplay 'Cur LV' field to match lvdisplay output.
4253 Fix lv_count report field to exclude hidden LVs.
4254 Add vg_is_clustered() helper function.
4255 Fix vgsplit to only move hidden 'snapshotN' LVs when necessary.
4256 Update vgsplit tests for lvnames on the cmdline.
4257 Update vgsplit man page to reflect lvnames on the cmdline.
4258 Update vgsplit to take "-n LogicalVolumeName" on the cmdline.
4259 Use clustered mirror log with pvmove in clustered VGs, if available.
4260 Fix some pvmove error status codes.
4261 Fix vgsplit error paths to release vg_to lock.
4262 Indicate whether or not VG is clustered in vgcreate log message.
4263 Mention default --clustered setting in vgcreate man page.
4264 Add config file overrides to clvmd when it reads the active LVs list.
4265 Fix vgreduce to use vg_split_mdas to check sufficient mdas remain.
4266 Add (empty) orphan VGs to lvmcache during initialization.
4267 Fix orphan VG name used for format_pool.
4268 Create a fid for internal orphan VGs.
4269 Update lvmcache VG lock state for all locking types now.
4270 Fix output if overriding command_names on cmdline.
4271 Add detection of clustered mirror log capability.
4272 Add check to vg_commit() ensuring VG lock held before writing new VG metadata.
4273 Add validation of LV name to pvmove -n.
4274 Make clvmd refresh the context correctly when lvm.conf is updated.
4275 Add some basic internal VG lock validation.
4276 Add per-command flags to control which commands use the VG metadata cache.
4277 Fix vgsplit locking of new VG (2.02.30).
4278 Avoid erroneous vgsplit error message for new VG. (2.02.29)
4279 Suppress duplicate message when lvresize fails because of invalid vgname.
4280 Cache VG metadata internally while VG lock is held.
4281 Fix redundant lvresize message if vg doesn't exist.
4282 Fix another allocation bug with clvmd and large node IDs.
4283 Add find_lv_in_lv_list() and find_pv_in_pv_list().
4284 Fix uninitialized variable in clvmd that could cause odd hangs.
4285 Add vgmerge tests.
4286 Add pvseg_is_allocated() for identifying a PV segment allocated to a LV.
4287 Add list_move() for moving elements from one list to another.
4288 Add 'is_reserved_lvname()' for identifying hidden LVs.
4289 Correct command name in lvmdiskscan man page.
4290 clvmd no longer crashes if it sees nodeids over 50.
4291 Fix potential deadlock in clvmd thread handling.
4292 Refactor text format initialization into _init_text_import.
4293 Escape double quotes and backslashes in external metadata and config data.
4294 Add functions for escaping double quotes in strings.
4295 Rename count_chars_len to count_chars.
4296 Use return_0 in a couple more places.
4297 Correct a function name typo in _line_append error message.
4298 Include limits.h in clvmd so it compiles with newer headers.
4299 Add VirtIO disks (virtblk) to filters.
4300 Fix resetting of MIRROR_IMAGE and VISIBLE_LV after removal of LV. (2.02.30)
4301 Fix remove_layer_from_lv to empty the LV before removing it. (2.02.30)
4302 Add missing no-longer-used segs_using_this_lv test to check_lv_segments.
4303 Remove redundant non-NULL tests before calling free in clvmd.c.
4304 Avoid a compiler warning: make is_orphan's parameter const.
4305 Fix lvconvert detection of mirror conversion in progress. (2.02.30)
4306 Avoid automatic lvconvert polldaemon invocation when -R specified. (2.02.30)
4307 Fix 'pvs -a' to detect VGs of PVs without metadata areas.
4308 Divide up internal orphan volume group by format type.
4309 Update usage message for clvmd.
4310 Fix clvmd man page not to print <br> and clarified debug options.
4311 Fix lvresize to support /dev/mapper prefix in the LV name.
4312 Fix unfilled parameter passed to fsadm from lvresize.
4313 Update fsadm to call lvresize if the partition size differs (with option -l).
4314 Fix fsadm to support VG/LV names.
4315
4316 Version 2.02.33 - 31st January 2008
4317 ===================================
4318 Fix mirror log name construction during lvconvert. (2.02.30)
4319 Make monitor_dev_for_events recurse through the stack of LVs.
4320 Clean up some more compiler warnings.
4321 Some whitespace tidy-ups.
4322 Use stack return macros throughout.
4323 Rely upon internally-cached PV labels while corresponding VG lock is held.
4324
4325 Version 2.02.32 - 29th January 2008
4326 ===================================
4327 Fix two check_lv_segments error messages to show whole segment.
4328 Refactor mirror log attachment code.
4329 Fix internal metadata corruption in lvchange --resync. (2.02.30)
4330 Fix new parameter validation in vgsplit and test mode. (2.02.30)
4331 Remove redundant cnxman-socket.h file from clvmd directory.
4332 Fix pvs, vgs, lvs error exit status on some error paths.
4333
4334 Version 2.02.31 - 19th January 2008
4335 ===================================
4336 Fix lvcreate --nosync not to wait for non-happening sync. (2.02.30)
4337 Add very_verbose lvconvert messages.
4338 Avoid readahead error message with default setting of lvcreate -M1. (2.02.29)
4339
4340 Version 2.02.30 - 17th January 2008
4341 ===================================
4342 Set default readahead to twice maximum stripe size.
4343 Reinstate VG extent size and stripe size defaults (halved). (2.02.29)
4344 Add lists of stacked LV segments using each LV to the internal metadata.
4345 Change vgsplit -l (for unimplemented --list) into --maxlogicalvolumes.
4346 Fix process_all_pvs to detect non-orphans with no MDAs correctly.
4347 Don't use block_on_error with mirror targets version 1.12 and above.
4348 Update vgsplit to accept vgcreate options when new VG is destination.
4349 Update vgsplit to accept existing VG as destination.
4350 lvconvert waits for completion of initial sync by default.
4351 Refactor vgcreate for parameter validation and add tests.
4352 Add new convert_lv field to lvs output.
4353 Print warning when lvm tools are running as non-root.
4354 Add snapshot dmeventd library (enables dmeventd snapshot monitoring).
4355 Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs.
4356 Fix a segfault if using pvs with --all argument. (2.02.29)
4357 Update --uuid argument description in man pages.
4358 Fix vgreduce PV list processing not to process every PV in the VG. (2.02.29)
4359 Extend lvconvert to use polldaemon.
4360 Add support for stacked mirrors.
4361 Major restructuring of pvmove and lvconvert layer manipulation code.
4362 Replace tools/fsadm with scripts/fsadm.sh.
4363 Append fields to report/pvsegs_cols_verbose.
4364 Permit LV segment fields with PV segment reports.
4365 Add seg_start_pe and seg_pe_ranges to reports.
4366
4367 Version 2.02.29 - 5th December 2007
4368 ===================================
4369 Make clvmd backup vg metadata on remote nodes.
4370 Refactor pvmove allocation code.
4371 Decode cluster locking state in log message.
4372 Change file locking state messages from debug to very verbose.
4373 Fix --addtag to drop @ prefix from name.
4374 Stop clvmd going haywire if a pre_function fails.
4375 Convert some vg_reads into vg_lock_and_reads.
4376 Avoid nested vg_reads when processing PVs in VGs and fix associated locking.
4377 Accept sizes with --readahead argument.
4378 Store size arguments as sectors internally.
4379 Attempt to remove incomplete LVs with lvcreate zeroing/activation problems.
4380 Add read_ahead activation code.
4381 Add activation/readahead configuration option and FMT_RESTRICTED_READAHEAD.
4382 Extend readahead arg to accept "auto" and "none".
4383 Add lv_read_ahead and lv_kernel_read_ahead fields to reports and lvdisplay.
4384 Prevent lvconvert -s from using same LV as origin and snapshot.
4385 Fix human-readable output of odd numbers of sectors.
4386 Add pv_mda_free and vg_mda_free fields to reports for raw text format.
4387 Add LVM2 version to 'Generated by' comment in metadata.
4388 Show 'not usable' space when PV is too large for device in pvdisplay.
4389 Ignore and fix up any excessive device size found in metadata.
4390 Fix error message when fixing up PV size in lvm2 metadata (2.02.11).
4391 Fix orphan-related locking in pvdisplay and pvs.
4392 Fix missing VG unlocks in some pvchange error paths.
4393 Add some missing validation of VG names.
4394 Rename validate_vg_name() to validate_new_vg_name().
4395 Change orphan lock to VG_ORPHANS.
4396 Change format1 to use ORPHAN as orphan VG name.
4397 Convert pvchange, pvdisplay, pvscan to use is_orphan()
4398 Add is_orphan_vg() and change all hard-coded checks to use it.
4399 Detect md superblocks version 1.0, 1.1 and 1.2.
4400 Add _alloc_pv() and _free_pv() from _pv_create() code and fix error paths.
4401 Add pv_dev_name() to access PV device name.
4402 Add const attributes to pv accessor functions.
4403 Refactor vg_add_snapshot() and lv_create_empty().
4404 Handle new sysfs subsystem/block/devices directory structure.
4405 Run test with LVM_SYSTEM_DIR pointing to private root and /dev dirs.
4406 Fix a bug in lvm_dump.sh checks for lvm/dmsetup binaries.
4407 Fix underquotations in lvm_dump.sh.
4408 Refactor lvcreate stripe and mirror parameter validation.
4409 Print --help output to stdout, not stderr.
4410 After a cmdline processing error, don't print help text but suggest --help.
4411 Add %PVS extents option to lvresize, lvextend, and lvcreate.
4412 Add 'make check' to run tests in new subdirectory 'test'.
4413 Moved the obsolete test subdirectory to old-tests.
4414 Cope with relative paths in configure --with-dmdir.
4415 Remove no-longer-correct restrictions on PV arg count with stripes/mirrors.
4416 Fix strdup memory leak in str_list_dup().
4417 Link with -lpthread when static SELinux libraries require that.
4418 Detect command line PE values that exceed their 32-bit range.
4419 Include strerror string in dev_open_flags' stat failure message.
4420 Move guts of pvresize into library.
4421 Avoid error when --corelog is provided without --mirrorlog. (2.02.28)
4422 Correct --mirrorlog argument name in man pages (not --log).
4423 Clear MIRROR_NOTSYNCED LV flag when converting from mirror to linear.
4424 Modify lvremove to prompt for removal if LV active on other cluster nodes.
4425 Add '-f' to vgremove to force removal of VG even if LVs exist.
4426
4427 Version 2.02.28 - 24th August 2007
4428 ==================================
4429 Fix clvmd logging so you can get lvm-level debugging out of it.
4430 Introduce VG_GLOBAL lock type for vgscan/pvscan to trigger clvmd -R.
4431 Change locking_flags from int to uint32_t.
4432 Fix clvmd -R, so it fully refreshes the caches.
4433 Change lvconvert_mirrors to use mirror segtype not striped.
4434 Fix lvconvert_mirrors detection of number of existing mirrors.
4435 Clean up numerous compiler warnings that appeared in recent releases.
4436 Remove several unused parameters from _allocate().
4437 Only permit --force, --verbose and --debug arguments to be repeated.
4438 Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
4439 Move guts of vgremove and lvremove into library, including yes_no_prompt.
4440 Allow clvmd debug to be turned on in a running daemon using clvmd -d [-C].
4441 Update to use autoconf 2.61, while still supporting 2.57.
4442 Add more cluster info to lvmdump.
4443 Add further const attributes throughout.
4444 Add support for renaming mirrored LVs.
4445 Factor out core of lvrename() to library function.
4446 Add --mirrorlog argument to specify log type for mirrors.
4447 Don't attempt to monitor devices if their creation failed in _lv_activate.
4448 Don't leak a file descriptor in fcntl_lock_file() when fcntl fails.
4449 Replace create_dir with dm_create_dir.
4450 Detect stream write failure reliably with lvm_fclose using dm_fclose.
4451 Fix clvmd if compiled with gulm support. (2.02.26)
4452 Fix lvdisplay man page to say LV size is reported in sectors, not KB.
4453 Add vg_lock_and_read() external library function.
4454 Fix loading of persistent cache if cache_dir is used. (2.02.23)
4455 Reduce _compare_paths lstat error message from log_error to log_very_verbose.
4456 Create util.h with last_path_component replacing strdup + basename.
4457 Use gcc's printf attribute wherever possible.
4458 In _line_append, use "sizeof buf - 1" rather than equivalent "4095".
4459 Introduce is_same_inode macro, now including a comparison of st_dev.
4460 Don't leak a file descriptor in _lock_file() when flock fails.
4461 Add SUN's LDOM virtual block device (vdisk) and ps3disk to filters.
4462 Split metadata-external.h out from metadata.h for the tools to use.
4463
4464 Version 2.02.27 - 17th July 2007
4465 ================================
4466 Fix snapshot cow area deactivation if origin is not active. (2.02.13)
4467 Fix configure libdevmapper.h check when --with-dmdir is used.
4468 Turn _add_pv_to_vg() into external library function add_pv_to_vg().
4469 Add pv_by_path() external library function.
4470 Tidy clvmd-openais of redundant bits, and improve an error report.
4471 Cope with find_seg_by_le() failure in check_lv_segments().
4472 Call dev_iter_destroy() if _process_all_devs() is interrupted by sigint.
4473 Add vg_mda_count and pv_mda_count columns to reports.
4474 Fix dumpconfig to use log_print instead of stdout directly.
4475 Remove unused parameter 'fid' from _add_pv_to_vg.
4476 Add kernel and device-mapper targets versions to lvmdump.
4477 Replace BSD (r)index with C89 str(r)chr.
4478 Handle vgsplit of an entire VG as a vgrename.
4479 Reinitialise internal lvmdiskscan variables when called repeatedly.
4480 Fix missing lvm_shell symbol in lvm2cmd library. (2.02.23)
4481 Add vg_status function and clean up vg->status in tools directory.
4482 Add --ignoremonitoring to disable all dmeventd interaction.
4483 Remove get_ prefix from get_pv_* functions.
4484 clvmd-openais now uses cpg_local_get() to get nodeid, rather than Clm.
4485 Print warnings to stderr instead of stdout.
4486
4487 Version 2.02.26 - 15th June 2007
4488 ================================
4489 Update vgcfgrestore man page.
4490 Allow keyboard interrupt during user prompts when appropriate.
4491 Remove unused clvmd system-lv code.
4492 Replace many physical_volume struct dereferences with new get_pv_* functions.
4493 Suppress a benign compile-time warning.
4494 Convert find_pv_in_vg_by_uuid and pv_create to use PV handles.
4495 Add wrappers to some functions in preparation for external LVM library.
4496 Add -f to vgcfgrestore to list metadata backup files.
4497 Add vg_check_status to consolidate vg status checks and error messages.
4498 Add pvdisplay --maps implementation.
4499 Remove unsupported LVM1 options from vgcfgrestore man page.
4500 Update vgcfgrestore man page to show mandatory VG name.
4501 Update vgrename man page to include UUID and be consistent with lvrename.
4502 Add (experimental) OpenAIS support to clvmd.
4503 Fix deactivation code to follow dependencies and remove symlinks.
4504 Fix and clarify vgsplit error messages.
4505 Fix a segfault in device_is_usable() if a device has no table.
4506 Add some more debug messages to clvmd startup.
4507 Misc clvmd cleanups.
4508
4509 Version 2.02.25 - 27th April 2007
4510 =================================
4511 Fix get_config_uint64() to read a 64-bit value not a 32-bit one.
4512 Add -Wformat-security and change one fprintf() to fputs().
4513 Move regex functions into libdevmapper.
4514 Change some #include lines to search only standard system directories.
4515 Add devices/preferred_names config regex list for displayed device names.
4516 Free a temporary dir string in fcntl_lock_file() after use.
4517 Fix a dm_pool_destroy() in matcher_create().
4518 Introduce goto_bad macro.
4519 Fix warnings on x86_64 involving ptrdiff_t in log_error messages.
4520 Update pvck to include text metadata area and record detection.
4521 Add support functions for token counting in config file extracts.
4522 Update pvck to read labels on disk, with --labelsector parameter.
4523 Add count_chars and count_chars_len functions.
4524 Add /sys/block listings to lvm_dump.sh.
4525 Make lvm_dump.sh list /dev recursively.
4526 Fix thread race in clvmd.
4527 Add scan_sector param to label_read and _find_labeller.
4528 Make clvmd cope with quorum devices.
4529 Add extra internal error checking to clvmd.
4530 Add dev_read_circular.
4531 Add pvck command stub.
4532 Update lists of attribute characters in man pages.
4533 Change cling alloc policy attribute character from 'C' to l'.
4534 Fix creation and conversion of mirrors with tags.
4535 Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata).
4536 Split metadata areas in vgsplit properly.
4537
4538 Version 2.02.24 - 19th March 2007
4539 =================================
4540 Fix processing of exit status in init scripts
4541 Fix vgremove to require at least one vg argument.
4542 Fix reading of striped LVs in LVM1 format.
4543 Flag nolocking as clustered so clvmd startup sees clustered LVs. (2.02.10)
4544 Add a few missing pieces of vgname command line validation.
4545 Support the /dev/mapper prefix on most command lines.
4546
4547 Version 2.02.23 - 8th March 2007
4548 ================================
4549 Fix vgrename active LV check to ignore differing vgids.
4550 Remove no-longer-used uuid_out parameter from activation info functions.
4551 Fix two more segfaults if an empty config file section encountered.
4552 Move .cache file into a new /etc/lvm/cache directory by default.
4553 Add devices/cache_dir & devices/cache_file_prefix, deprecating devices/cache.
4554 Create directory in fcntl_lock_file() if required.
4555 Exclude readline support from lvm.static.
4556 Fix a leak in a reporting error path (2.02.19).
4557
4558 Version 2.02.22 - 13th February 2007
4559 ====================================
4560 Correct -b and -P on a couple of man pages.
4561 Add global/units to example.conf.
4562 Fix loading of segment_libraries.
4563 If a PV reappears after it was removed from its VG, make it an orphan.
4564 Don't update metadata automatically if VGIDs don't match.
4565 Fix some vgreduce --removemissing command line validation.
4566
4567 Version 2.02.21 - 30th January 2007
4568 ===================================
4569 Add warning to lvm2_monitoring_init_rhel4 if attempting to stop monitoring.
4570 Fix vgsplit to handle mirrors.
4571 Reorder fields in reporting field definitions.
4572 Fix vgs to treat args as VGs even when PV fields are displayed.
4573 Fix md signature check to handle both endiannesses.
4574
4575 Version 2.02.20 - 25th January 2007
4576 ===================================
4577 dmeventd mirror sets ignore_suspended_devices and avoids scanning mirrors.
4578 Add devices/ignore_suspended_devices to ignore suspended dm devices.
4579 Add some missing close() and fclose() return code checks.
4580 Fix exit statuses of reporting tools (2.02.19).
4581 Add init script for dmeventd monitoring.
4582 lvm.static no longer interacts with dmeventd unless explicitly asked to.
4583 Add field definitions to report help text.
4584 Remove unnecessary cmd arg from target_*monitor_events().
4585 Add private variable to dmeventd shared library interface.
4586 Long-lived processes write out persistent dev cache in refresh_toolcontext().
4587 Fix refresh_toolcontext() always to wipe persistent device filter cache.
4588 Add is_long_lived to toolcontext.
4589 Add --clustered to man pages.
4590 Streamline dm_report_field_* interface.
4591 Change remaining dmeventd terminology 'register' to 'monitor'.
4592 Update reporting man pages.
4593 No longer necessary to specify alignment type for report fields.
4594
4595 Version 2.02.19 - 17th January 2007
4596 ===================================
4597 Fix a segfault if an empty config file section encountered.
4598 Move basic reporting functions into libdevmapper.
4599 Fix partition table processing after sparc changes (2.02.16).
4600 Fix cmdline PE range processing segfault (2.02.13).
4601 Some libdevmapper-event interface changes.
4602 Report dmeventd mirror monitoring status.
4603 Fix dmeventd mirror status line processing.
4604
4605 Version 2.02.18 - 11th January 2007
4606 ===================================
4607 Revised libdevmapper-event interface for dmeventd.
4608 Remove dmeventd mirror status line word limit.
4609 Use CFLAGS when linking so mixed sparc builds can supply -m64.
4610 Prevent permission changes on active mirrors.
4611 Print warning instead of error message if lvconvert cannot zero volume.
4612 Add snapshot options to lvconvert man page.
4613 dumpconfig accepts a list of configuration variables to display.
4614 Change dumpconfig to use --file to redirect output to a file.
4615 Avoid vgreduce error when mirror code removes the log LV.
4616 Remove 3 redundant AC_MSG_RESULTs from configure.in.
4617 Free memory in _raw_read_mda_header() error paths.
4618 Fix ambiguous vgsplit error message for split LV.
4619 Fix lvextend man page typo.
4620 Add configure --with-dmdir to compile against a device-mapper source tree.
4621 Use no flush suspending for mirrors.
4622 Add dmeventd_mirror register_mutex, tidy initialisation & add memlock.
4623 Fix create mirror with name longer than 22 chars.
4624 Fix some activate.c prototypes when compiled without devmapper.
4625 Fix dmeventd mirror to cope if monitored device disappears.
4626
4627 Version 2.02.17 - 14th December 2006
4628 ====================================
4629 Add missing pvremove error message when device doesn't exist.
4630 When lvconvert allocates a mirror log, respect parallel area constraints.
4631 Use loop to iterate through the now-ordered policy list in _allocate().
4632 Check for failure to allocate just the mirror log.
4633 Introduce calc_area_multiple().
4634 Support mirror log allocation when there is only one PV: area_count now 0.
4635 Fix detection of smallest area in _alloc_parallel_area() for cling policy.
4636 Add manpage entry for clvmd -T
4637 Fix gulm operation of clvmd, including a hang when doing lvchange -aey
4638 Fix hang in clvmd if a pre-command failed.
4639
4640 Version 2.02.16 - 1st December 2006
4641 ===================================
4642 Fix VG clustered read locks to use PR not CR.
4643 Adjust some alignments for ia64/sparc.
4644 Fix mirror segment removal to use temporary error segment.
4645 Always compile debug logging into clvmd.
4646 Add startup timeout to RHEL4 clvmd startup script.
4647 Add -T (startup timeout) switch to clvmd.
4648 Improve lvm_dump.sh robustness.
4649 Update lvm2create_initrd to support gentoo.
4650
4651 Version 2.02.15 - 21st November 2006
4652 ====================================
4653 Fix clvmd_init_rhel4 line truncation (2.02.14).
4654 Install lvmdump by default.
4655 Fix check for snapshot module when activating snapshot.
4656 Fix pvremove error path for case when PV is in use.
4657 Warn if certain duplicate config file entries are seen.
4658 Enhance lvm_dump.sh for sysreport integration and add man page.
4659 Fix --autobackup argument which could never disable backups.
4660 Fix a label_verify error path.
4661
4662 Version 2.02.14 - 10th November 2006
4663 ====================================
4664 Fix adjusted_mirror_region_size() to handle 64-bit size.
4665 Add some missing bounds checks on 32-bit extent counters.
4666 Add Petabyte and Exabyte support.
4667 Fix lvcreate error message when 0 extents requested.
4668 lvremove man page: volumes must be cluster inactive before being removed.
4669 Protect .cache manipulations with fcntl locking.
4670 Change .cache timestamp comparisons to use ctime.
4671 Fix mirror log LV writing to set all bits in whole LV.
4672 Fix clustered VG detection and default runlevels in clvmd_init_rhel4.
4673 Fix high-level free space check for partial allocations.
4674
4675 Version 2.02.13 - 27th October 2006
4676 ===================================
4677 Add couple of missing files to tools/Makefile CLEAN_TARGETS.
4678 When adding snapshot leave cow LV mapped device active after zeroing.
4679 Fix a clvmd debug message.
4680 Add dev_flush() to set_lv().
4681 Add lvchange --resync.
4682 Perform high-level free space check before each allocation attempt.
4683 Don't allow a node to remove an LV that's exclusively active on anther node.
4684 Cope if same PV is included more than once in cmdline PE range list.
4685 Set PV size to current device size if it is found to be zero.
4686 Add segment parameter to target_present functions.
4687
4688 Version 2.02.12 - 16th October 2006
4689 ===================================
4690 Fix pvdisplay to use vg_read() for non-orphans.
4691 Fall back to internal locking if external locking lib is missing or fails.
4692 Retain activation state after changing LV minor number with --force.
4693 Propagate clustered flag in vgsplit and require resizeable flag.
4694
4695 Version 2.02.11 - 12th October 2006
4696 ===================================
4697 Add clvmd function to return the cluster name. not used by LVM yet.
4698 Add cling allocation policy.
4699 Change _check_contiguous() to use _for_each_pv().
4700 Extend _for_each_pv() to allow termination without error.
4701 Abstract _is_contiguous().
4702 Remove duplicated pv arg from _check_contiguous().
4703 Accept regionsize with lvconvert.
4704 Add report columns with underscore before field names ending 'size'.
4705 Correct regionsize default on lvcreate man page (MB).
4706 Fix clvmd bug that could cause it to die when a node with a long name crashed.
4707 Add device size to text metadata.
4708 Fix format_text mda_setup pv->size and pv_setup pe_count calculations.
4709 Fix _for_each_pv() for mirror with core log.
4710 Add lvm_dump.sh script to create a tarball of debugging info from a system.
4711 Capture error messages in clvmd and pass them back to the user.
4712 Remove unused #defines from filter-md.c.
4713 Make clvmd restart init script wait until clvmd has died before starting it.
4714 Add -R to clvmd which tells running clvmd to reload their device cache.
4715 Add LV column to reports listing kernel modules needed for activation.
4716 Show available fields if report given invalid field. (e.g. lvs -o list)
4717 Add timestamp functions with --disable-realtime configure option.
4718 Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg.
4719 Fix two potential NULL pointer derefs in error cases in vg_read().
4720 Separate --enable-cluster from locking lib options in lvmconf.sh.
4721 Add a missing comma in lvcreate man page.
4722
4723 Version 2.02.10 - 19th September 2006
4724 =====================================
4725 Fix lvconvert mirror change case detection logic.
4726 Fix mirror log detachment so it correctly becomes a standalone LV.
4727 Extend _check_contiguous() to detect single-area LVs.
4728 Include mirror log (untested) in _for_each_pv() processing.
4729 Use MIRROR_LOG_SIZE constant.
4730 Remove struct seg_pvs from _for_each_pv() to generalise.
4731 Avoid adding duplicates to list of parallel PVs to avoid.
4732 Fix several incorrect comparisons in parallel area avoidance code.
4733 Fix segment lengths when flattening existing parallel areas.
4734 Log existing parallel areas prior to allocation.
4735 Fix mirror log creation when activation disabled.
4736 Don't attempt automatic recovery without proper locking.
4737 When using local file locking, skip clustered VGs.
4738 Add fallback_to_clustered_locking and fallback_to_local_locking parameters.
4739 lvm.static uses built-in cluster locking instead of external locking.
4740 Don't attempt to load shared libraries if built statically.
4741 Change default locking_lib to liblvm2clusterlock.so.
4742 Add skip_dev_dir() to process command line VGs.
4743 Stop clvmd complaining about nodes that have left the cluster.
4744 Move lvm_snprintf(), split_words() and split_dm_name() into libdevmapper.
4745 Add lvconvert man page.
4746 Add mirror options to man pages.
4747 Prevent mirror renames.
4748 Move CMDLIB code into separate file and record whether static build.
4749
4750 Version 2.02.09 - 17th August 2006
4751 ==================================
4752 Fix PE_ALIGN for pagesize over 32KB.
4753 Separate out LVM1_PE_ALIGN and pe_align().
4754 Add lvm_getpagesize wrapper.
4755 Add --maxphysicalvolumes to vgchange.
4756
4757 Version 2.02.08 - 15th August 2006
4758 ==================================
4759 Add checks for duplicate LV name, lvid and PV id before writing metadata.
4760 Report all sanity check failures, not just the first.
4761 Fix missing lockfs on first snapshot creation.
4762 Add unreliable --trustcache option to reporting commands.
4763 Fix locking for mimage removal.
4764 Fix clvmd_init_rhel4 'status' exit code.
4765
4766 Version 2.02.07 - 17th July 2006
4767 ================================
4768 Fix activation logic in lvchange --persistent.
4769 Don't ignore persistent minor numbers when activating.
4770 Use RTLD_GLOBAL when loading shared libraries.
4771 Add some forgotten memlock checks to _vg_read to protect against full scans.
4772 Add mutex to dmeventd_mirror to avoid concurrent execution.
4773 Fix vgreduce --removemissing to return success if VG is already consistent.
4774 Fix return code if VG specified on command line is not found.
4775 Fix PV tools to include orphaned PVs in default output again.
4776 Fixed unaligned access when using clvm.
4777 Fix an extra dev_close in a label_read error path.
4778 Append patches to commit emails.
4779 Fix target_register_events args.
4780 Prevent snapshots of mirrors.
4781 Add DISTCLEAN_TARGETS to make template for configure.h.
4782 More fixes to error paths.
4783 Fix lvcreate corelog validation.
4784 Add --config for overriding most config file settings from cmdline.
4785 Quote arguments when printing command line.
4786 Remove linefeed from 'initialising logging' message.
4787 Add 'Completed' debug message.
4788 Don't attempt library exit after reloading config files.
4789 Always compile with libdevmapper, even if device-mapper is disabled.
4790
4791 Version 2.02.06 - 12th May 2006
4792 ===============================
4793 Propagate --monitor around cluster.
4794 Add --monitor to vgcreate and lvcreate to control dmeventd registration.
4795 Filter LCK_NONBLOCK in clvmd lock_vg.
4796 Add --nosync to lvcreate with LV flag NOTSYNCED.
4797 Use mirror's uuid for a core log.
4798 Add mirror log fault-handling policy.
4799 Improve mirror warning messages and tidy dmeventd syslog output.
4800 Propagate nosync flag around cluster.
4801 Allow vgreduce to handle mirror log failures.
4802 Add --corelog to lvcreate and lvconvert.
4803 Create a log header for replacement in-sync mirror log.
4804 Use set_lv() and dev_set() to wipe sections of devices.
4805 Add mirror_in_sync() flag to avoid unnecessary resync on activation.
4806 Add mirror_library description to example.conf.
4807 Fix uuid_from_num() buffer overrun.
4808 Make SIZE_SHORT the default for display_size().
4809 Fix some memory leaks in error paths found by coverity.
4810 Use C99 struct initialisers.
4811 Move DEFS into configure.h.
4812 Clean-ups to remove miscellaneous compiler warnings.
4813 Improve stripe size validation.
4814 Increase maximum stripe size limit to physical extent size for lvm2 metadata.
4815 Fix activation code to check for pre-existing mirror logs.
4816 Tighten region size validation.
4817 Ignore empty strings in config files.
4818 Require non-zero regionsize and document parameter on lvcreate man page.
4819 Invalidate cache if composition of VG changed externally.
4820
4821 Version 2.02.05 - 21st April 2006
4822 =================================
4823 Fix vgid string termination in recent cache code.
4824
4825 Version 2.02.04 - 19th April 2006
4826 =================================
4827 Check for libsepol.
4828 Add some cflow & scope support.
4829 Separate out DEFS from CFLAGS.
4830 Remove inlines and use unique function names.
4831
4832 Version 2.02.03 - 14th April 2006
4833 =================================
4834 vgrename accepts vgid and exported VG.
4835 Add --partial to pvs.
4836 When choosing between identically-named VGs, also consider creation_host.
4837 Provide total log suppression with 2.
4838 Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct.
4839 Add vgid to struct physical_volume and pass with vg_name to some functions.
4840 If two or more VGs are found with the same name, use one that is not exported.
4841 Whenever vgname is captured, also capture vgid and whether exported.
4842 Remove an incorrect unlock_vg() from process_each_lv().
4843 Update extent size information in vgchange and vgcreate man pages.
4844 Introduce origin_from_cow() and lv_is_visible().
4845 pvremove without -f now fails if there's no PV label.
4846 Support lvconvert -s.
4847 Suppress locking library load failure message if --ignorelockingfailure.
4848 Propagate partial mode around cluster.
4849 Fix archive file expiration.
4850 Fix dmeventd build.
4851 clvmd now uses libcman rather than cman ioctls.
4852 clvmd will allow new cman to shutdown on request.
4853
4854 Version 2.02.02 - 7th February 2006
4855 ===================================
4856 Add %.so: %.a make template rule.
4857 Switchover library building to use LIB_SUFFIX.
4858 Only do lockfs filesystem sync when suspending snapshots.
4859 Always print warning if activation is disabled.
4860 vgreduce removes mirror images.
4861 Add --mirrorsonly to vgreduce.
4862 vgreduce replaces active LVs with error segment before removing them.
4863 Set block_on_error parameter if available.
4864 Add target_version.
4865 Add details to format1 'Invalid LV in extent map' error message.
4866 Fix lvscan snapshot full display.
4867 Bring lvdisplay man page example into line.
4868 Add mirror dmeventd library.
4869 Add some activation logic to remove_mirror_images().
4870 lvconvert can remove specified PVs from a mirror.
4871 lvconvert turns an existing LV into a mirror.
4872 Allow signed mirrors arguments.
4873 Move create_mirror_log() into toollib.
4874 Determine parallel PVs to avoid with ALLOC_NORMAL allocation.
4875 Fix lv_empty.
4876
4877 Version 2.02.01 - 23rd November 2005
4878 ====================================
4879 Fix lvdisplay cmdline to accept snapshots.
4880 Fix open RO->RW promotion.
4881 Fix missing vg_revert in lvcreate error path.
4882
4883 Version 2.02.00 - 10th November 2005
4884 ====================================
4885 Extend allocation areas to avoid overflow with contiguous with other PVs.
4886 Stop lvcreate attempting to wipe zero or error segments.
4887 Added new lvs table attributes.
4888 Separated out activation preload.
4889 Moved activation functions into libdevmapper.
4890 Fixed build_dm_name.
4891 Add return macros.
4892 Added xen xvd devices.
4893 Clear up precommitted metadata better.
4894 A pvresize implementation.
4895 Fix contiguous allocation when there are no preceding segments.
4896 Add mirror_seg pointer to lv_segment struct.
4897 Only keep a device open if it's known to belong to a locked VG.
4898 Fix lvdisplay to show all mirror destinations.
4899 Replacement suspend code using libdevmapper dependency tree.
4900 Add DEFS to make.tmpl.
4901 Use dm_is_dm_major instead of local copy.
4902 Allow mapped devices to be used as PVs.
4903 Move set_selinux_context into libdevmapper.
4904 Fix automatic text metadata buffer expansion (using macro).
4905 Cache formatted text metadata buffer between metadata area writes.
4906 Add pe_start field to pvs.
4907 Add 'LVM-' prefix to uuids.
4908 Split lv_segment_area from lv_segment to permit extension.
4909 Replacement deactivation code using libdevmapper dependency tree.
4910 Simplify dev_manager_info().
4911 Attempt to load missing targets using modprobe.
4912 Add -a to lvscan.
4913 Move mknodes into libdevmapper.
4914 Move bitset, hash, pool and dbg_malloc into libdevmapper.
4915
4916 Version 2.01.15 - 16th October 2005
4917 ===================================
4918 Refuse to run pvcreate/pvremove on devices we can't open exclusively.
4919 Use ORPHAN lock definition throughout.
4920 Validate chunksize in lvcreate.
4921 Reduce chunksize limit to 512k.
4922 Fix chunksize field in reports.
4923 Don't hide snapshots from default 'lvs' output.
4924 Add is_dm_major() for use in duplicate device detection in lvmcache_add().
4925 Really switch device number in lvmcache when it says it is doing so.
4926 Option for bitset memory allocation using malloc as well as pool.
4927 Don't assume exactly two mirrors when parsing mirror status.
4928 Suppress fsync() error message on filesystems that don't support it.
4929 Fix yes_no_prompt() error handling.
4930 Add lvm.conf comment warning against multiple filter lines.
4931 Tidy lvmconf.sh.
4932 Add format1 dev_write debug messages.
4933 Add clustered VG attribute to report.
4934 Move lvconvert parameters into struct lvconvert_params.
4935 Add clustered VG flag to LV lock requests.
4936 Change LV locking macros to take lv instead of lvid.
4937 Prepend 'cluster' activation parameter to mirror log when appropriate.
4938 Pass exclusive flag to lv_activate and on to target activation code.
4939 Prevent snapshot creation in a clustered VG for now.
4940 Factor out adjusted_mirror_region_size() and generate_log_name_format().
4941 Move compose_log_line() into mirror directory.
4942 Factor out _get_library_path().
4943 Don't kill idling clvmd threads.
4944 clvmd no longer takes out locks for non-clustered LVs.
4945 Recognise ATA over Ethernet (aoe) devices.
4946
4947 Version 2.01.14 - 4th August 2005
4948 =================================
4949 Fix lvconvert PV parameter in help string.
4950 Prevent snapshots getting activated in a clustered VG.
4951 Separate out _build_dev_string.
4952 Move zero_lv to toollib.
4953 Fix pool format handler to work with pv segment code.
4954
4955 Version 2.01.13 - 13th July 2005
4956 ================================
4957 Fix pvmove segment splitting.
4958 Abstract vg_validate.
4959 Only make one attempt at contiguous allocation.
4960 Fix lvm1 format metadata read.
4961 Fix lvm1 format non-mirror lvcreate.
4962
4963 Version 2.01.12 - 14th June 2005
4964 ================================
4965 Various allocation-related pvmove fixes.
4966 Log an error if clvmd can't resolve a host name got from CCS.
4967 Fix potential spin loop in clvmd.
4968
4969 Version 2.01.11 - 13th June 2005
4970 ================================
4971 Added lvmconf.sh.
4972 Use matchpathcon mode parameter.
4973 Don't defer closing dead FDs in clvmd.
4974 Remove hard-coded 64k text metadata writing restriction.
4975 Make VG name restrictions consistent.
4976 Introduce lvconvert. So far only removes mirror images.
4977 Allow mirror images to be resized.
4978 Allow mirror images to have more than one segment.
4979 Centralise restrictions on LV names.
4980 Always insert an intermediate layer for mirrors.
4981 Suppress hidden LVs from reports unless --all is given.
4982 Use square brackets for hidden LVs in reports.
4983 Allow the creation of mirrors with contiguous extents.
4984 Always perform sanity checks against metadata before committing it to disk.
4985 Split lv_extend into two steps: choosing extents + allocation to LV(s).
4986 Add mirror log region size to metadata.
4987 Use list_iterate_items throughout and add list*back macros.
4988 Introduce seg_ macros to access areas.
4989 Add segtype_is_ macros.
4990 Support tiny metadata areas for pool conversions.
4991 Mirror activation handles disk log as well as core.
4992 Activation code recognises mirror log dependency.
4993 Add mirror_log and regionsize fields to report.
4994 Fix non-orphan pvchange -u.
4995 Fix vgmerge to handle duplicate LVIDs.
4996 Move archiver code from tools into library.
4997 vgscan/change/display/vgs automatically create metadata backups if needed.
4998 Merge cloned allocation functions.
4999 Fix contiguous allocation policy with linear.
5000 Cope with missing format1 PVs again.
5001 Remove lists of free PV segments.
5002 Simplify pv_maps code and remove slow bitset algorithm.
5003 Red-Hat-ify the clvmd rhel4 initscript.
5004 %Zu->%zu
5005 Fix loopfiles alias alloc & mem debugging.
5006 Un-inline dbg_strdup.
5007 lv_reduce tidying.
5008 Remove some unnecessary parameters.
5009 Introduce seg_is macros.
5010
5011 Version 2.01.10 - 3rd May 2005
5012 ==============================
5013 Don't create backup and archive dirs till needed.
5014 Reinstate full PV size when removing from VG.
5015 Support loopfiles for testing.
5016 Tidy lv_segment interface.
5017 pv_segment support.
5018 vgchange --physicalextentsize
5019 Internal snapshot restructuring.
5020 Remove unused internal non-persistent snapshot option.
5021 Allow offline extension of snapshot volumes.
5022 Move from 2-step to 3-step on-disk metadata commit.
5023 Scan ramdisks too and allow non-O_DIRECT fallback.
5024 Annotate, tidy and extend list.h.
5025 Alignment tidying.
5026 Make clvmd work around some "bugs" in gulm's node state notifications.
5027 Tidy clvmd's SIGHUP handler
5028
5029 Version 2.01.09 - 4th April 2005
5030 ================================
5031 Add --ignorelockingfailure to vgmknodes.
5032 clvmd: Don't allow user operations to start until the lvm thread is fully up.
5033 clvmd-gulm: set KEEPALIVE on sockets.
5034
5035 Version 2.01.08 - 22nd March 2005
5036 =================================
5037 Add clustered attribute so vgchange can identify clustered VGs w/o locking.
5038 Improve detection of external changes affecting internal cache.
5039 Add 'already in device cache' debug message.
5040 Add -a to pvdisplay -C.
5041 Avoid rmdir opendir error messages when dir was already removed.
5042 Tighten signal handlers.
5043 Avoid some compiler warnings.
5044 Additional rename failure error message.
5045 read/write may be macros.
5046 clvmd: don't take out lvm thread lock at startup, it only protects jobs list.
5047
5048 Version 2.01.07 - 8th March 2005
5049 ================================
5050 Cope with new devices appearing by rescanning /dev if a uuid can't be found.
5051 Remove DESTDIR from LVM_SHARED_PATH.
5052 clvmd fixes: make FDs close-on-exec
5053 gulm unlocks VG & orphan locks at startup in case they are stale
5054 gulm now unlocks VG & orphan locks if client dies.
5055
5056 Version 2.01.06 - 1st March 2005
5057 ================================
5058 Suppress 'open failed' error messages during scanning.
5059 Option to suppress warnings of file descriptors left open.
5060 Fix default value of metadatacopies in documentation (2->1).
5061 Fix clvmd-gulm locking.
5062 ./configure --enable-debug now enables debugging code in clvmd.
5063 Fix clvmd-gulm node up/down code so it actually works.
5064 clvmd-gulm now releases locks when shut down.
5065
5066 Version 2.01.05 - 18th February 2005
5067 ====================================
5068 Static binary invokes dynamic binary if appropriate.
5069 Make clvmd config check a little more tolerant.
5070 gulm clvmd can now cope with >1 message arriving in a TCP message.
5071
5072 Version 2.01.04 - 9th February 2005
5073 ===================================
5074 Add fixed offset to imported pool minor numbers.
5075 Update binary pathnames in clvmd_init_rhel4.
5076 lvm2cmd.so should skip the check for open fds.
5077 Remove unused -f from pvmove.
5078 Gulm clvmd doesn't report "connection refused" errors.
5079 clvmd does a basic config file sanity check at startup.
5080 Fix potential thread shutdown race in clvmd.
5081
5082 Version 2.01.03 - 1st February 2005
5083 ===================================
5084 More 64-bit display/report fixes.
5085 More informative startup mesg if can't create /etc/lvm.
5086 Fix snapshot device size bug (since 2.01.01).
5087 clvmd announces startup and cluster connection in syslog.
5088 Gulm clvmd doesn't hang trying to talk to a rebooted node.
5089 Gulm clvmd doesn't print cman error on startup.
5090
5091 Version 2.01.02 - 21st January 2005
5092 ===================================
5093 Update clvmd_init_rhel4: use lvm.static and don't load dlm.
5094 Fix some size_t printing.
5095 Fix 64 bit xlate consts.
5096 Split out pool sptype_names to avoid unused const.
5097 Always fail if random id generation fails.
5098 Recognise gnbd devices.
5099 Fix clvmd startup bug introduced in cman/gulm amalgamation.
5100 Improve reporting of node-specific locking errors.
5101
5102 Version 2.01.01 - 19th January 2005
5103 ===================================
5104 Fix clvmd lv_info_by_lvid open_count.
5105 Store snapshot and origin sizes separately.
5106 Update vgcreate man page.
5107
5108 Version 2.01.00 - 17th January 2005
5109 ===================================
5110 Fix vgscan metadata auto-correction.
5111 Only ask libdevmapper for open_count when we need it.
5112 Adjust RHEL4 clvmd init script priority.
5113 Enable building of CMAN & GULM versions of clvmd into a single binary
5114
5115 Version 2.00.33 - 7th January 2005
5116 ==================================
5117 pvcreate wipes first 4 sectors unless given --zero n.
5118 gulm clvmd now uses new ccsd key names.
5119 gulm clvmd now doesn't ignore the first node in cluster.conf
5120 Improve clvmd failure message if it's already running.
5121 Allow user to kill clvmd during initialisation.
5122 Fix off-by-one error in cluster_locking that could cause read hangs.
5123
5124 Version 2.00.32 - 22nd December 2004
5125 ====================================
5126 Drop static/dl restriction for now.
5127 Fix an error fprintf.
5128 Fix vgdisplay -s. Breaks (undocumented) lvs/pvs/vgs -s instead for now.
5129 Fix device reference counting on re-opens.
5130 Ignore sysfs symlinks when DT_UNKNOWN.
5131 Add clvmd init script for RHEL4.
5132 Skip devices that are too small to be PVs.
5133 Fix pvchange -x segfault with lvm2-format orphan.
5134 Cope with empty msdos partition tables.
5135 Add CONTRIBUTORS file.
5136
5137 Version 2.00.31 - 12th December 2004
5138 ====================================
5139 Reopen RO file descriptors RW if necessary.
5140
5141 Version 2.00.30 - 10th December 2004
5142 ====================================
5143 Additional device-handling debug messages.
5144 Additional verbosity level -vvvv includes line numbers and backtraces.
5145 Verbose messages now go to stderr not stdout.
5146 Close any stray file descriptors before starting.
5147 Refine partitionable checks for certain device types.
5148 Allow devices/types to override built-ins.
5149 Fix lvreduce man page .i->.I
5150 Fix vgsplit man page title.
5151 Fix clvmd man makefile.
5152 Extend dev_open logging.
5153 Make clvmd_fix_conf.sh UNDOable.
5154
5155 Version 2.00.29 - 27th November 2004
5156 ====================================
5157 xlate compilation fix.
5158
5159 Version 2.00.28 - 27th November 2004
5160 ====================================
5161 Fix partition table & md signature detection.
5162 Minor configure/makefile tidy.
5163 Export version.h from tools for clvmd.
5164
5165 Version 2.00.27 - 24th November 2004
5166 ====================================
5167 Trap large memory allocation requests.
5168 Fix to partition table detection code.
5169 Improve filter debug mesgs.
5170 Make clvmd_fix_conf.sh UNDOable
5171
5172 Version 2.00.26 - 23rd November 2004
5173 ====================================
5174 Improve pool debugging stats.
5175 Detect partition table signature.
5176 pvcreate wipes md superblocks. (With --uuid or --restorefile it prompts.)
5177 Separate out md superblock detection code.
5178 Prevent snapshot origin resizing.
5179 Improve a vgremove error message.
5180 Update some man pages.
5181 Allow y/n with -ae args (exclusive activation).
5182 Fixes to lvcreate vgname parsing.
5183 Fix dm_name string size calculation.
5184 Improve clvmd error reporting during startup.
5185 Make clvmd cope with large gaps in node numbers IDs.
5186 Make clvmd initialisation cope better with debugging output.
5187 Tidy clvmd socket callbacks so all work happens outside main loop.
5188 clvmd -V now displays lvm version too.
5189 Add optional gulm build for clvmd
5190
5191 Version 2.00.25 - 29th September 2004
5192 =====================================
5193 Fix return code from rm_link for vgmknodes.
5194 Make clvmd LV hash table thread-safe.
5195 Fix clvmd locking so it will lock out multiple users on the same node.
5196 Fix clvmd VG locking to it can cope with multiple VG locks.
5197 Remove spurious trailing dot in lvreduce man page.
5198 Fix vgremove locking.
5199
5200 Version 2.00.24 - 16th September 2004
5201 =====================================
5202 Fix pool_empty so it really does empty the memory pool.
5203 Rename old segtypes files to segtype.
5204 Some fixes to memory debugging code.
5205 Exclude internal commands formats & segtypes from install.
5206
5207 Version 2.00.23 - 15th September 2004
5208 =====================================
5209 Export dm name build & split functions.
5210 Use O_NOATIME on devices if available.
5211 Write log message when each segtype/format gets initialised.
5212 New commands 'segtypes' and 'formats'.
5213 Suppress pvmove abort message in test mode.
5214 Improve pvcreate/remove device not found error message.
5215 Allow pvmove to move data within the same PV.
5216 Describe how pvmove works on man page.
5217 Test for incompatible format/segtype combinations in lv_extend.
5218 Fix lvchange example on man page.
5219
5220 Version 2.00.22 - 3rd September 2004
5221 ====================================
5222 Fix /dev/vgname perms.
5223 Restructure xlate.h.
5224 Add clvmd man page.
5225
5226 Version 2.00.21 - 19th August 2004
5227 ==================================
5228 Update cnxman-socket.h from cman.
5229 Recognise iseries/vd devices.
5230 Use 'make install_cluster' to install cluster extensions only.
5231 Cope with DT_UNKNOWN in sysfs.
5232 Fix extents_moved metadata size comment.
5233 Remove duplicate line in pvremove help text.
5234 Support variable mirror region size.
5235 Support PE ranges in pvmove source PV.
5236 Fixes to as-yet-unused LV segment splitting code.
5237 Change alloc_areas to pe_ranges and allow suppression of availability checks.
5238 Add dev_size column to pvs.
5239 Add report columns for in-kernel device number.
5240
5241 Version 2.00.20 - 3 July 2004
5242 =============================
5243 More autoconf fixes.
5244 Fix device number handling for 2.6 kernels.
5245
5246 Version 2.00.19 - 29 June 2004
5247 ==============================
5248 Reduce severity of setlocale failure message.
5249 Recognise argv[0] "initrd-lvm" (pld-linux).
5250 Make -O2 configurable.
5251 Added --disable-selinux to configure script.
5252 LD_FLAGS->LDFLAGS & LD_DEPS->LDDEPS in configure script.
5253 Add init_debug to clvmd.
5254
5255 Version 2.00.18 - 24 June 2004
5256 ==============================
5257 Fix vgchange activation.
5258 Add cluster support.
5259
5260 Version 2.00.17 - 20 June 2004
5261 ==============================
5262 configure --enable-fsadm to try out fsadm. fsadm is not tested yet.
5263 Display all filtered devices, not just PVs, with pvs -a.
5264 Fix sync_dir() when no / in filename
5265 vgcfgbackup -f accepts template with %s for VG name.
5266 Extend hash functions to handle non-null-terminated data.
5267 Add local activation support.
5268 Tidy relative paths in makefile includes.
5269 fsadm support for fsck and resizing - needs testing.
5270 Add read-only GFS pool support.
5271 Add lvm2create_initrd script from http://poochiereds.net/svn/lvm2/
5272 Fix rounding of large displayed sizes.
5273 Suppress decimal point when using units of sectors/bytes.
5274 Additional kernel target checks before pvmove & snapshot creation.
5275 Add i2o_block.
5276
5277 Version 2.00.16 - 24 May 2004
5278 =============================
5279 Set area_count within alloc_lv_segment.
5280 Remove error labels from lvresize.
5281 Fix a pvs error path.
5282 xxchange -ae for exclusive activation.
5283 Don't return non-zero status if there aren't any volume groups.
5284 Add --alloc argument to tools.
5285 Rename allocation policies to contiguous, normal, anywhere, inherit.
5286 nextfree becomes normal; anywhere isn't implemented yet.
5287 LV inherits allocation policy from VG. Defaults: LV - inherit; VG - normal
5288 Additional status character added to vgs to indicate allocation policy.
5289 Add reset_fn to external_locking.
5290 Ensure presence of virtual targets before attempting activating.
5291 Attempt to fix resizing of snapshot origins.
5292 Restructure lvresize, bringing it closer to lvcreate.
5293 A quick sanity check on vg_disk struct when read in. More checks needed.
5294 Only include visible LVs in active/open counts.
5295 Add virtual segment types, zero and error. A large sparse device can be
5296 constructed as a writeable snapshot of a large zero segment.
5297 Add --type to lvcreate/resize.
5298 Push lv_create & alloc policy up to tool level.
5299 Fix pvdisplay return code.
5300 Detect invalid LV names in arg lists.
5301 Reporting uses line-at-a-time output.
5302 lvm2 format sets unlimited_vols format flag.
5303 Internal-only metadata flag support.
5304 Basic checking for presence of device-mapper targets.
5305 Separate out polldaemon.
5306 Revise internal locking semantics.
5307 Move find_pv_by_name to library.
5308 Rename move->copy.
5309 Add devices to segments report.
5310 Begin separating out segment code. There's a lot of change here.
5311 Compress any (obsolete) long LVM1 pvids encountered.
5312 Support for tagged config files.
5313 Don't abort operations if selinux present but disabled.
5314 Fix typo in configure which left HAVE_LIBDL unset.
5315
5316 Version 2.00.15 - 19 Apr 2004
5317 =============================
5318 configure --with-owner= --with-group= to avoid -o and -g args to 'install'
5319
5320 Version 2.00.14 - 16 Apr 2004
5321 =============================
5322 Use 64-bit file functions by default.
5323
5324 Version 2.00.13 - 16 Apr 2004
5325 =============================
5326 Set devices/md_component_detection = 1 to ignore devices containing md
5327 superblocks. [Luca Berra]
5328 Ignore error setting selinux file context if fs doesn't support it.
5329
5330 Version 2.00.12 - 14 Apr 2004
5331 =============================
5332 Install a default lvm.conf into /etc/lvm if there isn't one already.
5333 Allow different installation dir for lvm.static (configure --staticdir=)
5334 Fix inverted selinux error check.
5335 Recognise power2 in /proc/devices.
5336 Fix counting in lvs_in_vg_opened. [It ignored devices open more than once.]
5337
5338 Version 2.00.11 - 8 Apr 2004
5339 ============================
5340 Set fallback_to_lvm1 in lvm.conf (or configure --enable-lvm1_fallback)
5341 to run lvm1 binaries if running a 2.4 kernel without device-mapper.
5342
5343 Version 2.00.10 - 7 Apr 2004
5344 ============================
5345 More fixes for static build.
5346 Add basic selinux support.
5347 Fix sysfs detection.
5348
5349 Version 2.00.09 - 31 Mar 2004
5350 =============================
5351 Update copyright notices for Red Hat.
5352 Fix vgmknodes to remove dud /dev/mapper entries. (libdevmapper update reqd).
5353 Add LVM1-style colon output to vgdisplay.
5354 lvchange --refresh to reload active LVs.
5355 Add string display to memory leak dump.
5356 Add locking flags & memlock option.
5357 Add list_versions to library.
5358 Ignore open hidden LVs when checking if deactivation is OK.
5359 Suppress move percentage when device inactive.
5360 Add lv_info_by_lvid.
5361 Various tidy-ups to the build process.
5362 Rebaseline internal verbose level.
5363 Add --nolocking option for read operations if locking is failing.
5364 Add option to compile into a library.
5365 When compiled without libdevmapper, only print warning message once.
5366 Fix lvreduce PV extent calculations.
5367 Fix DESTDIR to work with configure path overrides.
5368 Always use / as config file separator & rename internal config file variables.
5369 Add support for tagging PV/VG/LVs and hosts.
5370 Fix rare bug in recognition of long cmdline argument forms.
5371 Add basic internationalisation infrastructure.
5372 Don't recurse symlinked dirs such as /dev/fd on 2.6 kernels.
5373 Update autoconf files.
5374 Add sysfs block device filtering for 2.6 kernels.
5375 Update refs for move to sources.redhat.com.
5376
5377 Friday 14th November 2003
5378 =========================
5379 Some bug fixes & minor enhancements, including:
5380 Backwards compatibility with LVM1 metadata improved.
5381 Missing man pages written.
5382 Tool error codes made more consistent.
5383 vgmknodes written.
5384 O_DIRECT can be turned off if it doesn't work in your kernel.
5385 dumpconfig to display the active configuration file
5386
5387 You need to update libdevmapper before using 'vgmknodes' or 'vgscan --mknodes'.
5388 If your root filesystem is on an LV, you should run one of those two
5389 commands to fix up the special files in /dev in your real root filesystem
5390 after finishing with your initrd. Also, remember you can use
5391 'vgchange --ignorelockingfailure' on your initrd if the tool fails because
5392 it can't write a lock file to a read-only filesystem.
5393
5394 Wednesday 30th April 2003
5395 =========================
5396 A pvmove implementation is now available for the new metadata format.
5397
5398 When running a command that allocates space (e.g. lvcreate), you can now
5399 restrict not only which disk(s) may be used but also the Physical Extents
5400 on those disks. e.g. lvcreate -L 10 vg1 /dev/hda6:1000-2000:3000-4000
5401
5402
5403 Monday 18th November 2002
5404 ========================
5405
5406 The new format of LVM metadata is ready for you to test!
5407 We expect it to be more efficient and more robust than the original format.
5408 It's more compact and supports transactional changes and replication.
5409 Should things go wrong on a system, it's human-readable (and editable).
5410
5411 Please report any problems you find to the mailing list,
5412 linux-lvm@sistina.com. The software has NOT yet been thoroughly
5413 tested and so quite possibly there'll still be some bugs in it.
5414 Be aware of the disclaimer in the COPYING file.
5415
5416 While testing, we recommend turning logging on in the configuration file
5417 to provide us with diagnostic information:
5418 log {
5419 file="/tmp/lvm2.log"
5420 level=7
5421 activation=1
5422 }
5423
5424 You should schedule regular backups of your configuration file and
5425 metadata backups and archives (normally kept under /etc/lvm).
5426
5427 Please read docs/example.conf and "man lvm.conf" to find out more about
5428 the configuration file.
5429
5430 To convert an existing volume group called vg1 to the new format using
5431 the default settings, use "vgconvert -M2 vg1". See "man vgconvert".
5432
5433 -M (or --metadatatype in its long form) is a new flag to indicate which
5434 format of metadata the command should use for anything it creates.
5435 Currently, the valid types are "lvm1" and "lvm2" and they can be
5436 abbreviated to "1" and "2" respectively. The default value for this
5437 flag can be changed in the global section in the config file.
5438
5439 Backwards-compatible support for the original LVM1 metadata format is
5440 maintained, but it can be moved into a shared library or removed
5441 completely with configure's --with-lvm1 option.
5442
5443 Under LVM2, the basic unit of metadata is the volume group. Different
5444 volume groups can use different formats of metadata - vg1 could use
5445 the original LVM1 format while vg2 used the new format - but you can't
5446 mix formats within a volume group. So to add a PV to an LVM2-format
5447 volume group you must run "pvcreate -M2" on it, followed by "vgextend".
5448
5449 With LVM2-format metadata, lvextend will let you specify striping
5450 parameters. So an LV could consist of two or more "segments" - the
5451 first segment could have 3 stripes while the second segment has just 2.
5452
5453 LVM2 maintains a backup of the current metadata for each volume group
5454 in /etc/lvm/backup, and puts copies of previous versions in
5455 /etc/lvm/archive. "vgcfgbackup" and "vgcfgrestore" can be used to
5456 create and restore from these files. If you fully understand what
5457 you're doing, metadata can be changed by editing a copy of a current
5458 backup file and using vgcfgrestore to reload it.
5459
5460 Please read the pvcreate man page for more information on the new
5461 format for metadata.
5462
5463 All tools that can change things have a --test flag which can be used
5464 to check the effect of a set of cmdline args without really making the
5465 changes.
5466
5467
5468 What's not finished?
5469 ====================
5470 The internal cache. If you turn on debugging output you'll see lots of
5471 repeated messages, many of which will eventually get optimised out.
5472
5473 --test sometimes causes a command to fail (e.g. vgconvert --test) even
5474 though the real command would work: again, fixing this is waiting for
5475 the work on the cache.
5476
5477 Several of the tools do not yet contain the logic to handle full
5478 recovery: combinations of pvcreate and vgcfgrestore may sometimes be
5479 needed to restore metadata if a tool gets interrupted or crashes or
5480 finds something unexpected. This applies particularly to tools that
5481 work on more than one volume group at once (e.g. vgsplit).
5482
5483 Display output. Some metadata information cannot yet be displayed.
5484
5485 Recovery tools to salvage "lost" metadata directly from the disks:
5486 but we hope the new format will mean such tools are hardly ever needed!
5487
5488
This page took 0.249796 seconds and 6 git commands to generate.