-
Notifications
You must be signed in to change notification settings - Fork 0
/
WHATS_NEW
3154 lines (2989 loc) · 167 KB
/
WHATS_NEW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Version 2.02.99 -
===================================
Allow lvconvert --stripes/stripesize only with --mirrors/--repair/--thinpool.
Fix memleak in device_is_usable mirror testing function.
Do not ignore -f in lvconvert --repair -y -f for mirror and raid volumes.
Disallow pvmove on RAID LVs until they are addressed properly
Allow empty activation/{auto_activation|read_only|}_volume_list config option.
Add lvm.conf option global/thin_disabled_features.
Add lvconvert support to swap thin pool metadata volume.
Implement internal function detach_pool_metadata_lv().
Fix lvm2app to return all property sizes in bytes.
Recognize DM_DISABLE_UDEV environment variable for a complete fallback.
Do not verify udev operations if --noudevsync command option is used.
Fix lvm2app and return lvseg discards property as string.
Allow forced vgcfgrestore of lvm2 metadata with thin volumes.
Recognise STEC skd devices in filter.
Recognise Violin Memory vtms devices in filter.
Add lvm.conf thin pool defs thin_pool_{chunk_size|discards|zero}.
Support discards for non-power-of-2 thin pool chunks.
Automatically restore MISSING PVs with no MDAs.
When no '-i' argument is given for RAID10, default to 2 stripes.
Do not allow --splitmirrors on RAID10 logical volumes.
Skip mlocking [vectors] on arm architecture.
Support allocation of pool metadata with lvconvert command.
Move common functionality for thin lvcreate and lvconvert to toollib.
Mirrored log is now fixed before its mirror when double-fault occurs.
Add python-lvm unit test case
Exit pvscan --cache immediately if cluster locking used or lvmetad not used.
Don't use lvmetad in lvm2-monitor.service ExecStop to avoid a systemd issue.
Remove dependency on fedora-storage-init.service in lvm2 systemd units.
Depend on lvm2-lvmetad.socket in lvm2-monitor.service systemd unit.
Hardcode use_lvmetad=0 if cluster locking used and issue a warning msg.
Avoid reading mirrors with failed devices in its mirrored log.
Avoid reading from mirrors that have failed devices if they block I/O.
Change lvs heading Copy% to Cpy%Sync and print RAID4/5/6 sync% there too.
Fix clvmd support for option -d and properly use its argument.
Support use of option --yes for lvchange --persistent.
Fix memory leak on error path for pvcreate with invalid uuid.
Use lv_is_active() instead of lv_info() call.
Cleanup some log_error message and use log_warn instead.
Version 2.02.98 - 15th October 2012
===================================
Switch from DEBUG() to DEBUGLOG() in lvmetad as -DDEBUG is already used.
Prohibit not yet supported change of thin-pool to read-only.
Support creation of read-only thin volumes (lvcreate -p r).
Using autoextend percent 0 for thin pool fails 'lvextend --use-policies'.
Introduce blkdeactivate script to deactivate block devs with dependencies.
Implement devices/global_filter to hide devices from lvmetad.
Make vgscan --cache an alias for pvscan --cache.
Clear lvmetad metadata/PV cache before a rescan.
Fix a segmentation fault upon receiving a corrupt lvmetad response.
Give inconsistent metadata warnings in pvscan --cache.
Make lvremove ask before discarding data areas.
Avoid overlapping locks that could cause a deadlock in lvmetad.
Fix memory leaks in libdaemon and lvmetad.
Optimize libdaemon logging for a fast no-output path.
Only create lvmetad pidfile when running as a daemon (no -f).
Warn if lvmetad is running but disabled.
Warn about running lvmetad with use_lvmetad = 0 in example.conf.
Update lvmetad help output (flags and their meaning).
Make pvscan --cache read metadata from LVM1 PVs.
Make libdaemon buffer handling asymptotically more efficient.
Add lvmdump -l, to collect a state dump from lvmetad.
Make --sysinit suppress lvmetad connection failure warnings.
Prohibit usage of lvcreate --thinpool with --mirrors.
Fix lvm2api origin reporting for thin snapshot volume.
Add configure --enable-python_bindings for liblvm2app to new python subdir.
Add implementation of lvm2api function lvm_percent_to_float.
Allow non power of 2 thin chunk sizes if thin pool driver supports that.
Allow limited metadata changes when PVs are missing via [vg|lv]change.
Do not start dmeventd for lvchange --resync when monitoring is off.
Remove pvscan --cache from lvm2-lvmetad init script.
Remove ExecStartPost with pvscan --cache from lvm2-lvmetad.service.
Report invalid percentage for property snap_percent of non-snaphot LVs.
Disallow conversion of thin LVs to mirrors.
Fix lvm2api data_percent reporting for thin volumes.
Do not allow RAID LVs in a clustered volume group.
Add --discards to lvconvert.
Add --poolmetadata to lvconvert and support thin meta/data dev stacking.
Support changes of permissions for thin snapshot volumes.
Enhance insert_layer_for_lv() with recursive rename for _tdata LVs.
Skip building dm tree for thin pool when called with origin_only flag.
Add internal lv_rename_update() to rename LV without updating mda.
Ensure descriptors 0,1,2 are always available, using /dev/null if necessary.
Use /proc/self/fd when available for closing opened descriptors efficiently.
Add missing pkg init with --enable-testing in configure.in (2.02.71).
Fix inability to create, extend or convert to a large (> 1TiB) RAID LV.
Split out daemon-io from daemon-shared and always build libdaemonclient.
Update lvmetad communications to cope with clients using different filters.
Add (p)artial attribute to lvs.
Don't try to issue discards to a missing PV to avoid segfault.
Clear LV_NOSYNCED flag when a RAID1 LV is converted to a linear LV.
Disallow RAID1 upconvert if the LV was created with --nosync.
Depend on systemd-udev-settle in units generated by activation generator.
Fix vgchange -aay not to activate non-matching LVs that follow a matching LV.
Fix lvchange --resync for RAID LVs which had no effect.
Restructure mirror resync code.
Disallow addition of RAID images until the array is in-sync.
Fix RAID LV creation with '--test' so valid commands do not fail.
Add lvm_lv_rename() to lvm2api.
Fix setvbuf code by closing and reopening stream before changing buffer.
Disable private buffering when using liblvm.
When private stdin/stdout buffering is not used always use silent mode.
Add log/silent to lvm.conf equivalent to -qq.
Suppress non-essential stdout with -qq.
Switch non-essential log_print messages to log_print_unless_silent.
Use -q as short form of --quiet.
Add RAID10 support (--type raid10).
Reuse _reload_lv() in more lvconvert functions.
Fix 32-bit device size arithmetic needing 64-bit casting throughout tree.
Remove numerous unnecessary #includes and the empty util.c.
Fix dereference of NULL in lvmetad error path logging.
Fix buffer memory leak in lvmetad logging.
Add support for lvcreate --discards.
Correct the discards field in the lvs manpage (2.02.97).
Use proper condition to check for discards settings unsupported by kernel.
Reinstate correct default to ignore discards for thin metadata from old tools.
Issue error message when -i and -m args do not match specified RAID type.
Change lvmetad logging syntax from -ddd to -l {all|wire|debug}.
Add new libdaemon logging infrastructure.
Version 2.02.97 - 7th August 2012
=================================
Improve documention of allocation policies in lvm.8.
Increase limit for major:minor to 4095:1048575 when using -My option.
Add make install_systemd_generators.
Add generator for lvm2 activation systemd units.
Add lvm_config_find_bool lvm2app fn to retrieve bool value from config tree.
Respect --test when using lvmetad.
No longer capitalise first LV attribute char for invalid snapshots.
Allow vgextend to add PVs to a VG that is missing PVs.
Recognise Micron PCIe SSDs in filter and move array out to device-types.h.
Fix dumpconfig <node> to print only <node> without its siblings. (2.02.89)
Do not issue "Failed to handle a client connection" error if lvmetad killed.
Support lvchange --discards and -Z with thin pools.
Add discard LV segment field to reports.
Add --discards to lvcreate --thin.
Set discard and external snapshot features if thin pool target is vsn 1.1+.
Count percentage of completeness upwards not downwards when merging snapshot.
Skip activation when using vg/lvchange --sysinit -a ay and lvmetad is active.
Fix extending RAID 4/5/6 logical volumes
Fix test for PV with unknown VG in process_each_pv to ignore ignored mdas.
Update man pages with --activate ay option and auto_activation_volume_list.
Fix _alloc_parallel_area to avoid picking already-full areas for raid devices.
Use vgchange -aay instead of vgchange -ay in clmvd init script.
Add activation/auto_activation_volume_list to lvm.conf.
Add --activate ay to lvcreate, lvchange, pvscan and vgchange.
Add support for volume autoactivation using lvmetad.
Add --activate synonym for --available arg and prefer --activate.
Never issue discards when LV extents are being reconfigured, not deleted.
Allow release_lv_segment_area to fail as functions it calls can fail.
Open device read-only instead of read-write when obtaining readahead value.
Fix lvconvert thin pool error path NULL pointer dereference.
Detect create_instance() failure in pvscan_lvmetad_single().
Use 64-bit calculations for reserved memory and stack.
Fix missing sync of filesystem when creating thin volume snapshot.
Version 2.02.96 - 8th June 2012
===============================
Upstream source repo now fedorahosted.org git not sources.redhat.com CVS.
Fix error paths for regex filter initialization.
Re-enable partial activation of non-thin LVs until it can be fixed. (2.02.90)
Fix alloc cling to cling to PVs already found with contiguous policy.
Fix cling policy not to behave like normal policy if no previous LV seg.
Fix allocation loop not to use later policies when --alloc cling without tags.
Append _TO_LVSEG to names of internal A_CONTIGUOUS and A_CLING flags.
Add missing pkg init --with-systemdsystemunitdir in configure.in (2.02.92).
Fix division by zero if PV with zero PE count is used during vgcfgrestore.
Add initial support for thin pool lvconvert.
Fix lvrename for thin volumes (regression in for_each_sub_lv). (2.02.89)
Fix up-convert when mirror activation is controlled by volume_list and tags.
Warn of deadlock risk when using snapshots of mirror segment type.
Fix bug in cmirror that caused incorrect status info to print on some nodes.
Remove statement that snapshots cannot be tagged from lvm man page.
Disallow changing cluster attribute of VG while RAID LVs are active.
Fix lvconvert error message for non-mergeable volumes.
Allow subset of failed devices to be replaced in RAID LVs.
Prevent resume from creating error devices that already exist from suspend.
Improve clmvd singlenode locking for better testing.
Update and correct lvs man page with supported column names.
Handle replacement of an active device that goes missing with an error device.
Change change raid1 segtype always to request a flush when suspending.
Add udev info and context to lvmdump.
Add lvmetad man page.
Fix RAID device replacement code so that it works under snapshot.
Fix inability to split RAID1 image while specifying a particular PV.
Update man pages to give them all the same look&feel.
Fix lvresize of thin pool for striped devices.
For lvresize round upward when specifying number of extents.
For lvcreate with %FREE support rounding downward stripe alignment.
Change message severity to log_very_verbose for missing dev info in udev db.
Fix lvconvert when specifying removal of a RAID device other than last one.
Fix ability to handle failures in mirrored log in dmeventd plugin. (2.02.89)
Fix unlocking volume group in vgreduce in error path.
Cope when VG name is part of the supplied name in lvconvert --splitmirrors -n.
Fix exclusive lvchange running from other node. (2.02.89)
Add 'vgscan --cache' functionality for consistency with 'pvscan --cache'.
Keep exclusive activation in pvmove if LV is already active.
Disallow exclusive pvmove if some affected LVs are not exclusively activated.
Remove unused and wrongly set cluster VG flag from clvmd lock query command.
Fix pvmove for exclusively activated LV pvmove in clustered VG. (2.02.86)
Always free hash table on update_pvid_to_vgid() in lvmetad.
Update and fix monitoring of thin pool devices.
Check hash insert success in lock_vg in clvmd.
Check for buffer overwrite in get_cluster_type() in clvmd.
Fix global/detect_internal_vg_cache_corruption config check.
Update lcov Makefile target to support all dmeventd plugins.
Fix initializiation of thin monitoring. (2.02.92)
Cope with improperly formatted device numbers in /proc/devices. (2.02.91)
Exit if LISTEN_PID environment variable incorrect in lvmetad systemd handover.
Use pvscan --cache instead of vgscan in lvmetad scripts.
Fix fsadm propagation of -e option.
Fix fsadm parsing of /proc/mounts files (don't check for substrings).
Fix fsadm usage of arguments with space.
Fix arg_int_value alongside ARG_GROUPABLE --major/--minor for lvcreate/change.
Fix name conflicts that prevent down-converting RAID1 when specifying a device
Improve thin_check option passing and use configured path.
Add --with-thin-check configure option for path to thin_check.
Fix error message when pvmove LV activation fails with name already in use.
Better structure layout for device_info in dev_subsystem_name().
Change message severity for creation of VG over uninitialised devices.
Fix error path for failed toolcontext creation.
Detect lvm binary path in lvmetad udev rules.
Don't unlink socket on lvmetad shutdown if instantiated from systemd.
Restart lvmetad automatically from systemd if it exits from uncaught signal.
Fix warn msg for thin pool chunk size and update man for chunksize. (2.02.89)
Version 2.02.95 - 6th March 2012
================================
If unspecified, adjust thin pool metadata and chunk size to fit into 128MB.
Print just warning on thin pool check callback path for failing check.
Always use 64bit arithmetic with VG extent_size expression.
Validate udev structures in _insert_udev_dir().
Take repeatable --major --minor with pvscan --cache instead of major:minor.
Scan all devices for lvmetad if 'pvscan --cache' used without device list.
Populate lvmcache from lvmetad before displaying PVs in pvscan. (2.02.94)
Suppress incorrect -n pvscan warning now always displayed. (2.02.94)
Version 2.02.94 - 3rd March 2012
================================
Add support to execute thin_check with each de/active of thin pool.
Fix automatic estimation of metadata device size for thin pool.
Test for alloc fail from _alloc_pv_segment() in _extend_pv().
Check for alloc fail from get_segtype_from_string() in _lvcreate_params().
Add _rimage as reserved suffix to lvm.8 man page.
Improve error logging from mpath filter.
Check for allocation failure in hold_lock() in clvmd.
Use set_lv() (wipe initial 4KiB) for non zeroed thin volume.
Allow cluster mirrors to handle the absence of the checkpoint lib (libSaCkpt).
Revert free of allocated segtype in init segment error path (2.02.89).
Test dm_hash_insert() failures in filter-persistent.c and fid_add_mda().
Ensure clvmd message is always NUL-terminated after read.
Add some close() and dev_close() error path backtraces.
Set stdin/stdout/stderr to /dev/null for polldaemon.
Limit the max size of processed clvmd message to ~8KB.
Do not send uninitialised bytes in cluster error reply messages.
Use unsigned type for bitmask instead of enum type for lvm properties.
Add missing cleanup of excl_uuid hash on some exit paths of clvmd.
Check for existence of vg_name in _format1/_pool_vg_read().
Fix missing break in _format_pvsegs (2.02.92).
Test seg pointer for non-null it in raid_target_percent error path.
Check for errors in _init_tags() during config loading.
Always check result of _set_vg_name() in lvcreate.
Drop unused call to uname() during clvmd initialization.
Test allocation result in sysfs filter creation.
Limit sscanf parameters with buffer size in clvmd get_initial_state().
Use const lv pointer for lv_is_active...() functions.
Use same signed numbers in _mirrored_transient_status().
Support 'pvscan --cache' to update lvmetad state from specific PVs.
Provide new metadata daemon for testing with configure --enable-lvmetad .
Integrate client-side lvmetad into build.
Version 2.02.93 - 23rd February 2012
====================================
Require number of stripes to be greater than parity devices in higher RAID.
Fix allocation code to allow replacement of single RAID 4/5/6 device.
Check all tags and LV names are in a valid form in vg_validate.
Add tmpfiles.d style configuration for lvm2 lock and run directory.
Add configure --with-tmpfilesdir for dir holding volatile-file configuration.
Allow 'lvconvert --repair' to operate on RAID 4/5/6.
Fix build_parallel_areas_from_lv to account correctly for raid parity devices.
Print message when faulty raid devices have been replaced.
Version 2.02.92 - 20th February 2012
====================================
Read dmeventd monitoring config settings for every lvm command.
For thin devices, initialize monitoring only for thin pools not thin volumes.
Make conversion from a synced 'mirror' to 'raid1' not cause a full resync.
Properly test buffer for unit check in units_to_bytes().
Add configure --with-systemdsystemunitdir.
Add check for allocation failure in _build_matcher().
Add check for rimage name allocation failure in _raid_add_images().
Add check for mda_copy failure in _text_pv_setup().
Add check for _mirrored_init_target failure.
Add free_orphan_vg.
Skip pv/vg_set_fid processing if the fid is same.
Check for foreach loop errors in _vg_read_orphans() (2.02.91).
Clean error paths for format instance creation (2.02.91).
Release vg in error path of _format1_vg_read() instead of just free().
Report allocation failure for allocation of PV structure.
Add clvmd init dependency on dlm service when running with new corosync.
Version 2.02.91 - 12th February 2012
====================================
Remove PV-based format instances (which are no longer needed).
Link all orphan PVs directly to a per-format global orphan VG.
Refactor lvmcache around an internal API.
Stop processing lvextend if trying to extend a mirror that is being recovered.
Add pool_below_threshold() function to check thin pool percent status.
Fix test for snap percent for failing merge when removing LV.
Switch int to void return for str_list_del().
Fix error path handling in _build_desc().
Add range test for device number in _scan_proc_dev().
Use signed long for sysconf() call in cmirrord.
Do not write in front of log buffer in print_log().
Add boundary test for number of mirror devs and logs.
Check that whole locking_dir fits _lock_dir buffer in init_file_locking().
Use list functions for label_exit().
Ensure strncpy() function always ends with '\0'.
Set status in _fsadm_cmd() for error path.
Add missing deps for lvm2api for rebuild when lvm-internal is changed.
Fix resource leaks for failing allocation of formats (lvm1/2,pool).
Release allocated resources in error path for composite_filter_create().
Do not use lstat() results when failed in _rm_link().
Remove a "waiting for another thread" log message from dmeventd plugins.
Version 2.02.90 - 1st February 2012
===================================
sync_local_dev_names before (re)activating mirror log for initialisation.
Disable partial activation for thin LVs and LVs with all missing segments.
Do not print warning for pv_min_size between 512KB and 2MB.
Clean up systemd unit ordering and requirements.
Fix lcov reports when srcdir != builddir.
Allow ALLOC_NORMAL to track reserved extents for log and data on same PV.
Automatically detect whether corosync clvmd needs to use confdb or cmap.
Fix data% report for thin volume used as origin for non-thin snapshot.
Version 2.02.89 - 26th January 2012
===================================
Add missing check for uname result in clvmd TEST processing.
Fix memleak in target_version() error path (unsupported LIST_VERSIONS).
Limit data_alignment and data_alignment_offset to 32bit values.
Check for correctness of uint64 dev_size value in format_text.
Thin pools have segment fields thin_count, zero, transaction_id.
Add data_percent and metadata_percent for thin pools to lvs -v.
Add data_lv & metadata_lv fields to lvs for thin pools.
Add data_percent & pool_lv fields to lvs for thin volumes.
Rename origin_only parm to use_layer for lv_info and use with thin LVs.
Add lv_thin_pool_transaction_id to read the transaction_id value.
Use {suspend,resume}_origin_only when up-converting RAID, as mirrors do.
Always add RAID metadata LVs to deptree (even when origin_only is set).
Change exclusive LV activation logic to try local node before remote nodes.
Add CLVMD_FLAG_REMOTE to skip processing on local node.
Prompt if request is made to remove a snapshot whose "Merge failed".
Allow removal of an invalid snapshot that was to be merged on next activation.
Don't allow a user to merge an invalid snapshot.
Use m and M lv_attr to indicate that a snapshot merge failed in lvs.
Differentiate between snapshot status of "Invalid" and "Merge failed".
Report snapshot usage percent of origin volume when a snapshot is merging.
Require global/lvdisplay_shows_full_device_path for (bogus) lvm1-style paths.
Do not report linear segtype for non-striped targets.
Record creation host & time for each LV and report as lv_time & lv_host.
Make error message hit when preallocated memlock memory exceeded clearer.
Use R lv_attr to indicate read-only activation of non-read-only device in lvs.
Show read-only activation override in lvdisplay & add 4 to perms in -c.
Add activation/read_only_volume_list to override LV permission in metadata.
Give priority to emcpower devices with duplicate PVIDs.
Add check for error in _adjust_policy_params() (lvextend --use-policies).
Round specified percentages upwards (%LV, %VG...) when resizing LVs.
Use dmeventd_lvm2_command in dmeventd plugins snapshot, raid, mirror.
Add helper dmeventd_lvm2_command() to libdevmapper-event-lvm2 library.
Update documentation for dmeventd.
Remove unnecessary stat before opening device in dev_open_flags.
Reduce number of lstat calls when selecting device alias.
Add _dev_init to initialize common struct device members.
Always zalloc struct device during initialization.
Fix missing thread list manipulation protection in dmeventd.
Do not derefence lv pointer in _percent_run() function before NULL check.
Allow empty strings for description and creation_host config fields.
Issue deprecation warning when removing last lvm1-format snapshot.
Reinstate support for snapshot removal with lvm1 format. (2.02.86)
Add policy-based automated repair of RAID logical volumes.
Don't allow two images to be split and tracked from a RAID LV at one time.
Don't allow size change of RAID LV that is tracking changes for a split image.
Don't allow size change of RAID sub-LVs independently.
Don't allow name change of RAID LV that is tracking changes for a split image.
Do not allow users to change the name of RAID sub-LVs independently.
Do not allow users to change permissions on RAID sub-LVs.
Allow lvconvert to replace specified devices in a RAID array.
Add activation/use_linear_target enabled by default.
Use gcc warning options only with .c to .o compilation.
Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.
Replace the unit testing framework with CUnit (--enable-testing).
Fix dmeventd snapshot monitoring when multiple extensions were involved.
Don't ignore configure --mandir and --infodir.
Drop pool memory allocated within lv_has_target_type().
Reduce stack allocation of some PATH_MAX sized char buffers.
Unlock memory before writing metadata.
Add query before removing snapshots when inactive snapshot origin is removed.
Allow changing availability state of snapshots.
Skip non-virtual snapshots for availability change for lvchange with vg name.
Skip adjusting mirror region size unless mirror or raid.
Reorder prompt conditions for removal of active volumes.
Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag.(2.02.86)
Fix --enable-static_link unless using --enable-dmeventd / --enable-udev_sync.
Move gentoo MAKEDEV to /sbin in lvm2create_initrd.
Add filter to avoid scan of device if it is part of active multipath.
Add missing default $LVM_VG_NAME usage for snapshots.
Avoid extent_count overflow with lvextend.
Add missing lvrename mirrored log recursion in for_each_sub_lv.
Improve lv_extend stack reporting.
Increase virtual segment size instead of creating multiple segment list.
Add last_seg(lv) internal function.
Support empty string for log/prefix.
Disallow mirrored logs for cluster mirrors. (2.02.72)
Don't print char type[8] as a plain string in pvck PV type.
Use vg memory pool implicitly for vg read.
Always use vg memory pool for allocated lv segment.
Remove extra 4kB buffer allocated on stack in print_log().
Make move_lv_segment non-static function and use dm_list function.
Pass exclusive LV locks to all nodes in the cluster.
Improve lvcreate chunksize man page description.
Improve man page style for lvcreate & lvs.
Avoid recursive calls to dmeventd in its LVM plugins.
Log dev name now returned to kernel for registering during cmirror CTR.
Fix lv_info open_count test for disabled verify_udev_operations. (2.02.86)
Simplify code for lvm worker thread in clvmd.
Use pthread_barrier to synchronize clvmd threads at startup.
Limit clvmd's thread size to 128KiB and ignore activation/reserved_stack.
Reduce default preallocated stack size to 64KiB.
Add check for access through NULL pointer when refresh_filter() fails.
Use pthread condition for SINGLENODE lock implementation.
Improve backtrace reporting for some dev_manager_ functions.
Change message severity to log_warn when symlink creation fails.
Add ability to convert mirror segtype to RAID1 segtype.
Add ability to convert from linear to RAID1.
Add ability to extend mirrors with '--nosync' option.
Fix splitmirror LV names to maintain consistent state in a cluster.
Apply appropriate udev flags when suspending/resuming mirror sub-LVs.
Fix vgsplit to handle mirrored logs.
Clarify multi-name device filter pattern matching explanation in lvm.conf.
Introduce revert_lv for better pvmove cleanup.
Replace incomplete pvmove activation failure recovery code with a message.
Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely.
Change suspend_lvs to call vg_revert internally.
Change vg_revert to void and remove superfluous calls after failed vg_commit.
Use execvp for CLVMD restart to preserve environment settings.
Restart CLVMD with same cluster manager.
Fix log_error() usage in raid and unknown segtype initialisation.
Improve testing Makefile.
Fix install_ocf make target when srcdir != builddir. (2.02.80)
Support env vars LVM_CLVMD_BINARY and LVM_BINARY in clvmd.
Fix restart of clvmd (preserve exlusive locks). (2.02.64)
Add 'Volume Type' lv_attr characters for RAID and RAID_IMAGE.
Add activation/retry_deactivation to lvm.conf to retry deactivation of an LV.
Replace open_count check with holders/mounted_fs check on lvremove path.
Disallow the creation of mirrors (mirror or raid1 segtype) with only one leg.
Cleanup restart clvmd code (no memory allocation, debug print passed args).
Add all exclusive locks to clvmd restart option args.
Always send the whole clvmd packet header in refresh commands.
Add missing error checks for some system calls in cmirrord.
Add missing log_error() to lvresize command when fsadm tool fails.
Add support for DM_DEV_DIR device path into fsadm script.
Support different PATH setting for fsadm script testing.
Surround all executed commands with quotes in fsadm script.
Fix missing '$' in test for content of "$LVM" in fsadm script.
Move debug message in exec_cmd after sync_local_dev_names.
Fix clvmd processing of invalid request on local socket.
Fix command line option decoding.
Reset LV status when unlinking LV from VG.
Fix overly-strict extent-count divisibility requirements for striped mirrors.
Fix rounding direction in lvresize when reducing volume size.
Fix possible overflow of size if %FREE or %VG is used.
Fix vgchange activation of snapshot with virtual origin.
Activate virtual snapshot origin exclusively (only on local node in cluster).
Fix lv_mirror_count to handle mirrored stripes properly.
Fix failure to down-convert a mirror to linear due to udev "dev open" conflict
Fix mirrored log creation when PE size is small: use log_size >= region_size.
Fix log size calculation when only a log is being added to a mirror.
Add 7th lv_attr char to show the related kernel target.
Terminate pv_attr field correctly. (2.02.86)
Fix 'not not' typo in pvcreate man page.
Improve man page style for fsadm, lvreduce, lvremove, lvrename & lvresize.
Support break for vgchange and vgrefresh operation.
Switch int to unsigned type for pvmetadatacopies for pv_create().
Replace :space: with [\t ] for awk in vgimportclone (not widely supported).
Begin using 64-bit status field flags.
Detect sscanf recovering_region input error in cmirrord pull_state().
Fix error path bitmap leak in cmirrord import_checkpoint().
Log unlink() error in cmirrord remove_lockfile().
Remove incorrect requirement for -j or -m from lvchange error message.
Fix unsafe table load when splitting off smaller mirror from a larger one.
Use size_t return type for text_vg_export_raw() and export_vg_to_buffer().
Add configure --enable-lvmetad for building the (experimental) LVMetaD.
Fix resource leak when strdup fails in _get_device_status() (2.02.85).
Directly allocate buffer memory in a pvck scan instead of using a mempool.
Add configure --with-thin for segtypes "thin" and "thin_pool".
Fix raid shared lib segtype registration (2.02.87).
Version 2.02.88 - 19th August 2011
==================================
Remove incorrect 'Breaking' error message from allocation code. (2.02.87)
Add lvconvert --merge support for raid1 devices split with --trackchanges.
Support lvconvert of -m1 raid1 devices to a higher number.
Add --trackchanges support to lvconvert --splitmirrors option for raid1.
Support splitting off a single raid1 rimage in lvconvert --splitmirrors.
Use sync_local_dev_names when reducing number of raid rimages in lvconvert.
Add -V as short form of --virtualsize in lvcreate.
Fix make clean not to remove Makefile. (2.02.87)
Version 2.02.87 - 12th August 2011
==================================
Fix make distclean to remove stray dmeventd and exported symbols files.
Add global/detect_internal_vg_cache_corruption to lvm.conf.
Use memory pool locking to check for corruption of internal VG structs.
Cache and share generated VG structs.
Fix possible format instance memory leaks and premature releases in _vg_read.
Suppress locking error messages in monitoring init scripts.
If pipe in clvmd fails return busy instead of using uninitialised descriptors.
Add ability to reduce the number of mirrors in raid1 arrays to lvconvert.
Add dmeventd plugin for raid.
Replace free_vg with release_vg and move it to vg.c.
Remove INCONSISTENT_VG flag from the code.
Remove lock from cache in _lock_vol even if unlock fails.
Initialise clvmd locks before lvm context to avoid open descriptor leaks.
Remove obsolete gulm clvmd cluster locking support.
Suppress low-level locking errors and warnings while using --sysinit.
Remove unused inconsistent_seqno variable in _vg_read().
Remove meaningless const type qualifiers on cast type.
Add test for fcntl error in singlenode client code.
Remove --force option from lvrename manpage.
Add global/mirror_segtype_default to pick md raid or dm mirror as default.
Add configure --with-raid for new segtype 'raid' for MD RAID 1/4/5/6 support.
Change DEFAULT_UDEV_SYNC to 1 so udev_sync is used if there is no config file.
Add systemd unit file to provide lvm2 monitoring.
Compare file size (as well as timestamp) to detect changed config file.
Version 2.02.86 - 8th July 2011
===============================
Remove unnecessary warning in pvcreate for MD linear devices.
Move snapshot removal activation logic into lib/activate.
Cope with a PV only discovered missing when creating deptree.
Abort operation if dm_tree_node_add_target_area fails.
Add activation/checks to lvm.conf to perform additional ioctl validation.
Always preload on suspend, even if no metadata changed (lvchange --refresh).
When suspending, automatically preload newly-visible existing LVs.
Teardown any stray devices with $COMMON_PREFIX during test runs.
Reinstate correct permissions when creating mirrors. [2.02.85]
Append 'm' attribute to pv_attr for missing PVs.
Annotate CLVMD_CMD_SYNC_NAMES in decode_cmd.
Remove enforcement of udev verification when using non-standard /dev location.
Keep an exclusive mirror non-clustered if reloaded e.g. during conversion.
Reject allocation if number of extents is not divisible by area count.
Fix cluster mirror creation to work with new mirror allocation algorithm.
Ignore activation/verify_udev_operations if dm kernel driver vsn < 4.18.
Add activation/verify_udev_operations to lvm.conf, disabled by default.
Call vg_mark_partial_lvs() before VG structure is returned from the cache.
Remove unused internal flag ACTIVATE_EXCL from the code.
Remove useless test of ACTIVATE_EXCL in lv_add_mirrors() clustered code path.
Add lv_activate_opts structure for activation (replacing activation flags).
Ignore inconsistent pre-commit metadata on MISSING_PV devs while activating.
Add proper udev library context initialization and finalization to liblvm.
Fix last snapshot removal to avoid table reload while a device is suspended.
Use dm_get_suspended_counter in replacement critical_section logic.
Downgrade critical_section errors to debug level until it is moved to libdm.
Fix ignored background polling default in vgchange -ay.
Fix pvmove activation sequences to avoid trapped I/O with multiple LVs.
Annotate critical section debug messages.
Fix reduction of mirrors with striped segments to always align to stripe size.
Validate mirror segments size.
Include lvmetad development code in tree.
Fix extent rounding for striped volumes never to reduce more than requested.
Fix create_temp_name to replace any '/' found in the hostname with '?'.
Always use append to file in lvmdump. selinux policy may ban file truncation.
Propagate test mode to clvmd to skip activation and changes to held locks.
Defer writing PV labels until vg_write.
Store label_sector only in struct physical_volume.
Permit --available with lvcreate so non-snapshot LVs need not be activated.
Report sector containing label in verbose message.
Clarify error message when unable to convert an LV into a snapshot of an LV.
Add and use dev_open_readonly and variations.
Do not log a superfluous stack message when the lv is properly processed.
Do not issue an error message when unable to remove .cache on read-only fs.
Avoid memlock size mismatch by preallocating stdio line buffers.
Rewrite vgreduce --removemissing --force to share lvconvert code.
Reorganize lvconvert --repair code to allow reuse.
Version 2.02.85 - 29th April 2011
=================================
Add new obtain_device_list_from_udev setting to lvm.conf.
Obtain device list from udev by default if LVM2 is compiled with udev support.
Add test for vgimportclone and querying of vgnames with duplicate pvs.
Avoid use of released memory when duplicate PV is found.
Add "devices/issue_discards" to lvm.conf.
Issue discards on lvremove and lvreduce etc. if enabled and supported.
Add seg_pe_ranges and devices fields to liblvm.
Fix incorrect tests for dm_snprintf() failure.
Fix some unmatching sign comparation gcc warnings in the code.
Support lv_extend() on empty LVs.
Avoid regenerating cache content when exported VG buffer is unchanged.
Extend the set of memory regions that are not locked to memory.
Workaround some problems when compiled for valgrind memcheck.
Support controlled quit of the lvm_thread_fn function in clvmd.
Fix reading of unallocated memory in lvm1 format import function.
Replace several strncmp() calls with id_equal().
Fix lvmcache_info transfer to orphan_vginfo in _lvmcache_update_vgname().
Fix -Wold-style-definition gcc warnings.
Rename MIRROR_NOTSYNCED to LV_NOTSYNCED.
Fix _move_lv_segments to handle empty LVs.
Fixes for lvconvert (including --repair) of temporary mirror stacks.
Avoid potential loop when removing mirror images.
Fix mirror removal always to take account of preferences as to which.
Fix MIRRORED flag usage.
Remove error messages issued by device_is_usable when run as non-root.
Add missing \0 for grown debug object in _bitset_with_random_bits().
Fix allocation of system_id buffer in volume_group structure.
Fix readlink usage inside get_primary_dev().
Use format instance mempool where possible and adequate.
Call destroy_instance for any PVs found in VG structure during vg_free call.
Add new free_pv_fid fn and use it throughout to free all attached fids.
Use only vg_set_fid and new pv_set_fid fn to assign the format instance.
Make create_text_context fn static and move it inside create_instance fn.
Add mem and ref_count fields to struct format_instance for own mempool use.
Use new alloc_fid fn for common format instance initialisation.
Optimise _get_token() and _eat_space().
Add _lv_postorder_vg() to improve efficiency for all LVs in VG.
Add gdbinit script for debugging.
Use hash tables to speedup string search in vg_validate().
Refactor allocation of VG structure adding alloc_vg().
Avoid possible endless loop in _free_vginfo when 4 or more VGs have same name.
Use empty string instead of /dev// for LV path when there's no VG.
Don't allocate unused VG mempool in _pvsegs_sub_single.
Do not send uninitialised bytes in local clvmd messages.
Support --help option for clvmd and return error for unknown option.
Avoid reading freed memory when printing LV segment type.
Fix syslog initialisation in clvmd to respect lvm.conf setting.
Fix possible overflow in maximum stripe size and physical extent size.
Improve pvremove error message when PV belongs to a VG.
Extend normal policy to allow mirror logs on same PVs as images if necessary.
Improve cling policy to recognise PVs already used during the transaction.
Improve normal allocation algorithm to include clinging to existing areas.
Add allocation/maximise_cling & mirror_logs_require_separate_pvs to lvm.conf.
Adapt metadata balancing code to work with metadata handling changes.
Add old_id field to physical_volume and fix pvchange -u for recent changes.
Allow pvresize on a PV with two metadata areas.
Change pvcreate to use new metadata handling interface.
Restructure existing pv_setup and pv_write and add pv_initialise.
Add internal interface to support adding and removing metadata areas.
Allow internal indexing of metadata areas (PV id + mda order).
Generalise internal format_instance infrastrusture for PV and VG use.
Handle decimal digits with --units instead of ignoring them silently.
Fix remaining warnings and compile with -Wpointer-arith.
Fix gcc warnings for unused variables and const casts.
Add stack backtraces for error paths in process_each_lv().
Temporarily suppress error from calling yes_no_prompt while locks are held.
Replace void* with char* arithmetic in _text_write, _text_read & send_message.
Fix compilation without DEVMAPPER_SUPPORT.
Remove fs_unlock() from lv_suspend error path.
Allow memory to stay locked between leaving and re-entering critical sections.
Rename memlock to critical_section throughout.
Make pv_min_size configurable and increase to 2048KB to exclude floppy drives.
Add find_config_tree_int64 to read 64-bit ints from config.
Ensure resuming exclusive cluster mirror continues to use local mirror target.
Clear temporary postorder LV status flags to allow re-use with same LV struct.
Remove invalid snapshot umount mesg which floods syslog from dmeventd plugin.
Add extended examples to pvmove man page.
Support LVM_TEST_DEVDIR env var for private /dev during testing.
Version 2.02.84 - 9th February 2011
===================================
Fix CRC32 calculation on big endian CPU (2.02.75).
Version 2.02.83 - 4th February 2011
===================================
Allow exclusive activation of snapshots in a cluster.
Leave EX lock unchanged when suspending a device in clvmd.
Use sync_dev_names in unlock_vg macro for cluster-wide dev name sync.
Fix fs operation stack handling when multiple operations on same device.
Increase hash table size to 1024 lv names and 64 pv uuids.
Remove fs_unlock() from lv_resume path.
Fix wipe size when setting up mda.
Remove unneeded checks for open_count in lv_info().
Synchronize with udev before checking open_count in lv_info().
Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested.
Add "dmsetup ls --tree" output to lvmdump.
Fix udev synchronization with no-locking --sysinit (2.02.80).
Improve man page style consistency for pvcreate, pvremove, pvresize, pvscan.
Avoid rebuilding of uuid validation table.
Improve lvcreate error text from insufficient "extents" to "free space".
Always use O_DIRECT when opening block devices to check for partitioning.
Version 2.02.82 - 24th January 2011
===================================
Bring lvscan man page up-to-date.
Fix lvchange --test to exit cleanly.
Add change_tag to toollib.
Allow multiple pvchange command line options to be specified together.
Do not fail pvmove polling if another process cleaned up first.
Avoid clvmd incrementing dlm lockspace reference count more than once.
Add -f (don't fork) option to clvmd and fix clvmd -d<num> description.
Version 2.02.81 - 17th January 2011
===================================
Do not scan devices in dev_reset_error_count().
Skip unnecessary LOCK_NULL unlock call during volume deactivation.
Skip fs_unlock when calling exec_cmd within activation code (for modprobe).
Extend exec_cmd params to specify when device sync (fs_unlock) is needed.
Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80)
Introduce sync_local_dev_names and CLVMD_CMD_SYNC_NAMES to issue fs_unlock.
Accept fusion fio in device type filter.
Add ability to convert mirror log type from disk to mirrored.
Version 2.02.80 - 10th January 2011
===================================
Use same dm cookie for consecutive dm ops in same VG to reduce udev waits.
Speed up command processing by caching resolved config tree.
Pass config_tree to renamed function import_vg_from_config_tree().
Detect NULL handle in get_property().
Fix superfluous /usr in ocf_scriptdir instalation path.
Add --with-ocfdir configurable option.
Add aclocal.m4 (for pkgconfig).
Fix memory leak in persistent filter creation error path.
Check for errors setting up dm_task struct in _setup_task().
Fail polldaemon creation when lvmcache_init() fails.
Return PERCENT_INVALID for errors in _copy_percent() and _snap_percent().
Remove some unused variables.
Improve general lvconvert man page description.
Return 0 from cmirrord initscript 'start' if daemon is already running.
Fix wrongly paired unlocking of VG_GLOBAL in pvchange. (2.02.66)
Add backtraces for backup and backup_remove fail paths.
Detect errors from dm_task_set calls in _get_device_info (dmeventd).
Add backtraces for archive and backup_locally in check_current_backup().
Fix memory leak in debug mode of restart_clvmd() error path.
Log error message for pthread_join() failure in clvmd.
Version 2.02.79 - 20th December 2010
====================================
Remove some unused variables.
Add missing test for reallocation error in _find_parallel_space().
Add checks for allocation errors in config node cloning.
Fix error path if regex engine cannot be created in _build_matcher().
Use char* arithmetic in target_version(), _process_all() & _targets().
Fixing const cast gcc warnings in the code.
Check read() and close() results in _get_cmdline().
Add const for struct config_node usage.
Fix NULL pointer check in error path in clvmd do_command(). (2.02.78)
Fix device.c #include to ensure 64-bit fopen64 use. (2.02.51)
Add copy_percent and snap_percent to liblvm.
Enhance vg_validate to ensure integrity of LV and PV structs referenced.
Enhance vg_validate to check composition of pvmove LVs.
Create /var/run/lvm directory during clvmd initialisation if missing.
Use new dm_prepare_selinux_context instead of dm_set_selinux_context.
Avoid revalidating the label cache immediately after scanning.
Support scanning for a single VG in independent mdas.
Don't skip full scan when independent mdas are present even if memlock is set.
Set cmd->independent_metadata_areas if metadata/dirs or disk_areas in use.
Cope better with an undefined target_percent operation in _percent_run.
Avoid writing to freed memory in vg_release and rename to free_vg. (2.02.78)
Version 2.02.78 - 6th December 2010
===================================
Abort if segment tag allocation fails in pool format _add_stripe_seg.
Abort in _mirrored_transient_status if referenced log/image LV is not active.
Add backtraces for dev_set() and dev_close_immediate() errors in set_lv().
Log any unlink() error in clvmd remove_lockfile().
Log any pipe write() or close() errors in clvmd child_init_signal().
Detect if orphan vginfo was lost from cache before _lvmcache_update_vgname().
Do a full rescan if some device is missing in lvm1 format read_pvs_in_vg.
Add missing check that dm_pool_create succeeded in write_config_node().
Use dm_snprintf in clvmd-command.c to ensure an overlong buffer is truncated.
Don't write to buffer if its reallocation failed in clvmd do_command().
Switch from float to fixed point percentage handling.
Avoid misleading missing PV warnings in vgextend --restoremissing.
Fix memory leak when VG allocation policy in metadata is invalid.
Ignore unrecognised allocation policy found in metadata instead of aborting.
Factor out tag printing into _out_tags and avoid leaking string buffer.
Remove some unused variables & assignments.
Add missing vg_release calls in _vg_read_by_vgid.
Fix debug logging of derived flag LCK_CACHE in clvmd.
Fix test for no system_dir in _init_backup().
Disallow lvconvert ops that both allocate & free supplied PEs in a single cmd.
Fix liblvm seg_size to give bytes not sectors.
Add functions to look up LV/PV by name/uuid to liblvm.
Free cmd_context if fallback to LVM1 fails in lvm2_main().
Free device name buffer in dmsetup parse_loop_device_name() error paths.
Close format lib if init_format_fn fails in _init_formats().
Don't leave /proc/mounts open after dmeventd snapshot event processing.
Fix out-of-scope arg_vgnames use in process_each_lv().
Remove incorrect dm_task_destroy(NULL) from _node_clear_table() error path.
Add missing closedir in _rm_blks after removing stray LVM1 VG files.
Suppress 'No PV label' message when removing several PVs without mdas.
Fix default /etc/lvm permissions to be 0755. (2.02.66)
Version 2.02.77 - 22nd November 2010
====================================
Allocate a pool for dummy VG in _pvsegs_sub_single.
Add PV and LV segment types and functions to liblvm.
Add set_property functions to liblvm.
Remove tag length restriction and allow / = ! : # & characters.
Support repetition of --addtag and --deltag arguments.
Add infrastructure for specific cmdline arguments to be repeated in groups.
Split the_args cmdline arguments and values into arg_props and arg_values.
Fix fsadm no longer to require '-f' to resize an unmounted filesystem.
Fix fsadm to detect mounted filesystems on older systems. (2.0.75)
Extend cling allocation policy to recognise PV tags (cling_by_tags).
Add allocation/cling_tag_list to lvm.conf.
Regenerate configure with 'autoreconf' for --enable-ocf. (2.02.76)
Version 2.02.76 - 8th November 2010
===================================
Clarify error messages when activation fails due to activation filter use.
Add pacemaker script VolumeGroup.ocf with configure --enable-ocf.
Import make.tmpl into include/ Makefile.
Fix handling of online filesystem resize (using new fsadm return code).
Add DIAGNOSTICS section to fsadm man page.
Modify fsadm to return different status code for check of mounted filesystem.
Update VG metadata only once in vgchange when making multiple changes.
Allow independent vgchange arguments to be used together.
Automatically unmount invalidated snapshots in dmeventd.
Suppress some superfluous messages from clang static analysis.
Fix a deadlock caused by double close in clvmd.
Fix NULL pointer dereference on too-large MDA error path in _vg_read_raw_area.
Use static for internal _align_chunk() and _new_chunk() from pool-fast.c.
Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange.
Add lvm2app functions to query any pv, vg, or lv property / report field.
Version 2.02.75 - 25th October 2010
===================================
Annotate more variables and parameters as const.
Fix missing variable initialization in cluster_send() function from cmirrord.
Fix pointer for VG name in _pv_resize_single error code path.
Fix warning for changed alignment requirements for dmeventd read/write func.
Add global/metadata_read_only to use unrepaired metadata in read-only cmds.
Don't take write lock in vgchange --refresh, --poll or --monitor.
Skip dm devices in scan if they contain only error targets or are empty.
Fix strict-aliasing compile warning in partition table scanning.
Fix pthread mutex usage deadlock in clvmd.
Automatically extend snapshots with dmeventd according to policy in lvm.conf.
Add activation/snapshot_autoextend_threshold/percent to lvm.conf.
Fix liblvm2cmd link order to support --as-needed.
Remove dependency on libm by replacing floor() by an integer-based algorithm.
Fix hang when repairing a mirrored-log that had both devs fail.
Convey need for snapshot-merge target in lvconvert error message and man page.
Add devices/disable_after_error_count config to limit access to failing devs.
Give correct error message when creating a too-small snapshot.
Implement vgextend --restoremissing to reinstate missing devs that return.
Make lvconvert respect --yes and --force when converting an inactive log.
Refactor and add 'get' functions for lv properties/fields.
Update script for fsadm testing.
Better support of noninteractive shell execution of fsadm.
Fix usage of --yes flag for ReiserFS resize in fsadm.
Fix detection of mounted filesystems for fsadm when udev is used.
Fix assignment of default value to LVM variable in fsadm.
Fix support for --yes flag for fsadm.
Do not execute lvresize from fsadm --dry-run.
Fix fsadm return error code from user's break action.
Allow CC to be overridden at build time (for 'scan-build make').
Rename 'flags' to 'status' in struct metadata_area.
Avoid segfault by limiting partial mode for lvm1 metadata. (2.02.74)
Use dm_zalloc and dm_pool_zalloc throughout.
Add pv_get_property and create generic internal _get_property function.
Add 'get' functions for pv and vg properties/fields.
Make generic GET_*_PROPERTY_FN macros with secondary macro for vg, pv & lv.
Add tags_format_and_copy() common function and call from _tags_disp.
Add id_format_and_copy() common function and call from _uuid_disp.
Refactor report.c '*_disp' functions to call supporting functions.
Move parts of metadata*.[ch] into new {pv|vg|lv}.[ch] files.
Fix vg_read memory leak with directory-based metadata.
Fix memory leak of config_tree in reinitialization code path.
Fix pool destruction order in dmeventd_lvm2_exit() to avoid leak debug mesg.
Read whole /proc/self/maps file before working with maps entries.
Speed up unquoting of quoted double quotes and backslashes.
Speed up CRC32 calculations by using a larger lookup table.
Version 2.02.74 - 24th September 2010
=====================================
Allow : and @ to be escaped with \ in device names of PVs.
Replace alloca with dm_malloc in _aligned_io to avoid stack corruption.
Fix partial mode operations for lvm1 metadata format.
Track recursive filter iteration to avoid refreshing while in use. (2.02.56)
Revert to old glibc vsnprintf behaviour in emit_to_buffer() to catch overflow.
Allocate buffer for metadata tags dynamically to remove 4k limit.
Add random suffix to archive file names to prevent races when being created.
Reinitialize archive and backup handling on toolcontext refresh.
Make poll_mirror_progress report PROGRESS_CHECK_FAILED if LV is not a mirror.
Like mirrors, don't scan origins if ignore_suspended_devices() is set.
Fix return type qualifier to avoid compiler warning. (2.02.69)
Automatically generate LSB Requires-Start for clvmd init script.
Fix return code of pvmove --abort PV.
Fix pvmove --abort to remove even for empty pvmove LV.
Add configure --with-default-data-alignment.
Update heuristic used for default and detected data alignment.
Add "devices/default_data_alignment" to lvm.conf.
Add implementation for simple numeric 'get' property functions.
Define GET_NUM_PROPERTY_FN macro to simplify numeric property 'get' function
Add properties.[ch] to lib/report using columns.h.
Add macro definitions to report infrastructure for character array length.
Remove explicit double quotes from columns.h 'id' entries.
Add 'flags' field to columns.h and define FIELD_MODIFIABLE.
Add vg_mda_size and vg_mda_free functions.
Simplify MD/swap signature detection in pvcreate and allow aborting.
Allow --yes to be used without --force mode.
Fix file descriptor leak in swap signature detection error path.
Detect and allow abort in pvcreate if LUKS signature is detected.
Always mask lock flags correctly when checking for LCK_WRITE.
Version 2.02.73 - 18th August 2010
==================================
Fix potential for corruption during cluster mirror device failure.
Use 'SINGLENODE' instead of 'dead' in clvmd singlenode messages.
Ignore snapshots when performing mirror recovery beneath an origin.
Pass LCK_ORIGIN_ONLY flag around cluster.
Add suspend_lv_origin and resume_lv_origin using LCK_ORIGIN_ONLY.
Allow internal suspend and resume of origin without its snapshots.
Fix dev_manager_transient to access -real device not snapshot-origin.
Monitor origin -real device below snapshot instead of overlay device.
Don't really change monitoring status when in test mode.
Fix some exit statuses when starting/stopping monitoring fails.
Enable snapshot monitoring by default when dmeventd is enabled.
Move cloned libdevmapper-event client code from segments into lib/activate.
Fix 'lvconvert --splitmirrors' in cluster operation.
Fix clvmd init script exit code to return 4 when executed as non-root user.
Change default alignment of pe_start to 1MB.
Add --norestorefile option to pvcreate.
Require --restorefile when using pvcreate --uuid.
Recognise and give preference to md device partitions (blkext major).
Never scan internal LVM devices.
Don't ignore user-specified PVs in split-mirror operations. (2.02.71)
Fix data corruption bug in cluster mirrors.
Require logical volume(s) to be explicitly named for lvconvert --merge.
Avoid changing aligned pe_start as a side-effect of very verbose logging.
Use built-in rule for device aliases: block/ < dm- < disk/ < mapper/ < other.
Fix const warning in dev_manager_info() and _dev_manager_lv_rmnodes().
Fix const warning in archive_file structure from archive.c.
Clean generated files .exported_symbols_generated, example.conf for distclean.
Handle failure of all mirrored log devices and all but one mirror leg.
Disallow 'mirrored' log type for cluster mirrors.
Do not use VPATH in include/Makefile.
Fix exported_symbols generation to use standard compiler arguments.
Use #include <> not "" in lvm2app.h which gets installed on the system.
Make lib and liblvm.device-mapper wait for include file generation.
Fix configure to supply DEFAULT_RUN_DIR to Makefiles.
Fix allocation of wrong number of mirror logs with 'remove' fault policy.
Version 2.02.72 - 28th July 2010 [CVE-2010-2526]
=================================================
Change clvmd to communicate with lvm2 via a socket in /var/run/lvm.
Return controlled error if clvmd is run by non-root user.
Add configure --default-run-dir for /var/run/lvm.
Never use clvmd singlenode unless explicitly requested with -Isinglenode.
Version 2.02.71 - 28th July 2010
================================
Document LVM fault handling in doc/lvm_fault_handling.txt.
Make vgck warn about missing PVs.
Clarify help text for vg_mda_count.
Check if cluster log daemon is running before allowing cmirror create.
Add unit-tests dir.
Add configure --enable-testing and reports and report-generators dirs.
Correct LV list order used by lvconvert when splitting a mirror.
Check if LV with specified name already exists when splitting a mirror.
Fix suspend/resume logic for LVs resulting from splitting a mirror.
Update pvcreate, {pv|vg}change, and lvm.conf man pages about metadataignore.
Switch cmirrord and clvmd to use dm_create_lockfile.
Allow clvmd pidfile to be configurable.
Update comments about memory handling in lvm2app.h.
Add more verbose messages while checking volume_list and hosttags settings.
Add log_error when strdup fails in {vg|lv}_change_tag().
Remove unnecessary includes in liblvm files.
Use __attribute__ consistently throughout.
Fix redundant declarations and always compile with -Wredundant-decls.
Fix possible hang when all mirror images of a mirrored log fail.
Pass metadataignore to pv_create, pv_setup, _mda_setup, and add_mda.
Init mda->list in mda_copy.
Do not log backtrace in valid _lv_resume() code path.
Cleanup help strings in configure.in.
Prompt if metadataignore with vgextend or pvchange would adjust vg_mda_copies.
Adjust vg_mda_copies if metadataignore given with vgextend or pvchange.
Adjust auto-metadata repair and caching logic to try to cope with empty mdas.
Version 2.02.70 - 6th July 2010
===============================
Remove log directly if all mirror images of a mirrored log fail.
Randomly select which mdas to use or ignore.
Add some missing standard configure.in checks.
Add printf format attributes to yes_no_prompt and fix a caller.
Always pass unsuspended dm devices through persistent filter to other filters.
Move test for suspended dm devices ahead of other filters.
Fix another segfault in clvmd -R if no response from daemon. (2.02.68)
Remove superfluous suspended device counter from clvmd.
Fix lvm shell crash when input is entirely whitespace.
Update partial mode warning message.
Preserve memlock balance in clvmd when activation triggers a resume.
Restore the removemissing behaviour of lvconvert --repair --use-policies.
Version 2.02.69 - 30th June 2010
================================
Fix vgremove to allow removal of VG with missing PVs. (2.02.52)
Add metadata/vgmetadatacopies to lvm.conf.