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