]> sourceware.org Git - lvm2.git/blob - WHATS_NEW
Add LVMetaD systemd units.
[lvm2.git] / WHATS_NEW
1 Version 2.02.93 -
2 ====================================
3 Add LVMetaD systemd units.
4 Fix allocation code to allow replacement of single RAID 4/5/6 device.
5 Check all tags and LV names are in a valid form in vg_validate.
6 Add tmpfiles.d style configuration for lvm2 lock and run directory.
7 Add configure --with-tmpfilesdir for dir holding volatile-file configuration.
8 Allow 'lvconvert --repair' to operate on RAID 4/5/6
9 Fix 'build_parallel_areas_from_lv' to work properly with RAID 4/5/6
10
11 Version 2.02.92 - 20th February 2012
12 ====================================
13 Read dmeventd monitoring config settings for every lvm command.
14 For thin devices, initialize monitoring only for thin pools not thin volumes.
15 Make conversion from a synced 'mirror' to 'raid1' not cause a full resync.
16 Properly test buffer for unit check in units_to_bytes().
17 Add configure --with-systemdsystemunitdir.
18 Add check for allocation failure in _build_matcher().
19 Add check for rimage name allocation failure in _raid_add_images().
20 Add check for mda_copy failure in _text_pv_setup().
21 Add check for _mirrored_init_target failure.
22 Add free_orphan_vg.
23 Skip pv/vg_set_fid processing if the fid is same.
24 Check for foreach loop errors in _vg_read_orphans() (2.02.91).
25 Clean error paths for format instance creation (2.02.91).
26 Release vg in error path of _format1_vg_read() instead of just free().
27 Report allocation failure for allocation of PV structure.
28 Add clvmd init dependency on dlm service when running with new corosync.
29
30 Version 2.02.91 - 12th February 2012
31 ====================================
32 Remove PV-based format instances (which are no longer needed).
33 Link all orphan PVs directly to a per-format global orphan VG.
34 Refactor lvmcache around an internal API.
35 Stop processing lvextend if trying to extend a mirror that is being recovered.
36 Add pool_below_threshold() function to check thin pool percent status.
37 Fix test for snap percent for failing merge when removing LV.
38 Switch int to void return for str_list_del().
39 Fix error path handling in _build_desc().
40 Add range test for device number in _scan_proc_dev().
41 Use signed long for sysconf() call in cmirrord.
42 Do not write in front of log buffer in print_log().
43 Add boundary test for number of mirror devs and logs.
44 Check that whole locking_dir fits _lock_dir buffer in init_file_locking().
45 Use list functions for label_exit().
46 Ensure strncpy() function always ends with '\0'.
47 Set status in _fsadm_cmd() for error path.
48 Add missing deps for lvm2api for rebuild when lvm-internal is changed.
49 Fix resource leaks for failing allocation of formats (lvm1/2,pool).
50 Release allocated resources in error path for composite_filter_create().
51 Do not use lstat() results when failed in _rm_link().
52 Remove a "waiting for another thread" log message from dmeventd plugins.
53
54 Version 2.02.90 - 1st February 2012
55 ===================================
56 sync_local_dev_names before (re)activating mirror log for initialisation.
57 Disable partial activation for thin LVs and LVs with all missing segments.
58 Do not print warning for pv_min_size between 512KB and 2MB.
59 Clean up systemd unit ordering and requirements.
60 Fix lcov reports when srcdir != builddir.
61 Allow ALLOC_NORMAL to track reserved extents for log and data on same PV.
62 Automatically detect whether corosync clvmd needs to use confdb or cmap.
63 Fix data% report for thin volume used as origin for non-thin snapshot.
64
65 Version 2.02.89 - 26th January 2012
66 ===================================
67 Add missing check for uname result in clvmd TEST processing.
68 Fix memleak in target_version() error path (unsupported LIST_VERSIONS).
69 Limit data_alignment and data_alignment_offset to 32bit values.
70 Check for correctness of uint64 dev_size value in format_text.
71 Thin pools have segment fields thin_count, zero, transaction_id.
72 Add data_percent and metadata_percent for thin pools to lvs -v.
73 Add data_lv & metadata_lv fields to lvs for thin pools.
74 Add data_percent & pool_lv fields to lvs for thin volumes.
75 Rename origin_only parm to use_layer for lv_info and use with thin LVs.
76 Add lv_thin_pool_transaction_id to read the transaction_id value.
77 Use {suspend,resume}_origin_only when up-converting RAID, as mirrors do.
78 Always add RAID metadata LVs to deptree (even when origin_only is set).
79 Change exclusive LV activation logic to try local node before remote nodes.
80 Add CLVMD_FLAG_REMOTE to skip processing on local node.
81 Prompt if request is made to remove a snapshot whose "Merge failed".
82 Allow removal of an invalid snapshot that was to be merged on next activation.
83 Don't allow a user to merge an invalid snapshot.
84 Use m and M lv_attr to indicate that a snapshot merge failed in lvs.
85 Differentiate between snapshot status of "Invalid" and "Merge failed".
86 Report snapshot usage percent of origin volume when a snapshot is merging.
87 Require global/lvdisplay_shows_full_device_path for (bogus) lvm1-style paths.
88 Do not report linear segtype for non-striped targets.
89 Record creation host & time for each LV and report as lv_time & lv_host.
90 Make error message hit when preallocated memlock memory exceeded clearer.
91 Use R lv_attr to indicate read-only activation of non-read-only device in lvs.
92 Show read-only activation override in lvdisplay & add 4 to perms in -c.
93 Add activation/read_only_volume_list to override LV permission in metadata.
94 Give priority to emcpower devices with duplicate PVIDs.
95 Add check for error in _adjust_policy_params() (lvextend --use-policies).
96 Round specified percentages upwards (%LV, %VG...) when resizing LVs.
97 Use dmeventd_lvm2_command in dmeventd plugins snapshot, raid, mirror.
98 Add helper dmeventd_lvm2_command() to libdevmapper-event-lvm2 library.
99 Update documentation for dmeventd.
100 Remove unnecessary stat before opening device in dev_open_flags.
101 Reduce number of lstat calls when selecting device alias.
102 Add _dev_init to initialize common struct device members.
103 Always zalloc struct device during initialization.
104 Fix missing thread list manipulation protection in dmeventd.
105 Do not derefence lv pointer in _percent_run() function before NULL check.
106 Allow empty strings for description and creation_host config fields.
107 Issue deprecation warning when removing last lvm1-format snapshot.
108 Reinstate support for snapshot removal with lvm1 format. (2.02.86)
109 Add policy-based automated repair of RAID logical volumes.
110 Don't allow two images to be split and tracked from a RAID LV at one time.
111 Don't allow size change of RAID LV that is tracking changes for a split image.
112 Don't allow size change of RAID sub-LVs independently.
113 Don't allow name change of RAID LV that is tracking changes for a split image.
114 Do not allow users to change the name of RAID sub-LVs independently.
115 Do not allow users to change permissions on RAID sub-LVs.
116 Allow lvconvert to replace specified devices in a RAID array.
117 Add activation/use_linear_target enabled by default.
118 Use gcc warning options only with .c to .o compilation.
119 Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.
120 Replace the unit testing framework with CUnit (--enable-testing).
121 Fix dmeventd snapshot monitoring when multiple extensions were involved.
122 Don't ignore configure --mandir and --infodir.
123 Drop pool memory allocated within lv_has_target_type().
124 Reduce stack allocation of some PATH_MAX sized char buffers.
125 Unlock memory before writing metadata.
126 Add query before removing snapshots when inactive snapshot origin is removed.
127 Allow changing availability state of snapshots.
128 Skip non-virtual snapshots for availability change for lvchange with vg name.
129 Skip adjusting mirror region size unless mirror or raid.
130 Reorder prompt conditions for removal of active volumes.
131 Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag.(2.02.86)
132 Fix --enable-static_link unless using --enable-dmeventd / --enable-udev_sync.
133 Move gentoo MAKEDEV to /sbin in lvm2create_initrd.
134 Add filter to avoid scan of device if it is part of active multipath.
135 Add missing default $LVM_VG_NAME usage for snapshots.
136 Avoid extent_count overflow with lvextend.
137 Add missing lvrename mirrored log recursion in for_each_sub_lv.
138 Improve lv_extend stack reporting.
139 Increase virtual segment size instead of creating multiple segment list.
140 Add last_seg(lv) internal function.
141 Support empty string for log/prefix.
142 Disallow mirrored logs for cluster mirrors. (2.02.72)
143 Don't print char type[8] as a plain string in pvck PV type.
144 Use vg memory pool implicitly for vg read.
145 Always use vg memory pool for allocated lv segment.
146 Remove extra 4kB buffer allocated on stack in print_log().
147 Make move_lv_segment non-static function and use dm_list function.
148 Pass exclusive LV locks to all nodes in the cluster.
149 Improve lvcreate chunksize man page description.
150 Improve man page style for lvcreate & lvs.
151 Avoid recursive calls to dmeventd in its LVM plugins.
152 Log dev name now returned to kernel for registering during cmirror CTR.
153 Fix lv_info open_count test for disabled verify_udev_operations. (2.02.86)
154 Simplify code for lvm worker thread in clvmd.
155 Use pthread_barrier to synchronize clvmd threads at startup.
156 Limit clvmd's thread size to 128KiB and ignore activation/reserved_stack.
157 Reduce default preallocated stack size to 64KiB.
158 Add check for access through NULL pointer when refresh_filter() fails.
159 Use pthread condition for SINGLENODE lock implementation.
160 Improve backtrace reporting for some dev_manager_ functions.
161 Change message severity to log_warn when symlink creation fails.
162 Add ability to convert mirror segtype to RAID1 segtype.
163 Add ability to convert from linear to RAID1.
164 Add ability to extend mirrors with '--nosync' option.
165 Fix splitmirror LV names to maintain consistent state in a cluster.
166 Apply appropriate udev flags when suspending/resuming mirror sub-LVs.
167 Fix vgsplit to handle mirrored logs.
168 Clarify multi-name device filter pattern matching explanation in lvm.conf.
169 Introduce lv_send_message and dev_manager_send_message.
170 Introduce revert_lv for better pvmove cleanup.
171 Replace incomplete pvmove activation failure recovery code with a message.
172 Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely.
173 Change suspend_lvs to call vg_revert internally.
174 Change vg_revert to void and remove superfluous calls after failed vg_commit.
175 Use execvp for CLVMD restart to preserve environment settings.
176 Restart CLVMD with same cluster manager.
177 Fix log_error() usage in raid and unknown segtype initialisation.
178 Improve testing Makefile.
179 Fix install_ocf make target when srcdir != builddir. (2.02.80)
180 Support env vars LVM_CLVMD_BINARY and LVM_BINARY in clvmd.
181 Fix restart of clvmd (preserve exlusive locks). (2.02.64)
182 Add 'Volume Type' lv_attr characters for RAID and RAID_IMAGE.
183 Add activation/retry_deactivation to lvm.conf to retry deactivation of an LV.
184 Replace open_count check with holders/mounted_fs check on lvremove path.
185 Disallow the creation of mirrors (mirror or raid1 segtype) with only one leg.
186 Cleanup restart clvmd code (no memory allocation, debug print passed args).
187 Add all exclusive locks to clvmd restart option args.
188 Always send the whole clvmd packet header in refresh commands.
189 Add missing error checks for some system calls in cmirrord.
190 Add missing log_error() to lvresize command when fsadm tool fails.
191 Add support for DM_DEV_DIR device path into fsadm script.
192 Support different PATH setting for fsadm script testing.
193 Surround all executed commands with quotes in fsadm script.
194 Fix missing '$' in test for content of "$LVM" in fsadm script.
195 Move debug message in exec_cmd after sync_local_dev_names.
196 Fix clvmd processing of invalid request on local socket.
197 Fix command line option decoding.
198 Reset LV status when unlinking LV from VG.
199 Fix overly-strict extent-count divisibility requirements for striped mirrors.
200 Fix rounding direction in lvresize when reducing volume size.
201 Fix possible overflow of size if %FREE or %VG is used.
202 Fix vgchange activation of snapshot with virtual origin.
203 Activate virtual snapshot origin exclusively (only on local node in cluster).
204 Fix lv_mirror_count to handle mirrored stripes properly.
205 Fix failure to down-convert a mirror to linear due to udev "dev open" conflict
206 Fix mirrored log creation when PE size is small: use log_size >= region_size.
207 Fix log size calculation when only a log is being added to a mirror.
208 Add 7th lv_attr char to show the related kernel target.
209 Terminate pv_attr field correctly. (2.02.86)
210 Fix 'not not' typo in pvcreate man page.
211 Improve man page style for fsadm, lvreduce, lvremove, lvrename & lvresize.
212 Support break for vgchange and vgrefresh operation.
213 Switch int to unsigned type for pvmetadatacopies for pv_create().
214 Replace :space: with [\t ] for awk in vgimportclone (not widely supported).
215 Begin using 64-bit status field flags.
216 Detect sscanf recovering_region input error in cmirrord pull_state().
217 Fix error path bitmap leak in cmirrord import_checkpoint().
218 Log unlink() error in cmirrord remove_lockfile().
219 Remove incorrect requirement for -j or -m from lvchange error message.
220 Fix unsafe table load when splitting off smaller mirror from a larger one.
221 Use size_t return type for text_vg_export_raw() and export_vg_to_buffer().
222 Add configure --enable-lvmetad for building the (experimental) LVMetaD.
223 Fix resource leak when strdup fails in _get_device_status() (2.02.85).
224 Directly allocate buffer memory in a pvck scan instead of using a mempool.
225 Add configure --with-thin for segtypes "thin" and "thin_pool".
226 Fix raid shared lib segtype registration (2.02.87).
227
228 Version 2.02.88 - 19th August 2011
229 ==================================
230 Remove incorrect 'Breaking' error message from allocation code. (2.02.87)
231 Add lvconvert --merge support for raid1 devices split with --trackchanges.
232 Support lvconvert of -m1 raid1 devices to a higher number.
233 Add --trackchanges support to lvconvert --splitmirrors option for raid1.
234 Support splitting off a single raid1 rimage in lvconvert --splitmirrors.
235 Use sync_local_dev_names when reducing number of raid rimages in lvconvert.
236 Add -V as short form of --virtualsize in lvcreate.
237 Fix make clean not to remove Makefile. (2.02.87)
238
239 Version 2.02.87 - 12th August 2011
240 ==================================
241 Fix make distclean to remove stray dmeventd and exported symbols files.
242 Add global/detect_internal_vg_cache_corruption to lvm.conf.
243 Use memory pool locking to check for corruption of internal VG structs.
244 Cache and share generated VG structs.
245 Fix possible format instance memory leaks and premature releases in _vg_read.
246 Suppress locking error messages in monitoring init scripts.
247 If pipe in clvmd fails return busy instead of using uninitialised descriptors.
248 Add ability to reduce the number of mirrors in raid1 arrays to lvconvert.
249 Add dmeventd plugin for raid.
250 Replace free_vg with release_vg and move it to vg.c.
251 Remove INCONSISTENT_VG flag from the code.
252 Remove lock from cache in _lock_vol even if unlock fails.
253 Initialise clvmd locks before lvm context to avoid open descriptor leaks.
254 Remove obsolete gulm clvmd cluster locking support.
255 Suppress low-level locking errors and warnings while using --sysinit.
256 Remove unused inconsistent_seqno variable in _vg_read().
257 Remove meaningless const type qualifiers on cast type.
258 Add test for fcntl error in singlenode client code.
259 Remove --force option from lvrename manpage.
260 Add global/mirror_segtype_default to pick md raid or dm mirror as default.
261 Add configure --with-raid for new segtype 'raid' for MD RAID 1/4/5/6 support.
262 Change DEFAULT_UDEV_SYNC to 1 so udev_sync is used if there is no config file.
263 Add systemd unit file to provide lvm2 monitoring.
264 Compare file size (as well as timestamp) to detect changed config file.
265
266 Version 2.02.86 - 8th July 2011
267 ===============================
268 Remove unnecessary warning in pvcreate for MD linear devices.
269 Move snapshot removal activation logic into lib/activate.
270 Cope with a PV only discovered missing when creating deptree.
271 Abort operation if dm_tree_node_add_target_area fails.
272 Add activation/checks to lvm.conf to perform additional ioctl validation.
273 Always preload on suspend, even if no metadata changed (lvchange --refresh).
274 When suspending, automatically preload newly-visible existing LVs.
275 Teardown any stray devices with $COMMON_PREFIX during test runs.
276 Reinstate correct permissions when creating mirrors. [2.02.85]
277 Append 'm' attribute to pv_attr for missing PVs.
278 Annotate CLVMD_CMD_SYNC_NAMES in decode_cmd.
279 Remove enforcement of udev verification when using non-standard /dev location.
280 Keep an exclusive mirror non-clustered if reloaded e.g. during conversion.
281 Reject allocation if number of extents is not divisible by area count.
282 Fix cluster mirror creation to work with new mirror allocation algorithm.
283 Ignore activation/verify_udev_operations if dm kernel driver vsn < 4.18.
284 Add activation/verify_udev_operations to lvm.conf, disabled by default.
285 Call vg_mark_partial_lvs() before VG structure is returned from the cache.
286 Remove unused internal flag ACTIVATE_EXCL from the code.
287 Remove useless test of ACTIVATE_EXCL in lv_add_mirrors() clustered code path.
288 Add lv_activate_opts structure for activation (replacing activation flags).
289 Ignore inconsistent pre-commit metadata on MISSING_PV devs while activating.
290 Add proper udev library context initialization and finalization to liblvm.
291 Fix last snapshot removal to avoid table reload while a device is suspended.
292 Use dm_get_suspended_counter in replacement critical_section logic.
293 Downgrade critical_section errors to debug level until it is moved to libdm.
294 Fix ignored background polling default in vgchange -ay.
295 Fix pvmove activation sequences to avoid trapped I/O with multiple LVs.
296 Annotate critical section debug messages.
297 Fix reduction of mirrors with striped segments to always align to stripe size.
298 Validate mirror segments size.
299 Include lvmetad development code in tree.
300 Fix extent rounding for striped volumes never to reduce more than requested.
301 Fix create_temp_name to replace any '/' found in the hostname with '?'.
302 Always use append to file in lvmdump. selinux policy may ban file truncation.
303 Propagate test mode to clvmd to skip activation and changes to held locks.
304 Defer writing PV labels until vg_write.
305 Store label_sector only in struct physical_volume.
306 Permit --available with lvcreate so non-snapshot LVs need not be activated.
307 Report sector containing label in verbose message.
308 Clarify error message when unable to convert an LV into a snapshot of an LV.
309 Add and use dev_open_readonly and variations.
310 Do not log a superfluous stack message when the lv is properly processed.
311 Do not issue an error message when unable to remove .cache on read-only fs.
312 Avoid memlock size mismatch by preallocating stdio line buffers.
313 Rewrite vgreduce --removemissing --force to share lvconvert code.
314 Reorganize lvconvert --repair code to allow reuse.
315
316 Version 2.02.85 - 29th April 2011
317 =================================
318 Add new obtain_device_list_from_udev setting to lvm.conf.
319 Obtain device list from udev by default if LVM2 is compiled with udev support.
320 Add test for vgimportclone and querying of vgnames with duplicate pvs.
321 Avoid use of released memory when duplicate PV is found.
322 Add "devices/issue_discards" to lvm.conf.
323 Issue discards on lvremove and lvreduce etc. if enabled and supported.
324 Add seg_pe_ranges and devices fields to liblvm.
325 Fix incorrect tests for dm_snprintf() failure.
326 Fix some unmatching sign comparation gcc warnings in the code.
327 Support lv_extend() on empty LVs.
328 Avoid regenerating cache content when exported VG buffer is unchanged.
329 Extend the set of memory regions that are not locked to memory.
330 Workaround some problems when compiled for valgrind memcheck.
331 Support controlled quit of the lvm_thread_fn function in clvmd.
332 Fix reading of unallocated memory in lvm1 format import function.
333 Replace several strncmp() calls with id_equal().
334 Fix lvmcache_info transfer to orphan_vginfo in _lvmcache_update_vgname().
335 Fix -Wold-style-definition gcc warnings.
336 Rename MIRROR_NOTSYNCED to LV_NOTSYNCED.
337 Fix _move_lv_segments to handle empty LVs.
338 Fixes for lvconvert (including --repair) of temporary mirror stacks.
339 Avoid potential loop when removing mirror images.
340 Fix mirror removal always to take account of preferences as to which.
341 Fix MIRRORED flag usage.
342 Remove error messages issued by device_is_usable when run as non-root.
343 Add missing \0 for grown debug object in _bitset_with_random_bits().
344 Fix allocation of system_id buffer in volume_group structure.
345 Fix readlink usage inside get_primary_dev().
346 Use format instance mempool where possible and adequate.
347 Call destroy_instance for any PVs found in VG structure during vg_free call.
348 Add new free_pv_fid fn and use it throughout to free all attached fids.
349 Use only vg_set_fid and new pv_set_fid fn to assign the format instance.
350 Make create_text_context fn static and move it inside create_instance fn.
351 Add mem and ref_count fields to struct format_instance for own mempool use.
352 Use new alloc_fid fn for common format instance initialisation.
353 Optimise _get_token() and _eat_space().
354 Add _lv_postorder_vg() to improve efficiency for all LVs in VG.
355 Add gdbinit script for debugging.
356 Use hash tables to speedup string search in vg_validate().
357 Refactor allocation of VG structure adding alloc_vg().
358 Avoid possible endless loop in _free_vginfo when 4 or more VGs have same name.
359 Use empty string instead of /dev// for LV path when there's no VG.
360 Don't allocate unused VG mempool in _pvsegs_sub_single.
361 Do not send uninitialised bytes in local clvmd messages.
362 Support --help option for clvmd and return error for unknown option.
363 Avoid reading freed memory when printing LV segment type.
364 Fix syslog initialisation in clvmd to respect lvm.conf setting.
365 Fix possible overflow in maximum stripe size and physical extent size.
366 Improve pvremove error message when PV belongs to a VG.
367 Extend normal policy to allow mirror logs on same PVs as images if necessary.
368 Improve cling policy to recognise PVs already used during the transaction.
369 Improve normal allocation algorithm to include clinging to existing areas.
370 Add allocation/maximise_cling & mirror_logs_require_separate_pvs to lvm.conf.
371 Adapt metadata balancing code to work with metadata handling changes.
372 Add old_id field to physical_volume and fix pvchange -u for recent changes.
373 Allow pvresize on a PV with two metadata areas.
374 Change pvcreate to use new metadata handling interface.
375 Restructure existing pv_setup and pv_write and add pv_initialise.
376 Add internal interface to support adding and removing metadata areas.
377 Allow internal indexing of metadata areas (PV id + mda order).
378 Generalise internal format_instance infrastrusture for PV and VG use.
379 Handle decimal digits with --units instead of ignoring them silently.
380 Fix remaining warnings and compile with -Wpointer-arith.
381 Fix gcc warnings for unused variables and const casts.
382 Add stack backtraces for error paths in process_each_lv().
383 Temporarily suppress error from calling yes_no_prompt while locks are held.
384 Replace void* with char* arithmetic in _text_write, _text_read & send_message.
385 Fix compilation without DEVMAPPER_SUPPORT.
386 Remove fs_unlock() from lv_suspend error path.
387 Allow memory to stay locked between leaving and re-entering critical sections.
388 Rename memlock to critical_section throughout.
389 Make pv_min_size configurable and increase to 2048KB to exclude floppy drives.
390 Add find_config_tree_int64 to read 64-bit ints from config.
391 Ensure resuming exclusive cluster mirror continues to use local mirror target.
392 Clear temporary postorder LV status flags to allow re-use with same LV struct.
393 Remove invalid snapshot umount mesg which floods syslog from dmeventd plugin.
394 Add extended examples to pvmove man page.
395 Support LVM_TEST_DEVDIR env var for private /dev during testing.
396
397 Version 2.02.84 - 9th February 2011
398 ===================================
399 Fix CRC32 calculation on big endian CPU (2.02.75).
400
401 Version 2.02.83 - 4th February 2011
402 ===================================
403 Allow exclusive activation of snapshots in a cluster.
404 Leave EX lock unchanged when suspending a device in clvmd.
405 Use sync_dev_names in unlock_vg macro for cluster-wide dev name sync.
406 Fix fs operation stack handling when multiple operations on same device.
407 Increase hash table size to 1024 lv names and 64 pv uuids.
408 Remove fs_unlock() from lv_resume path.
409 Fix wipe size when setting up mda.
410 Remove unneeded checks for open_count in lv_info().
411 Synchronize with udev before checking open_count in lv_info().
412 Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested.
413 Add "dmsetup ls --tree" output to lvmdump.
414 Fix udev synchronization with no-locking --sysinit (2.02.80).
415 Improve man page style consistency for pvcreate, pvremove, pvresize, pvscan.
416 Avoid rebuilding of uuid validation table.
417 Improve lvcreate error text from insufficient "extents" to "free space".
418 Always use O_DIRECT when opening block devices to check for partitioning.
419
420 Version 2.02.82 - 24th January 2011
421 ===================================
422 Bring lvscan man page up-to-date.
423 Fix lvchange --test to exit cleanly.
424 Add change_tag to toollib.
425 Allow multiple pvchange command line options to be specified together.
426 Do not fail pvmove polling if another process cleaned up first.
427 Avoid clvmd incrementing dlm lockspace reference count more than once.
428 Add -f (don't fork) option to clvmd and fix clvmd -d<num> description.
429
430 Version 2.02.81 - 17th January 2011
431 ===================================
432 Do not scan devices in dev_reset_error_count().
433 Skip unnecessary LOCK_NULL unlock call during volume deactivation.
434 Skip fs_unlock when calling exec_cmd within activation code (for modprobe).
435 Extend exec_cmd params to specify when device sync (fs_unlock) is needed.
436 Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80)
437 Introduce sync_local_dev_names and CLVMD_CMD_SYNC_NAMES to issue fs_unlock.
438 Accept fusion fio in device type filter.
439 Add ability to convert mirror log type from disk to mirrored.
440
441 Version 2.02.80 - 10th January 2011
442 ===================================
443 Use same dm cookie for consecutive dm ops in same VG to reduce udev waits.
444 Speed up command processing by caching resolved config tree.
445 Pass config_tree to renamed function import_vg_from_config_tree().
446 Detect NULL handle in get_property().
447 Fix superfluous /usr in ocf_scriptdir instalation path.
448 Add --with-ocfdir configurable option.
449 Add aclocal.m4 (for pkgconfig).
450 Fix memory leak in persistent filter creation error path.
451 Check for errors setting up dm_task struct in _setup_task().
452 Fail polldaemon creation when lvmcache_init() fails.
453 Return PERCENT_INVALID for errors in _copy_percent() and _snap_percent().
454 Remove some unused variables.
455 Improve general lvconvert man page description.
456 Return 0 from cmirrord initscript 'start' if daemon is already running.
457 Fix wrongly paired unlocking of VG_GLOBAL in pvchange. (2.02.66)
458 Add backtraces for backup and backup_remove fail paths.
459 Detect errors from dm_task_set calls in _get_device_info (dmeventd).
460 Add backtraces for archive and backup_locally in check_current_backup().
461 Fix memory leak in debug mode of restart_clvmd() error path.
462 Log error message for pthread_join() failure in clvmd.
463
464 Version 2.02.79 - 20th December 2010
465 ====================================
466 Remove some unused variables.
467 Add missing test for reallocation error in _find_parallel_space().
468 Add checks for allocation errors in config node cloning.
469 Fix error path if regex engine cannot be created in _build_matcher().
470 Use char* arithmetic in target_version(), _process_all() & _targets().
471 Fixing const cast gcc warnings in the code.
472 Check read() and close() results in _get_cmdline().
473 Add const for struct config_node usage.
474 Fix NULL pointer check in error path in clvmd do_command(). (2.02.78)
475 Fix device.c #include to ensure 64-bit fopen64 use. (2.02.51)
476 Add copy_percent and snap_percent to liblvm.
477 Enhance vg_validate to ensure integrity of LV and PV structs referenced.
478 Enhance vg_validate to check composition of pvmove LVs.
479 Create /var/run/lvm directory during clvmd initialisation if missing.
480 Use new dm_prepare_selinux_context instead of dm_set_selinux_context.
481 Avoid revalidating the label cache immediately after scanning.
482 Support scanning for a single VG in independent mdas.
483 Don't skip full scan when independent mdas are present even if memlock is set.
484 Set cmd->independent_metadata_areas if metadata/dirs or disk_areas in use.
485 Cope better with an undefined target_percent operation in _percent_run.
486 Avoid writing to freed memory in vg_release and rename to free_vg. (2.02.78)
487
488 Version 2.02.78 - 6th December 2010
489 ===================================
490 Abort if segment tag allocation fails in pool format _add_stripe_seg.
491 Abort in _mirrored_transient_status if referenced log/image LV is not active.
492 Add backtraces for dev_set() and dev_close_immediate() errors in set_lv().
493 Log any unlink() error in clvmd remove_lockfile().
494 Log any pipe write() or close() errors in clvmd child_init_signal().
495 Detect if orphan vginfo was lost from cache before _lvmcache_update_vgname().
496 Do a full rescan if some device is missing in lvm1 format read_pvs_in_vg.
497 Add missing check that dm_pool_create succeeded in write_config_node().
498 Use dm_snprintf in clvmd-command.c to ensure an overlong buffer is truncated.
499 Don't write to buffer if its reallocation failed in clvmd do_command().
500 Switch from float to fixed point percentage handling.
501 Avoid misleading missing PV warnings in vgextend --restoremissing.
502 Fix memory leak when VG allocation policy in metadata is invalid.
503 Ignore unrecognised allocation policy found in metadata instead of aborting.
504 Factor out tag printing into _out_tags and avoid leaking string buffer.
505 Remove some unused variables & assignments.
506 Add missing vg_release calls in _vg_read_by_vgid.
507 Fix debug logging of derived flag LCK_CACHE in clvmd.
508 Fix test for no system_dir in _init_backup().
509 Disallow lvconvert ops that both allocate & free supplied PEs in a single cmd.
510 Fix liblvm seg_size to give bytes not sectors.
511 Add functions to look up LV/PV by name/uuid to liblvm.
512 Free cmd_context if fallback to LVM1 fails in lvm2_main().
513 Free device name buffer in dmsetup parse_loop_device_name() error paths.
514 Close format lib if init_format_fn fails in _init_formats().
515 Don't leave /proc/mounts open after dmeventd snapshot event processing.
516 Fix out-of-scope arg_vgnames use in process_each_lv().
517 Remove incorrect dm_task_destroy(NULL) from _node_clear_table() error path.
518 Add missing closedir in _rm_blks after removing stray LVM1 VG files.
519 Suppress 'No PV label' message when removing several PVs without mdas.
520 Fix default /etc/lvm permissions to be 0755. (2.02.66)
521
522 Version 2.02.77 - 22nd November 2010
523 ====================================
524 Allocate a pool for dummy VG in _pvsegs_sub_single.
525 Add PV and LV segment types and functions to liblvm.
526 Add set_property functions to liblvm.
527 Remove tag length restriction and allow / = ! : # & characters.
528 Support repetition of --addtag and --deltag arguments.
529 Add infrastructure for specific cmdline arguments to be repeated in groups.
530 Split the_args cmdline arguments and values into arg_props and arg_values.
531 Fix fsadm no longer to require '-f' to resize an unmounted filesystem.
532 Fix fsadm to detect mounted filesystems on older systems. (2.0.75)
533 Extend cling allocation policy to recognise PV tags (cling_by_tags).
534 Add allocation/cling_tag_list to lvm.conf.
535 Regenerate configure with 'autoreconf' for --enable-ocf. (2.02.76)
536
537 Version 2.02.76 - 8th November 2010
538 ===================================
539 Clarify error messages when activation fails due to activation filter use.
540 Add pacemaker script VolumeGroup.ocf with configure --enable-ocf.
541 Import make.tmpl into include/ Makefile.
542 Fix handling of online filesystem resize (using new fsadm return code).
543 Add DIAGNOSTICS section to fsadm man page.
544 Modify fsadm to return different status code for check of mounted filesystem.
545 Update VG metadata only once in vgchange when making multiple changes.
546 Allow independent vgchange arguments to be used together.
547 Automatically unmount invalidated snapshots in dmeventd.
548 Suppress some superfluous messages from clang static analysis.
549 Fix a deadlock caused by double close in clvmd.
550 Fix NULL pointer dereference on too-large MDA error path in _vg_read_raw_area.
551 Use static for internal _align_chunk() and _new_chunk() from pool-fast.c.
552 Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange.
553 Add lvm2app functions to query any pv, vg, or lv property / report field.
554
555 Version 2.02.75 - 25th October 2010
556 ===================================
557 Annotate more variables and parameters as const.
558 Fix missing variable initialization in cluster_send() function from cmirrord.
559 Fix pointer for VG name in _pv_resize_single error code path.
560 Fix warning for changed alignment requirements for dmeventd read/write func.
561 Add global/metadata_read_only to use unrepaired metadata in read-only cmds.
562 Don't take write lock in vgchange --refresh, --poll or --monitor.
563 Skip dm devices in scan if they contain only error targets or are empty.
564 Fix strict-aliasing compile warning in partition table scanning.
565 Fix pthread mutex usage deadlock in clvmd.
566 Automatically extend snapshots with dmeventd according to policy in lvm.conf.
567 Add activation/snapshot_autoextend_threshold/percent to lvm.conf.
568 Fix liblvm2cmd link order to support --as-needed.
569 Remove dependency on libm by replacing floor() by an integer-based algorithm.
570 Fix hang when repairing a mirrored-log that had both devs fail.
571 Convey need for snapshot-merge target in lvconvert error message and man page.
572 Add devices/disable_after_error_count config to limit access to failing devs.
573 Give correct error message when creating a too-small snapshot.
574 Implement vgextend --restoremissing to reinstate missing devs that return.
575 Make lvconvert respect --yes and --force when converting an inactive log.
576 Refactor and add 'get' functions for lv properties/fields.
577 Update script for fsadm testing.
578 Better support of noninteractive shell execution of fsadm.
579 Fix usage of --yes flag for ReiserFS resize in fsadm.
580 Fix detection of mounted filesystems for fsadm when udev is used.
581 Fix assignment of default value to LVM variable in fsadm.
582 Fix support for --yes flag for fsadm.
583 Do not execute lvresize from fsadm --dry-run.
584 Fix fsadm return error code from user's break action.
585 Allow CC to be overridden at build time (for 'scan-build make').
586 Rename 'flags' to 'status' in struct metadata_area.
587 Avoid segfault by limiting partial mode for lvm1 metadata. (2.02.74)
588 Use dm_zalloc and dm_pool_zalloc throughout.
589 Add pv_get_property and create generic internal _get_property function.
590 Add 'get' functions for pv and vg properties/fields.
591 Make generic GET_*_PROPERTY_FN macros with secondary macro for vg, pv & lv.
592 Add tags_format_and_copy() common function and call from _tags_disp.
593 Add id_format_and_copy() common function and call from _uuid_disp.
594 Refactor report.c '*_disp' functions to call supporting functions.
595 Move parts of metadata*.[ch] into new {pv|vg|lv}.[ch] files.
596 Fix vg_read memory leak with directory-based metadata.
597 Fix memory leak of config_tree in reinitialization code path.
598 Fix pool destruction order in dmeventd_lvm2_exit() to avoid leak debug mesg.
599 Read whole /proc/self/maps file before working with maps entries.
600 Speed up unquoting of quoted double quotes and backslashes.
601 Speed up CRC32 calculations by using a larger lookup table.
602
603 Version 2.02.74 - 24th September 2010
604 =====================================
605 Allow : and @ to be escaped with \ in device names of PVs.
606 Replace alloca with dm_malloc in _aligned_io to avoid stack corruption.
607 Fix partial mode operations for lvm1 metadata format.
608 Track recursive filter iteration to avoid refreshing while in use. (2.02.56)
609 Revert to old glibc vsnprintf behaviour in emit_to_buffer() to catch overflow.
610 Allocate buffer for metadata tags dynamically to remove 4k limit.
611 Add random suffix to archive file names to prevent races when being created.
612 Reinitialize archive and backup handling on toolcontext refresh.
613 Make poll_mirror_progress report PROGRESS_CHECK_FAILED if LV is not a mirror.
614 Like mirrors, don't scan origins if ignore_suspended_devices() is set.
615 Fix return type qualifier to avoid compiler warning. (2.02.69)
616 Automatically generate LSB Requires-Start for clvmd init script.
617 Fix return code of pvmove --abort PV.
618 Fix pvmove --abort to remove even for empty pvmove LV.
619 Add configure --with-default-data-alignment.
620 Update heuristic used for default and detected data alignment.
621 Add "devices/default_data_alignment" to lvm.conf.
622 Add implementation for simple numeric 'get' property functions.
623 Define GET_NUM_PROPERTY_FN macro to simplify numeric property 'get' function
624 Add properties.[ch] to lib/report using columns.h.
625 Add macro definitions to report infrastructure for character array length.
626 Remove explicit double quotes from columns.h 'id' entries.
627 Add 'flags' field to columns.h and define FIELD_MODIFIABLE.
628 Add vg_mda_size and vg_mda_free functions.
629 Simplify MD/swap signature detection in pvcreate and allow aborting.
630 Allow --yes to be used without --force mode.
631 Fix file descriptor leak in swap signature detection error path.
632 Detect and allow abort in pvcreate if LUKS signature is detected.
633 Always mask lock flags correctly when checking for LCK_WRITE.
634
635 Version 2.02.73 - 18th August 2010
636 ==================================
637 Fix potential for corruption during cluster mirror device failure.
638 Use 'SINGLENODE' instead of 'dead' in clvmd singlenode messages.
639 Ignore snapshots when performing mirror recovery beneath an origin.
640 Pass LCK_ORIGIN_ONLY flag around cluster.
641 Add suspend_lv_origin and resume_lv_origin using LCK_ORIGIN_ONLY.
642 Allow internal suspend and resume of origin without its snapshots.
643 Fix dev_manager_transient to access -real device not snapshot-origin.
644 Monitor origin -real device below snapshot instead of overlay device.
645 Don't really change monitoring status when in test mode.
646 Fix some exit statuses when starting/stopping monitoring fails.
647 Enable snapshot monitoring by default when dmeventd is enabled.
648 Move cloned libdevmapper-event client code from segments into lib/activate.
649 Fix 'lvconvert --splitmirrors' in cluster operation.
650 Fix clvmd init script exit code to return 4 when executed as non-root user.
651 Change default alignment of pe_start to 1MB.
652 Add --norestorefile option to pvcreate.
653 Require --restorefile when using pvcreate --uuid.
654 Recognise and give preference to md device partitions (blkext major).
655 Never scan internal LVM devices.
656 Don't ignore user-specified PVs in split-mirror operations. (2.02.71)
657 Fix data corruption bug in cluster mirrors.
658 Require logical volume(s) to be explicitly named for lvconvert --merge.
659 Avoid changing aligned pe_start as a side-effect of very verbose logging.
660 Use built-in rule for device aliases: block/ < dm- < disk/ < mapper/ < other.
661 Fix const warning in dev_manager_info() and _dev_manager_lv_rmnodes().
662 Fix const warning in archive_file structure from archive.c.
663 Clean generated files .exported_symbols_generated, example.conf for distclean.
664 Handle failure of all mirrored log devices and all but one mirror leg.
665 Disallow 'mirrored' log type for cluster mirrors.
666 Do not use VPATH in include/Makefile.
667 Fix exported_symbols generation to use standard compiler arguments.
668 Use #include <> not "" in lvm2app.h which gets installed on the system.
669 Make lib and liblvm.device-mapper wait for include file generation.
670 Fix configure to supply DEFAULT_RUN_DIR to Makefiles.
671 Fix allocation of wrong number of mirror logs with 'remove' fault policy.
672
673 Version 2.02.72 - 28th July 2010 [CVE-2010-2526]
674 =================================================
675 Change clvmd to communicate with lvm2 via a socket in /var/run/lvm.
676 Return controlled error if clvmd is run by non-root user.
677 Add configure --default-run-dir for /var/run/lvm.
678 Never use clvmd singlenode unless explicitly requested with -Isinglenode.
679
680 Version 2.02.71 - 28th July 2010
681 ================================
682 Document LVM fault handling in doc/lvm_fault_handling.txt.
683 Make vgck warn about missing PVs.
684 Clarify help text for vg_mda_count.
685 Check if cluster log daemon is running before allowing cmirror create.
686 Add unit-tests dir.
687 Add configure --enable-testing and reports and report-generators dirs.
688 Correct LV list order used by lvconvert when splitting a mirror.
689 Check if LV with specified name already exists when splitting a mirror.
690 Fix suspend/resume logic for LVs resulting from splitting a mirror.
691 Update pvcreate, {pv|vg}change, and lvm.conf man pages about metadataignore.
692 Switch cmirrord and clvmd to use dm_create_lockfile.
693 Allow clvmd pidfile to be configurable.
694 Update comments about memory handling in lvm2app.h.
695 Add more verbose messages while checking volume_list and hosttags settings.
696 Add log_error when strdup fails in {vg|lv}_change_tag().
697 Remove unnecessary includes in liblvm files.
698 Use __attribute__ consistently throughout.
699 Fix redundant declarations and always compile with -Wredundant-decls.
700 Fix possible hang when all mirror images of a mirrored log fail.
701 Pass metadataignore to pv_create, pv_setup, _mda_setup, and add_mda.
702 Init mda->list in mda_copy.
703 Do not log backtrace in valid _lv_resume() code path.
704 Cleanup help strings in configure.in.
705 Prompt if metadataignore with vgextend or pvchange would adjust vg_mda_copies.
706 Adjust vg_mda_copies if metadataignore given with vgextend or pvchange.
707 Adjust auto-metadata repair and caching logic to try to cope with empty mdas.
708
709 Version 2.02.70 - 6th July 2010
710 ===============================
711 Remove log directly if all mirror images of a mirrored log fail.
712 Randomly select which mdas to use or ignore.
713 Add some missing standard configure.in checks.
714 Add printf format attributes to yes_no_prompt and fix a caller.
715 Always pass unsuspended dm devices through persistent filter to other filters.
716 Move test for suspended dm devices ahead of other filters.
717 Fix another segfault in clvmd -R if no response from daemon. (2.02.68)
718 Remove superfluous suspended device counter from clvmd.
719 Fix lvm shell crash when input is entirely whitespace.
720 Update partial mode warning message.
721 Preserve memlock balance in clvmd when activation triggers a resume.
722 Restore the removemissing behaviour of lvconvert --repair --use-policies.
723
724 Version 2.02.69 - 30th June 2010
725 ================================
726 Fix vgremove to allow removal of VG with missing PVs. (2.02.52)
727 Add metadata/vgmetadatacopies to lvm.conf.
728 Add --metadataignore to pvcreate and vgextend.
729 Add vg_mda_copies, pv_mda_used_count and vg_mda_used_count to reports.
730 Describe --vgmetadatacopies in lvm.conf and other man pages.
731 Add --[vg]metadatacopies to select number of mdas to use in a VG.
732 Make the metadata ignore bit control read/write metadata areas in a PV.
733 Add pvchange --metadataignore to set or clear a metadata ignore bit.
734 Refactor metadata code to prepare for --metadataignore / --vgmetadatacopies.
735 Ensure region_size of mirrored log does not exceed its full size.
736 Generate liblvm2app exported symbols from header file.
737 Preload libc locale messages to prevent reading it in memory locked state.
738 Fix handling of simultaneous mirror image and mirrored log image failure.
739
740 Version 2.02.68 - 23rd June 2010
741 ================================
742 Fix clvmd initscript status to print only active clustered LVs.
743 Add lv_path to reports to offer full /dev pathname.
744 Fix typo in warning message about missing device with allocated data areas.
745 Add device name and offset to raw_read_mda_header error messages.
746 Honour log argument when down-converting stacked mirror.
747 Sleep to workaround clvmd -S race: socket closed early and server drops cmd.
748 Use early udev synchronisation and update of dev nodes for clustered mirrors.
749 Remove incorrect inclusion of kdev_t.h from cmirrord/functions.h.
750 Add man pages for lvmconf and non-existent lvmsadc and lvmsar tools.
751 Exit successfully when using -o help (but not -o +help) with LVM reports.
752 Do not use internal DLM lock definitions in generic LVM2 clvmd code.
753 Add --force, --nofsck and --resizefs to lvresize/extend/reduce man pages.
754 Fix lvm2cmd example in documentation.
755 Allow use of lvm2app and lvm2cmd headers in C++ code.
756 Remove unused #includes from clvmd files and introduce clvmd-common.h.
757 Move common inclusions to clvmd-common.h.
758 Use #include "" for libdevmapper.h and configure.h throughout tree.
759 Fix LVM_PATH expansion when exec_prefix=NONE. (2.02.67)
760 Fix segfault in clvmd -R if no response from daemon received.
761
762 Version 2.02.67 - 4th June 2010
763 ===============================
764 Handle failed restart of clvmd using -S switch properly.
765 Fix clvmd initscript restart command to start clvmd if not yet running.
766 Use built-in absolute paths in clvmd (clvmd restart and PV and LV queries).
767 Require partial option in lvchange --refresh for partial LVs.
768 Do not fail lvm_init() if init_logging() or _init_rand() generates an errno.
769 Don't merge unchanged persistent cache file before dumping if tool scanned.
770 Fix incorrect memory pool deallocation while using vg_read for files.
771 Add --type parameter description to the lvcreate man page.
772 Replace strncmp kernel version number checks with proper ones.
773 Avoid selecting names under /dev/block if there is an alternative.
774 Update clustered log kernel module name to log-userspace for 2.6.31 onwards.
775 Add replicators' LVs to dtree for activation.
776 Supress activation message if there is a missing replicator VG.
777 Fix scripts/relpath.awk to work in mawk
778 Extend lock_vol to check for missing replicator VGs first.
779 Update _process_one_vg and process_each_lv_in_vg to populate cmd_vg.
780 Add cmd_vg structure and associated functions for replicator.
781 Extend _lv_each_dependency() to handle replicator dependencies.
782 Add check_replicator_segment() to catch internal replicator errors.
783 Initial support for replicator metadata.
784 Extend process_each_lv_in_vg() to provide list of failed lvnames.
785 Consistently return ECMD_FAILED if process_each_*lv() is interrupted.
786
787 Version 2.02.66 - 20th May 2010
788 ===============================
789 If unable to obtain snapshot percentage leave value blank on reports.
790 Add install_system_dirs and install_initscripts makefile targets.
791 Add configure options for system and locking directories.
792 Generate example.conf so default lvm.conf contents can be configured.
793 Install lvmconf script by default.
794 Remove unnecessary versioned dmeventd plugin symlinks.
795 Add tests for lvm_vgname_from_{pvid|device}.
796 Add lvm2app interfaces to lookup a vgname from a pvid and pvname.
797 Update pvchange to always obtain a vg handle for each pv to process.
798 Add find_vgname_from_{pvname|pvid} functions.
799 Add pvid_from_devname and lvmcache_vgname_from_pvid lvmcache functions.
800 Validate orphan and VG_GLOBAL lock order too.
801 Accept orphan VG names as parameters to lock_vol() and related functions.
802 Use is_orphan_vg in place of hard-coded prefix tests and add is_global_vg.
803
804 Version 2.02.65 - 17th May 2010
805 ===============================
806 Fix clvmd init script never to deactivate non-clustered volume groups.
807 Disallow vgchange --clustered if there are active mirrors or snapshots.
808 Introduce lv_is_mirrored.
809 Use /bin/bash for scripts with bashisms.
810 Skip internal lvm devices in scan if ignore_suspended_devices is set.
811 Do not merge old device cache after we run full scan. (2.02.56)
812 Add pkgconfigdir Makefile variable for make install override.
813 Configure pkgconfig udev and selinux dependencies.
814 Switch Libs.private to Requires.private in devmapper.pc and lvm2app.pc.
815 Use pkgconfig Requires.private for devmapper-event.pc.
816 Add libdevmapper to linked libdevmapper-event.so.
817 Link liblvm2cmd.so with libdevmapper-event and libdevmapper.
818 Fix truncated total size displayed by pvscan.
819 Add new --sysinit compound option to vgchange and lvchange.
820 Drop duplicate errors for read failures and missing devices to verbose level.
821 Use $(libdir)/lvm2 with make install_lvm2_plugin.
822 Use $(libdir)/device-mapper with make install_dm_plugin.
823 Add dm_list_splice() function to join two lists together.
824
825 Version 2.02.64 - 30th April 2010
826 =================================
827 Avoid pointless initialisation when the 'version' command is run directly.
828 Fix memory leak for invalid regex pattern input.
829 Display invalid regex pattern for filter configuration in case of error.
830 Remove no-longer-used arg_ptr_value.
831 Fix -M and --type to use strings, not pointers that change on config refresh.
832 Fix lvconvert error message when existing mirrored LV is not found.
833 Set appropriate udev flags for reserved LVs.
834 Disallow the direct removal of a merging snapshot.
835 Don't preload the origin when removing a snapshot whose merge is pending.
836 Disallow the addition of mirror images while a conversion is happening.
837 Disallow primary mirror image removal when mirror is not in-sync.
838 Remove obsolete --name parameter from vgcfgrestore.
839 Add -S command to clvmd to restart the daemon preserving exclusive locks.
840 Increment lvm2app version from 1 to 2 (memory allocation changes).
841 Change lvm2app memory alloc/free for pv/vg/lv properties.
842 Change daemon lock filename from lvm2_monitor to lvm2-monitor for consistency.
843 Install symbolic .so links with relative paths between usrlibdir and libdir.
844 Add awk script relpath.awk to calculate paths for relative symlinks.
845 Use @AWK@ in makefiles.
846 Fix double DESTDIR usage for infodir and mandir.
847
848 Version 2.02.63 - 14th April 2010
849 =================================
850 Rename lvm_dump.sh to lvmdump.sh.
851 Allow incomplete mirror restore in lvconvert --repair upon insufficient space.
852 Do not reset position in metadata ring buffer on vgrename and vgcfgrestore.
853 Allow VGs with active LVs to be renamed.
854 Use UUIDs instead of names while processing event handlers.
855 Only pass visible LVs to tools in cmdline VG name/tag expansions without -a.
856 Use typedefs for toollib process_each functions.
857 Use C locales and use_mlockall for clvmd.
858 Refactor code related to vg->pvs list and add pv->vg link.
859 Mask LCK_HOLD flag in cluster VG locks for backwards compatibility.
860 Add activation/polling_interval to lvm.conf as --interval default.
861 Don't ignore error if resuming any LV fails in resume_lvs.
862 Skip closing persistent filter cache file if open failed.
863 Install .a and .so links into $(usrlibdir).
864 Add --enable-write_install options to install user-writable files.
865 Use INSTALL_PROGRAM/DATA/WDATA target.
866 Switch from using VPATH to vpath in Makefiles.
867 Permit mimage LVs to be striped in lvcreate, lvresize and lvconvert.
868 Fix pvmove allocation to take existing parallel stripes into account.
869 Add pvmove_source_seg to struct lv_segment.
870 Fix incorrect removal of symlinks after LV deactivation fails.
871 Fix is_partitioned_dev not to attempt to reopen device.
872 Fix another thread race in clvmd.
873 Refactor management of vg->pvs list.
874 Fix lcov rules and generate better coverage report.
875 Improve vg_validate to detect some loops in lists.
876 Change most remaining log_error WARNING messages to log_warn.
877 Always use blocking lock for VGs and orphan locks.
878 Allocate all memory for segments from private VG mempool.
879 Return newly allocated PV segment after segment split.
880 Optimise searching PV segments for seeking the most recently-added.
881 Remove vg_validate call when parsing cached metadata.
882 Use hash table of LVs to speed up parsing of text metadata with many LVs.
883 Fix two vg_validate messages, adding whitespace and parentheses.
884 When dmeventd is not forking because of -d flag, don't kill parent process.
885 Fix 'make install' when $(builddir) is different from $(srcdir).
886 Fix dso resource leak in error path of dmeventd.
887 Use C locales and use_mlockall for dmeventd.
888 Fix --alloc contiguous policy only to allocate one set of parallel areas.
889 Do not allow {vg|lv}change --ignoremonitoring if on clustered VG.
890 Improved dependency tracking for dmeventd and liblvm2cmd sources.
891 Improved Makefile rules for distclean and cflow targets.
892 Add ability to create mirrored logs for mirror LVs.
893 Fix clvmd cluster propagation of dmeventd monitoring mode.
894 Allow ALLOC_ANYWHERE to split contiguous areas.
895 Use INTERNAL_ERROR for internal errors throughout tree.
896 Add some assertions to allocation code.
897 Introduce pv_area_used into allocation algorithm and add debug messages.
898 Add activation/monitoring to lvm.conf.
899 Add --monitor and --ignoremonitoring to lvcreate.
900 Allow dynamic extension of array of areas selected as allocation candidates.
901 Export and use only valid cookie value in test suite.
902 Remove const modifier for struct volume_group* from process_each_lv_in_vg().
903 Don't allow resizing of internal logical volumes.
904 Fix libdevmapper-event pkgconfig version string to match libdevmapper.
905 Avoid scanning all pvs in the system if operating on a device with mdas.
906 Add configure --with-clvmd=singlenode to use clvmd w/o cluster infrastructure.
907 Get stacktrace if testsuite test drops core and lvm was built with debugging.
908 Disable long living process flag in lvm2app.
909 Fix pvcreate device md filter check.
910 Suppress repeated errors about the same missing PV uuids.
911 Bypass full device scans when using internally-cached VG metadata.
912 Only do one full device scan during each read of text format metadata.
913 Remove unnecessary full_scan parameter from get_vgids and get_vgnames calls.
914 Look up missing PVs by uuid not dev_name in _pvs_single to avoid invalid stat.
915 Make find_pv_in_vg_by_uuid() return same type as related functions.
916 Introduce is_missing_pv().
917 Fix clvmd Makefile to not overwrite LIBS from template definition.
918
919 Version 2.02.62 - 9th March 2010
920 ================================
921 Add use_mlockall and mlock_filter to activation section of lvm.conf.
922 Add default alternative to mlockall using mlock to reduce pinned memory size.
923 Remove -rdynamic from static builds.
924 Update checks for pthread, readline & selinux libs and link only when needed.
925 Introduce makefile vars UDEV_LIBS, DL_LIBS, SELINUX_LIBS, STATIC_LIBS.
926 Introduce makefile vars LVMINTERNAL_LIBS, READLINE_LIBS, PTHREAD_LIBS.
927 Toggle configure help to print --disable-fsadm.
928 Use $() instead of ${} consistently for all Makefile variables.
929 Replace CFLOW_CMD only in make.tmpl and use it as variable elsewhere.
930 Use $(top_builddir) for inclusion of make.tmpl in Makefiles.
931 Fix autoconf warning about ignored datarootdir.
932 Increase AC_PREREQ version to 2.61 (for AC_PROC_SED, AC_PROG_MKDIR_P).
933 Handle misaligned devices that report alignment_offset of -1.
934 Extend core allocation code in preparation for mirrored log areas.
935 Rewrite clvmd init script.
936 Remove lvs_in_vg_activated_by_uuid_only call.
937 No longer fall back to looking up active devices by name if uuid not found.
938 Don't touch /dev in vgmknodes if activation is disabled.
939 Update lvm2app.h Doxygen comments and add lvm2app Doxygen config file.
940 Update nightly tests and lvm2app unit tests to cover tags.
941 Add lvm2app functions lvm_{vg|lv}_{get|add|remove}_tag() functions.
942 Add dm_pool_strdup to allocate and copy memory in tag library function.
943 Refactor vgcreate, vgchange, and lvchange for tag library function.
944 Refactor snapshot-merge deptree and device removal to support info-by-uuid.
945
946 Version 2.02.61 - 15th February 2010
947 ====================================
948 Fix some consts and floating point gcc warnings.
949 Fix dm_report_field_uint64 function to accept 64-bit ints.
950 Change readhead display to use 32-bit -1 const instead of 64-bit.
951 Add LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable.
952 Remove hard-coding that skipped _mimage devices from 11-dm-lvm.rules.
953 Use udev transactions in test suite.
954 Set udev state automatically instead of using LVM_UDEV_DISABLE_CHECKING.
955 Add lvm_pv_get_size, lvm_pv_get_free and lvm_pv_get_dev_size to lvm2app.
956 Change lvm2app to return all sizes in bytes as documented (not sectors).
957 Add 'fail_if_percent_unsupported' arg to _percent and _percent_run.
958 Remove false "failed to find tree node" error when activating merging origin.
959 Exit with success when lvconvert --repair --use-policies performs no action.
960 Accept a list of LVs with 'lvconvert --merge @tag' using process_each_lv.
961 Avoid unnecessary second resync when adding mimage to core-logged mirror.
962 Exclude internal VG names and uuids from lists returned through lvm2app.
963 Add %ORIGIN support to lv{create,extend,reduce,resize} --extents.
964 Add _mda_copy to clone a struct metadata_area.
965 Remove pointless versioned symlinks to dmeventd plugin libraries.
966 Fix dmeventd snapshot plugin build dependency.
967 Make clvmd -V return status zero.
968 Remove unnecessary 'dmsetup resume' following 'dmsetup create' in tests.
969 Fix cmirrord segfault in clog_cpg list processing when converting mirror log.
970 Deactivate temporary pvmove mirror cluster-wide when activating it fails.
971 Always query device by uuid and not name in clvmd.
972 Add missing metadata vg_reverts in pvmove error paths.
973 Unlock shared lock in clvmd if activation calls fail.
974 Return success from dev_manager_info with non-existent uuid if ioctl succeeds.
975
976 Version 2.02.60 - 23rd January 2010
977 ===================================
978 Extend cmirrord man page.
979 Sleep before first progress check if pvmove/lvconvert interval has prefix '+'.
980 Default to checking progress before waiting in _wait_for_single_lv.
981 Fix cmirror initscript (including syntax error).
982 Eliminate avoidable ioctls for checking open_count in _add_new_lv_to_dtree.
983 Disable memory debugging if dmeventd is configured. (Not thread-safe.)
984 Fix first log message prefix in syslog for dmeventd plugins.
985 Fix exported symbols names for dmeventd lvm2 wrapper plugin.
986 Make failed locking initialisation messages more descriptive.
987
988 Version 2.02.59 - 21st January 2010
989 ===================================
990 Add libdevmapper-event-lvm2.so to serialise dmeventd plugin liblvm2cmd use.
991 Cleanup memory initialization and freeing in pv_read() and pv_create().
992 Clear pointer and counters after their release in _fin_commands().
993 Stop dmeventd trying to access already-removed snapshots.
994 Remove (fallback) /dev mknod from cmirrord.
995 Add t-topology-support.sh and t-snapshot-merge.sh tests.
996 Fix clvmd to never scan suspended devices.
997 Fix dmeventd build outside source tree.
998 Assorted cmirror code changes to remove various compiler warnings.
999 Fix detection of completed snapshot merge.
1000 Add Red Hat cmirror initscript (unfinished).
1001 Add cmirrord man page (incomplete).
1002 Make cluster log communication structures architecture independant.
1003 Fix cluster log in-memory bitmap handling.
1004 Improve snapshot merge metadata import validation.
1005 Improve target type compatibility checking in _percent_run().
1006 Add 'target_status_compatible' method to 'struct segtype_handler'.
1007 Change underscore to hyphen in table line for clustered log type.
1008
1009 Version 2.02.58 - 14th January 2010
1010 ===================================
1011 Cleanup some minor gcc warnings.
1012 Add --merge to lvconvert to merge a snapshot into its origin.
1013 Fix clvmd automatic target module loading crash (no reset_locking fn).
1014 Fix allocation code not to stop at the first area of a PV that fits.
1015
1016 Version 2.02.57 - 12th January 2010
1017 ===================================
1018 Ensure exactly one process returns from poll_daemon(), never two.
1019 Reset _vgs_locked in lvmcache_init() in child after forking.
1020 Define {DM, LVM}_UDEV_DISABLE_CHECKING=1 environment variables during tests.
1021 Enable udev_sync and udev_rules in lvm.conf by default while running tests.
1022 If LVM_UDEV_DISABLE_CHECKING in set in environment, disable udev warnings.
1023 Add --splitmirrors to lvconvert to split off part of a mirror.
1024 Change background polldaemon's process name to "(lvm2)".
1025 Allow vgremove to remove a VG with PVs missing after a prompt.
1026 Return success in lvconvert --repair --use-policies on failed allocation.
1027 Keep log type consistent when changing mirror image count.
1028 Always set environment variables for an LVM2 device in 11-dm-lvm.rules.
1029 Add activation/udev_rules config option in lvm.conf.
1030 Add consts to text metadata flag structs.
1031 Add macros outfc, outsize, outhint and function out_text_with_comment.
1032 Reimplement report FIELD macro using offsetof instead of static structs.
1033 Fix fsadm man page typo (fsdam).
1034 Rename mirror_device_fault_policy to mirror_image_fault policy.
1035 Remove empty PV devices if lvconvert --repair is using defined policies.
1036 Use fixed buffer to prevent stack overflow in persistent filter dump.
1037 Use extended status of new kernel snapshot target 1.8.0 to detect when empty.
1038 Insert stack macros in suspend_lv, resume_lv & (de)activate_lv callers.
1039 Add --poll flag to vgchange and lvchange to control background daemon launch.
1040 Propagate metadata commit and revert notifications to other cluster nodes.
1041 Use proper mask for VG lock mode in clvmd.
1042 Allow precommitted metadata to be dropped from lvmcache.
1043 Move processing of VG locks to separate function in clvmd.
1044 Properly decode all flags in clvmd messages including VG locks.
1045 Properly handle precommitted cache flag when only committed metadata present.
1046 Resume renamed volumes in reverse order to preserve memlock pairing.
1047 Drop cached metadata after device was auto-repaired and removed from VG.
1048 Clear MISSING_PV flag if PV reappeared and is empty.
1049 Fix removal of multiple devices from a mirror.
1050 Also clean up PVs flagged as missing in vgreduce --removemissing --force.
1051 Introduce INTERNAL_ERROR macro for error messages and use throughout.
1052 Remove superfluous returns from void functions.
1053 Destroy allocated mempool in _vg_read_orphans() error path.
1054 Fix some pvresize and toollib error paths with missing VG releases/unlocks.
1055 Explicitly call suspend for temporary mirror layer.
1056 Allow use of precommitted metadata when a PV is missing.
1057 Add memlock information to do_lock_lv debug output.
1058 Always bypass calls to remote cluster nodes for non-clustered VGs.
1059 Permit implicit cluster lock conversion in pre/post callbacks on local node.
1060 Permit implicit cluster lock conversion to the lock mode already held.
1061 Fix lock flag masking in clvmd so intended code paths get invoked.
1062 Replace magic masks in cluster locking code by defined masks.
1063 Remove newly-created mirror log from metadata if initial deactivation fails.
1064 Correct activated or deactivated text in vgchange summary message.
1065 Improve pvmove error message when all source LVs are skipped.
1066 Fix memlock imbalance in lv_suspend if already suspended.
1067 Fix pvmove test mode not to poll (and fail).
1068 Fix vgcreate error message if VG already exists.
1069 Fix tools to use log_error when aborted due to user response to prompt.
1070 Fix ignored readahead setting in lvcreate --readahead.
1071 Fix clvmd memory leak in lv_info_by_lvid by calling release_vg.
1072 If aborting due to internal error, always send that message to stderr.
1073 Add global/abort_on_internal_errors to lvm.conf to assist testing.
1074 Fix test Makefiles when builddir and srcdir differ.
1075 Impose limit of 8 mirror images to match the in-kernel kcopyd restriction.
1076 Use locking_type 3 (compiled in) for lvmconf --enable-cluster.
1077 Remove list.c and list.h with no-longer-used dm_list macros and functions.
1078 Log failure type and recognise type 'F' (flush) in dmeventd mirror plugin.
1079 Extend internal PV/VG/LV/segment status variables from 32-bit to 64-bit.
1080
1081 Version 2.02.56 - 24th November 2009
1082 ====================================
1083 Add missing vg_release to pvs and pvdisplay to fix memory leak.
1084 Do not try to unlock VG which is not locked in _process_one_vg.
1085 Move is_long_lived persistent_filter_dump to happen after every full scan.
1086 Refresh device filters before full device rescan in lvmcache.
1087 Return error status if vgchange fails to activate some volume.
1088 Fix suspend/resume lock type test causing unbalanced memory locking.
1089 Revert vg_read_internal change as clvmd was not ready for vg_read. (2.02.55)
1090
1091 Version 2.02.55 - 19th November 2009
1092 ====================================
1093 Fix deadlock when changing mirrors due to unpaired memlock refcount changes.
1094 Use separate memlock counter for dmeventd handlers to permit device scanning.
1095 Directly restrict vgchange to activating visible LVs.
1096 Fix pvmove region_size overflow for very large PVs.
1097 Fix lvcreate and lvresize %PVS argument always to use sensible total size.
1098 Tidy some uses of arg_count and introduce arg_is_set.
1099 Export outnl and indent functions for modules.
1100 Flush stdout after yes/no prompt.
1101 Update vgsplit and vgcreate to use vg_set_clustered.
1102 Add vg_mda_count and vg_set_clustered library functions.
1103 Add more vgcreate and vgsplit nightly tests.
1104 Insert some missing stack macros into activation code.
1105 Recognise DRBD devices and handle them like md devices.
1106
1107 Version 2.02.54 - 26th October 2009
1108 ===================================
1109 Update lvcreate/lvconvert man pages to explain PhysicalVolume parameter.
1110 Document --all option in man pages, cleanup {pv|vg|lv}{s|display} man pages.
1111 Permit snapshots of mirrors.
1112 Cleanup mimagetmp LV if allocation fails for new lvconvert mimage.
1113 Fix clvmd segfault when refresh_toolcontext fails.
1114 Remember to clear 'global lock held during cache refresh' state after use.
1115 Use udev flags support in LVM and apply various fixes to udev rules.
1116 Delay announcing mirror monitoring to syslog until initialisation succeeded.
1117 Handle metadata with unknown segment types more gracefully.
1118 Set default owner and group to null.
1119 Add dmeventd.static to the build.
1120 Disable realtime support code by default.
1121 Make clvmd return 0 on success rather than 1.
1122 Add --pvmetadatacopies for pvcreate, vgcreate, vgextend, vgconvert.
1123 Add implict pvcreate support to vgcreate and vgextend.
1124 Correct example.conf to indicate that lvm2 not lvm1 is the default format.
1125 Remove an unused stray LVM1_SUPPORT ifdef.
1126 Only include selinux libs in libdevmapper.pc when selinux build enabled.
1127 Allow for a build directory separate from the source.
1128 Update distclean target for rename clogd to cmirrord. (2.02.52)
1129 Only do lock conversions in clvmd if we are explicitly asked for one.
1130 Introduce percent_range_t and centralise snapshot full/mirror in-sync checks.
1131 Factor out poll_mirror_progress and introduce progress_t.
1132 Distinguish between powers of 1000 and powers of 1024 in unit suffixes.
1133 Restart lvconverts in vgchange by sharing lv_spawn_background_polling.
1134 Generalise polldaemon code by changing mirror-specific variable names.
1135 Don't attempt to deactivate an LV if any of its snapshots are in use.
1136 Return error if lv_deactivate fails to remove device from kernel.
1137 Provide alternative implementation of obsolete siginterrupt().
1138 Consolidate LV allocation into alloc_lv().
1139 Treat input units of both 's' and 'S' as 512-byte sectors. (2.02.49)
1140 Use standard output units for 'PE Size' and 'Stripe size' in pv/lvdisplay.
1141 Add configure --enable-units-compat to set si_unit_consistency off by default.
1142 Add global/si_unit_consistency to enable cleaned-up use of units in output.
1143
1144 Version 2.02.53 - 25th September 2009
1145 =====================================
1146 Create any directories in /dev with DM_DEV_DIR_UMASK (022).
1147 Enable dmeventd monitoring section of config file by default.
1148 Update lvm2 monitoring script to lvm2_monitoring_init_red_hat.in.
1149 Fix lvm2app test to run under test/api subdirectory only when configured.
1150 Add vg_is_resizeable() and cleanup reference to VG_RESIZEABLE.
1151
1152 Version 2.02.52 - 15th September 2009
1153 =====================================
1154 Update _process_one_vg to cleanup properly after vg_read_error.
1155 Add lots of missing stack debug messages to tools.
1156 Make readonly locking available as locking type 4.
1157 Fix readonly locking to permit writeable global locks (for vgscan). (2.02.49)
1158 Add DM_UDEV_RULES_VSN environment variable to udev rules.
1159 Update vgsplit, vgmerge, and vgrename to obey new vgname ordering rules.
1160 Make lvm2app pv_t, lv_t, vg_t handle definitions consistent with lvm_t.
1161 Enforce an alphabetical lock ordering on vgname locking.
1162 Prioritise write locks over read locks by default for file locking.
1163 Add local lock files with suffix ':aux' to serialise locking requests.
1164 Fix global locking in PV reporting commands (2.02.49).
1165 Fix pvcreate string termination in duplicate uuid warning message.
1166 Don't loop reading sysfs with pvcreate on a non-blkext partition (2.02.51).
1167 Fix vgcfgrestore error paths when locking fails (2.02.49).
1168 Update Makefile distclean target.
1169 Add libudev configuration check.
1170 Make clvmd check corosync to see what cluster interface it should use.
1171 Add clvmd autodetection check and cleanup related configure messages.
1172 Rewrite clvmd configuration code to cope with all combinations of libs.
1173 Added configure --enable-cmirrord to build the cluster mirror log daemon.
1174 Rename clogd to cmirrord.
1175 Make lvchange --refresh only take a read lock on volume group.
1176 Fix race where non-blocking file locks could be granted in error.
1177 Fix vgextend error path - if ORPHAN lock fails, unlock / release vg (2.02.49).
1178 Fix compile warning in clvmd.
1179 Clarify use of PE ranges in lv{convert|create|extend|resize} man pages.
1180 Remove useless _pv_write wrapper.
1181 Add lvm2app.sh to tests conditional upon configure --enable-applib.
1182 Add lvm_vg_is_clustered, lvm_vg_is_exported, and lvm_vg_is_partial.
1183 Update lvm_vg_remove to require lvm_vg_write to commit remove to disk.
1184 Update test/api/test.c to call lvm_vg_create and lvm_vg_remove.
1185
1186 Version 2.02.51 - 6th August 2009
1187 =================================
1188 Fix locking in clvmd (2.02.50).
1189 Add --noudevsync option for relevant LVM tools.
1190 Add activation/udev_sync to lvm.conf.
1191 Only change LV symlinks on ACTIVATE not PRELOAD.
1192 Make lvconvert honour log mirror options combined with downconversion.
1193 Allow LV suspend while --ignorelockingfailure is in force.
1194 Update synopsis in lvconvert manpage to mention --repair.
1195 Set cookies in activation code and wait for udev to complete processing.
1196 Added configure --enable-udev_rules --enable-udev_sync.
1197 Added configure --with-udev-prefix --with-udevdir.
1198 Added udev dir to hold udev rules.
1199 Add devices/data_alignment_detection to lvm.conf.
1200 Add devices/data_alignment_offset_detection to lvm.conf.
1201 Add --dataalignmentoffset to pvcreate to shift start of aligned data area.
1202 Fix _mda_setup() to not check first mda's size before pe_align rounding.
1203 Document -I option of clvmd in the man page.
1204 Fix configure script to handle multiple clvmd selections.
1205 Fix lvm2app.pc installation filename.
1206 Remove pv_t, vg_t & lv_t handles from lib. Only liblvm uses them.
1207 Rename lvm.h to lvm2app.h for now.
1208
1209 Version 2.02.50 - 28th July 2009
1210 ================================
1211 Change test/api/test.c prompt so it's not confused with the main lvm prompt.
1212 Update liblvm unit tests in test/api to cover latest liblvm changes.
1213 Add unimplemented lvm_lv_resize and lvm_pv_resize skeletons to liblvm.
1214 Add lvm_library_get_version to liblvm.
1215 Add lvm_config_override to liblvm to allow caller to override LVM config.
1216 Add lvm_lv_is_active and lvm_lv_is_suspended to liblvm.
1217 Add lvm_lv_activate and lvm_lv_deactivate to liblvm.
1218 Add lvm_scan, lvm_vg_reduce and lvm_vg_remove_lv to liblvm.
1219 Add functions to get numeric properties to liblvm.
1220 Add lvm_{pv|vg|lv}_get_{name|uuid} to liblvm.
1221 Add lvm_vg_list_pvs and lvm_vg_list_lvs to liblvm.
1222 Add lvm_vg_open and lvm_vg_create_lv_linear to liblvm.
1223 Add lvm_list_vg_names/uuids to liblvm.
1224 Add lvm_errno and lvm_errmsg to liblvm to obtain failure information.
1225 Rename lvm_create/destroy to lvm_init/quit.
1226 Rename lvm_reload_config to lvm_config_reload.
1227 Refactor _override_settings to use new override_config_tree_from_string.
1228 Add vg_reduce to metadata.c and metadata-exported.h.
1229 Update lvm.h to clarify API behavior and return codes.
1230 Update lvm_vg_extend to do an implicit pvcreate on the device.
1231 Update display.c to use vg_free(vg) instead of duplicating the calculation.
1232 Refactor vg_size, vg_free, and pv_mda_count field calculations for liblvm.
1233 Refactor pvcreate and lvcreate for liblvm.
1234 Add global/wait_for_locks to lvm.conf so blocking for locks can be disabled.
1235 All LV locks are non-blocking so remove LCK_NONBLOCK from separate macros.
1236 Fix race condition with vgcreate and vgextend on same device (2.02.49).
1237 Remove redundant validate_name call from vgreduce.
1238 Remove unused handles lvseg, pvseg inside liblvm/lvm.h.
1239 Add liblvm2app Makefile installation targets.
1240 Add liblvm pkgconfig file.
1241 Use newly-independent LVM_LIBAPI in liblvm soname. E.g. liblvm2app.so.2.1.
1242 Add an API version number, LVM_LIBAPI, to the VERSION string for liblvm.
1243 Pass a pointer to struct cmd_context to init_multiple_segtypes
1244 Return EINVALID_CMD_LINE not success when invalid VG name format is used.
1245 Remove unnecessary messages after vgcreate/vgsplit refactor (2.02.49).
1246 Add log_errno to set a specific errno and replace log_error in due course.
1247 Change create_toolcontext to still return an object if it fails part-way.
1248 Add EUNCLASSIFIED (-1) as the default LVM errno code.
1249 Store any errno and error messages issued while processing each command.
1250 Use log_error macro consistently throughout in place of log_err.
1251
1252 Version 2.02.49 - 15th July 2009
1253 ================================
1254 Add readonly locking type to replace implementation of --ignorelockingfailure.
1255 Exclude VG_GLOBAL from vg_write_lock_held so scans open devs read-only again.
1256 Add unit test case for liblvm VG create/delete APIs.
1257 Add liblvm APIs to implement creation and deletion of VGs.
1258 Initialize cmd->cmd_line to "liblvm" in new liblvm library.
1259 Place handles to liblvm objects for pv, vg, lv, lvseg, pvseg inside lvm.h.
1260 Refactor vgsplit and vgextend to remove READ_REQUIRE_RESIZEABLE flag.
1261 Use _exit() not exit() after forking to avoid flushing libc buffers twice.
1262 Add cast to log_info arg in _find_labeller to avoid Sparc64 warning.
1263 Make cmd->cmd_line const.
1264 Fix dev name mismatch in vgcreate man page example.
1265 Refactor vg_remove_single for use in liblvm.
1266 Make all tools use consistent lock ordering obtaining VG_ORPHAN lock second.
1267 Check md devices for a partition table during device scan.
1268 Add extended device (blkext) and md partition (mdp) types to filters.
1269 Make text metadata read errors for segment areas more precise.
1270 Fix text segment metadata read errors to mention correct segment name.
1271 Include segment and LV names in text segment import error messages.
1272 Add parent node to config_node structure.
1273 Update vgsplit and vgcreate to call new vg_create and 'set' functions.
1274 Change vg_create to take minimal parameters, obtain a lock, and return vg_t.
1275 Refactor vgchange extent_size, max_lv, max_pv, and alloc_policy for liblvm.
1276 Update t-vgcreate-usage.sh to test for default vg properties.
1277 Fix memory leak in vgsplit when re-reading the vg.
1278 Make various exit/cleanup paths more robust after lvm init failures.
1279 Use LCK_NONBLOCK implicitly instead of explicit vg_read() flag.
1280 Remove unnecessary locking and existence tests from new vg_read() interface.
1281 Permit several segment types to be registered by a single shared object.
1282 Update the man pages to document size units uniformly.
1283 Allow commandline sizes to be specified in terms of bytes and sectors.
1284 Update 'md_chunk_alignment' to use stripe-width to align PV data area.
1285 Update test/t-inconsistent-metadata.sh to match new vg_read interface.
1286 Add lvmcache_init() to polldaemon initialization.
1287 Convert tools to use new vg_read / vg_read_for_update.
1288 Fix segfault in vg_release when vg->cmd is NULL.
1289
1290 Version 2.02.48 - 30th June 2009
1291 ================================
1292 Abort if automatic metadata correction fails when reading VG to update it.
1293 Explicitly request fallback to default major number in device mapper.
1294 Ignore suspended devices during repair.
1295 Call vgreduce --removemissing automatically to fix missing PVs in dmeventd.
1296 Suggest using lvchange --resync when adding leg to not-yet-synced mirror.
1297 Destroy toolcontext on clvmd exit to avoid memory pool leaks.
1298 Fix lvconvert not to poll mirror if no conversion in progress.
1299 Fix memory leaks in toolcontext error path.
1300 Reinstate partial activation support in clustered mode. (2.02.40)
1301 Allow metadata correction even when PVs are missing.
1302 Use 'lvm lvresize' instead of 'lvresize' in fsadm.
1303 Do not use '-n' realine option in fsadm for busybox compatiblity.
1304 Add vg_lock_newname() library function for vgrename, vgsplit and vgcreate.
1305 Round up requested readahead to at least one page and print warning.
1306 Try to repair vg before actual vgremove when force flag provided.
1307 Fix possible double release of VG after recovery.
1308 Add parameter to process_each_vg specifying what to do with inconsistent VG.
1309 Unify error messages when processing inconsistent volume group.
1310 Use lvconvert --repair instead of vgreduce in mirror dmeventd DSO.
1311 Introduce lvconvert --use_policies (repair policy according to lvm.conf).
1312 Update clvmd-corosync to match new corosync API.
1313 Fix lib Makefile to include any shared libraries in default target.
1314 Fix rename of active snapshot with virtual origin.
1315 Fix convert polling to ignore LV with different UUID.
1316 Cache underlying device readahead only before activation calls.
1317 Fix segfault when calculating readahead on missing device in vgreduce.
1318 Remove verbose 'visited' messages.
1319 Handle multi-extent mirror log allocation when smallest PV has only 1 extent.
1320 Add LSB standard headers and functions (incl. reload) to clvmd initscript.
1321 When creating new LV, double-check that name is not already in use.
1322 Remove /dev/vgname/lvname symlink automatically if LV is no longer visible.
1323 Rename internal vorigin LV to match visible LV.
1324 Suppress 'removed' messages displayed when internal LVs are removed.
1325 Fix lvchange -a and -p for sparse LVs.
1326 Fix lvcreate --virtualsize to activate the new device immediately.
1327 Make --snapshot optional with lvcreate --virtualsize.
1328 Generalise --virtualoriginsize to --virtualsize.
1329 Skip virtual origins in process_each_lv_in_vg() without --all.
1330 Fix counting of virtual origin LVs in vg_validate.
1331 Attempt to load dm-zero module if zero target needed but not present.
1332
1333 Version 2.02.47 - 22nd May 2009
1334 ===============================
1335 Rename liblvm.so to liblvm2app.so and use configure --enable-applib.
1336 Reinstate version in liblvm2cmd.so soname. (2.02.44)
1337
1338 Version 2.02.46 - 21st May 2009
1339 ===============================
1340 Inherit readahead setting from underlying devices during activation.
1341 Detect LVs active on remote nodes by querying locks if supported.
1342 Enable online resizing of mirrors.
1343 Use suspend with flush when device size was changed during table preload.
1344 Implement query_resource_fn for cluster_locking.
1345 Support query_resource_fn in locking modules.
1346 Introduce CLVMD_CMD_LOCK_QUERY command for clvmd.
1347 Fix pvmove to revert operation if temporary mirror creation fails.
1348 Fix metadata export for VG with missing PVs.
1349 Add vgimportclone and install it and the man page by default.
1350 Force max_lv restriction only for newly created LV.
1351 Remove unneeded import parameter from lv_create_empty.
1352 Merge lv_is_displayable and lv_is_visible functions.
1353 Introduce lv_set_visible & lv_set_hidden functions.
1354 Fix lv_is_visible to handle virtual origin.
1355 Introduce link_lv_to_vg and unlink_lv_from_vg functions.
1356 Remove lv_count from VG and use counter function instead.
1357 Fix snapshot segment import to not use duplicate segments & replace.
1358 Do not query nonexistent devices for readahead.
1359 Remove NON_BLOCKING lock flag from tools and set a policy to auto-set.
1360 Remove snapshot_count from VG and use function instead.
1361 Fix first_seg() call for empty segment list.
1362 Add install_lvm2 makefile target to install only the LVM2 components.
1363 Reject missing PVs from allocation in toollib.
1364 Fix PV datalignment for values starting prior to MDA area. (2.02.45)
1365 Add sparse devices: lvcreate -s --virtualoriginsize (hidden zero origin).
1366 Fix minimum width of devices column in reports.
1367 Add lvs origin_size field.
1368 Fix linux configure --enable-debug to exclude -O2.
1369 Implement lvconvert --repair for repairing partially-failed mirrors.
1370 Fix vgreduce --removemissing failure exit code.
1371 Fix remote metadata backup for clvmd.
1372 Introduce unlock_and_release_vg macro.
1373 Introduce vg_release() to be called to free every struct volume_group.
1374 Alloc PV internal structure from VG mempool if possible.
1375 Fix metadata backup to run after vg_commit always.
1376 Tidy clvmd volume lock cache functions.
1377 Fix pvs report for orphan PVs when segment attributes are requested.
1378 Fix pvs -a output to not read volume groups from non-PV devices.
1379 Add MMC (mmcblk) device type to filters.
1380 Introduce memory pools per volume group (to reduce memory for large VGs).
1381 Use copy of PV structure when manipulating global PV lists.
1382 Always return exit error status when locking of volume group fails.
1383 Fix mirror log convert validation question.
1384 Avoid referencing files from DESTDIR during build process.
1385 Avoid creating some static libraries unless configured --enable-static_link.
1386 Enable use of cached metadata for pvs and pvdisplay commands.
1387 Add missing 'device-mapper' internal subdir build dependency.
1388 Fix memory leak in mirror allocation code.
1389 Save and restore the previous logging level when log level is changed.
1390 Fix error message when archive initialization fails.
1391 Make sure clvmd-corosync releases the lockspace when it exits.
1392 Fix segfault for vgcfgrestore on VG with missing PVs.
1393 Block SIGTERM & SIGINT in clvmd subthreads.
1394 Detect and conditionally wipe swapspace signatures in pvcreate.
1395 Fix maximal volume count check for snapshots if max_lv set for volume group.
1396 Fix lvcreate to remove unused cow volume if the snapshot creation fails.
1397 Fix error messages when PV uuid or pe_start reading fails.
1398 Build new liblvm application-level library.
1399 Rename liblvm.a to liblvm-internal.a.
1400 Flush memory pool and fix locking in clvmd refresh and backup command.
1401 Fix unlocks in clvmd-corosync. (2.02.45)
1402 Fix error message when adding metadata directory to internal list fails.
1403 Fix size and error message of memory allocation at backup initialization.
1404 Remove old metadata backup file after renaming VG.
1405 Restore log_suppress state when metadata backup file is up-to-date.
1406
1407 Version 2.02.45 - 3rd March 2009
1408 ================================
1409 Avoid scanning empty metadata areas for VG names.
1410 Attempt proper clean up in child before executing new binary in exec_cmd().
1411 Do not scan devices if reporting only attributes from PV label.
1412 Use pkgconfig to obtain corosync library details during configuration.
1413 Fix error returns in clvmd-corosync interface to DLM.
1414 Add --refresh to vgchange and vgmknodes man pages.
1415 Pass --test from lvresize to fsadm as --dry-run.
1416 Supply argv[] list to exec_cmd() to allow for variable number of parameters.
1417 Prevent fsadm from checking mounted filesystems.
1418 No longer treats any other key as 'no' when prompting in fsadm.
1419 Tidy fsadm command line processing.
1420 Add lib/lvm.h and lib/lvm_base.c for the new library interface.
1421 Move tools/version.h to lib/misc/lvm-version.h.
1422 Split LVM_VERSION into MAJOR, MINOR, PATCHLEVEL, RELEASE and RELEASE_DATE.
1423 Add system_dir parameter to create_toolcontext().
1424 Add --dataalignment to pvcreate to specify alignment of data area.
1425 Exclude LCK_CACHE locks from _vg_lock_count, fixing interrupt unblocking.
1426 Provide da and mda locations in debug message when writing text format label.
1427 Mention the restriction on file descriptors at invocation on the lvm man page.
1428 Index cached vgmetadata by vgid not vgname to cope with duplicate vgnames.
1429 No longer require kernel and metadata major numbers to match.
1430 Add a fully-functional get_cluster_name() to clvmd corosync interface.
1431 Remove duplicate cpg_initialize from clvmd startup.
1432 Add option to /etc/sysconfig/cluster to select cluster type for clvmd.
1433 Allow clvmd to start up if its lockspace already exists.
1434 Separate PV label attributes which do not need parse metadata when reporting.
1435 Remove external dependency on the 'cut' command from fsadm.
1436 Fix pvs segfault when pv mda attributes requested for not available PV.
1437 Add fsadm support for reszing ext4 filesysystems.
1438 Move locking_type reading inside init_locking().
1439 Rename get_vgs() to get_vgnames() and clarify related error messages.
1440 Allow clvmd to be built with all cluster managers & select one on cmdline.
1441 Mention --with-clvmd=corosync in ./configure.
1442 Replace internal vg_check_status() implementation.
1443 Rename vg_read() to vg_read_internal().
1444
1445 Version 2.02.44 - 26th January 2009
1446 ===================================
1447 Fix --enable-static_link after the recent repository changes.
1448 Add corosync/DLM cluster interface to clvmd.
1449 Add --nameprefixes, --unquoted, --rows to pvs, vgs, lvs man pages.
1450 Fix lvresize size conversion for fsadm when block size is not 1K.
1451 Fix pvs segfault when run with orphan PV and some VG fields.
1452 Display a 'dev_size' of zero for missing devices in reports.
1453 Add pv_mda_size to pvs and vg_mda_size to vgs.
1454 Fix lvmdump /sys listing to include virtual devices directory.
1455 Add "--refresh" functionality to vgchange and vgmknodes.
1456 Avoid exceeding LV size when wiping device.
1457 Calculate mirror log size instead of using 1 extent.
1458 Ensure requested device number is available before activating with it.
1459 Fix incorrect exit status from 'help <command>'.
1460 Fix vgrename using UUID if there are VGs with identical names.
1461 Fix segfault when invalid field given in reporting commands.
1462 Move is_static from cmd to global is_static().
1463 Refactor init_lvm() for lvmcmdline and clvmd.
1464 Add liblvm interactive test infrastructure to build.
1465 Add skeleton lvm2.h file in preparation for a shared library interface.
1466 Use better random seed value in temp file creation.
1467 Add read_urandom to read /dev/urandom. Use in uuid calculation.
1468 Use displayable_lvs_in_vg and lv_is_displayable for consistency throughout.
1469 Fix race in vgcreate that would result in second caller overwriting first.
1470 Fix uninitialised lv_count in vgdisplay -c.
1471 Don't skip updating pvid hash when lvmcache_info struct got swapped.
1472 Add tinfo to termcap search path for pld-linux.
1473 Fix startup race in clvmd.
1474 Generate Red Hat clvmd startup script at config time with correct paths.
1475 Fix clvmd & dmeventd builds after tree restructuring.
1476 Cope with snapshot dependencies when removing a whole VG with lvremove.
1477 Make man pages and tool help text consistent using | for alternative options.
1478
1479 Version 2.02.43 - 10th November 2008
1480 ====================================
1481 Merge device-mapper into the lvm2 tree.
1482 Correct prototype for --permission on lvchange and lvcreate man pages.
1483 Exit with non-zero status from vgdisplay if couldn't show any requested VG.
1484 Move list.c into libdevmapper and rename functions.
1485 Rename a couple of variables that matched function names.
1486 Use simplified x.y.z version number in libdevmapper.pc.
1487 Remove ancient debian directory.
1488 Split out lvm-logging.h from log.h and lvm-globals.[ch] from log.[ch].
1489
1490 Version 2.02.42 - 26th October 2008
1491 ===================================
1492 Accept locking fallback_to_* options in the global section as documented.
1493 Fix temp table activation in mirror conversions not to happen in other cmds.
1494 Fix temp table in mirror conversions to use always-present error not zero.
1495
1496 Version 2.02.41 - 17th October 2008
1497 ===================================
1498 Use temp table to set device size when converting mirrors.
1499 In resume_mirror_images replace activate_lv with resume_lv as workaround.
1500 Avoid overwriting in-use on-disk text metadata by forgetting MDA_HEADER_SIZE.
1501 Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
1502 Generate man pages from templates and include version.
1503 Add usrlibdir and usrsbindir to configure.
1504 Fix conversion of md chunk size into sectors.
1505 Free text metadata buffer after a failure writing it.
1506 Fix misleading error message when there are no allocatable extents in VG.
1507 Fix handling of PVs which reappeared with old metadata version.
1508 Fix mirror DSO to call vgreduce with proper parameters.
1509 Fix validation of --minor and --major in lvcreate to require -My always.
1510 Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning.
1511
1512 Version 2.02.40 - 19th September 2008
1513 =====================================
1514 Allow lvremove to remove LVs from VGs with missing PVs.
1515 In VG with PVs missing, by default allow activation of LVs that are complete.
1516 Track PARTIAL_LV and MISSING_PV flags internally.
1517 Require --force with --removemissing in vgreduce to remove partial LVs.
1518 No longer write out PARTIAL flag into metadata backups.
1519 Treat new default activation/missing_stripe_filler "error" as an error target.
1520 Remove internal partial_mode.
1521 Add devices/md_chunk_alignment to lvm.conf.
1522 Pass struct physical_volume to pe_align and adjust for md chunk size.
1523 Store sysfs location in struct cmd_context.
1524 Avoid shuffling remaining mirror images when removing one, retaining primary.
1525 Add missing LV error target activation in _remove_mirror_images.
1526 Prevent resizing an LV while lvconvert is using it.
1527 Avoid repeatedly wiping cache while VG_GLOBAL is held in vgscan & pvscan.
1528 Fix pvresize to not allow resize if PV has two metadata areas.
1529 Fix setting of volume limit count if converting to lvm1 format.
1530 Fix vgconvert logical volume id metadata validation.
1531 Fix lvmdump metadata gather option (-m) to work correctly.
1532 Fix allocation bug in text metadata format write error path.
1533 Fix vgcfgbackup to properly check filename if template is used.
1534 configure aborts if lcov or genhtml are missing with --enable-profiling
1535 vgremove tries to remove lv snapshot first.
1536 Added function lv_remove_with_dependencies().
1537 Improve file descriptor leak detection to display likely culprit and filename.
1538 Change clustered mirror kernel module name from cmirror to dm-log-clustered.
1539 Avoid looping forever in _pv_analyze_mda_raw used by pvck.
1540 Change lvchange exit status to indicate if any part of the operation failed.
1541 Fix pvchange and pvremove to handle PVs without mdas.
1542 Refactor _text_pv_read and always return mda list if requested.
1543 Fix configure to work w/o readline unless --enable-readline used. (2.02.39)
1544 Remove is_lvm_partition template which has not yet been coded.
1545 Refactor pvcreate to separate parameter parsing from validation logic.
1546 Check for label_write() failure in _text_pv_write().
1547 Add pvcreate tests and update vgsplit tests to handle lvm1 and lvm2 metadata.
1548 Fix pvchange -M1 -u to preserve existing extent locations when there's a VG.
1549 Cease recognising snapshot-in-use percentages returned by early devt kernels.
1550 Add backward-compatible flags field to on-disk format_text metadata.
1551 Fix dmeventd monitoring libraries to link against liblvm2cmd again. (2.02.39)
1552
1553 Version 2.02.39 - 27th June 2008
1554 ================================
1555 Enable readline by default if available.
1556 Update autoconf to 2008-01-16.
1557 Add $DISTCLEAN_DIRS to make.tmpl.in.
1558 Create coverage reports with --enable-profiling and make lcov or lcov-dated.
1559 Fix up cache for PVs without mdas after consistent VG metadata is processed.
1560 Update validation of safe mirror log type conversions in lvconvert.
1561 Fix lvconvert to disallow snapshot and mirror combinations.
1562 Fix reporting of LV fields alongside unallocated PV segments.
1563 Add --unquoted and --rows to reporting tools.
1564 Add and use uninitialized_var() macro to suppress invalid compiler warnings.
1565 Introduce enum for md minor sb version to suppress compiler warning.
1566 Avoid undefined return value after _memlock manipulation in lvm2_run.
1567 Avoid link failure if configured without --enable-cmdlib or --enable-readline.
1568 Make clvmd return at once if other nodes down in a gulm or openais cluster.
1569 Fix and improve readahead 'auto' calculation for stripe_size.
1570 Fix lvchange output for -r auto setting if auto is already set.
1571 Add test case for readahead.
1572 Avoid ambiguous use of identifier error_message_produced.
1573 Begin syncing configure.in for merge/unification with device-mapper.
1574 Fix add_mirror_images not to dereference uninitialized log_lv upon failure.
1575 Don't call openlog for every debug line output by clvmd.
1576 Add --force to lvextend and lvresize.
1577 Fix vgchange not to activate component mirror volumes directly.
1578 Fix test directory clean up in make distclean.
1579
1580 Version 2.02.38 - 11th June 2008
1581 ================================
1582 Fix tracking of validity of PVs with no mdas in lvmcache.
1583 Fix return values for reporting commands when run with no PVs, LVs, or VGs.
1584 Add omitted unlock_vg() call when sigint_caught() during vg processing.
1585 Fix free_count when reading pool metadata.
1586 Fix segfault when using pvcreate on a device containing pool metadata.
1587 Fix segfault after _free_vginfo by remembering to remove vginfo from list.
1588 Tweak detection of invalid fid after changes to PVs in VG in _vg_read.
1589 Revert assuming precommitted metadata is live when activating (unnecessary).
1590 Drop cached metadata for disappearing VG in vgmerge.
1591 In script-processing mode, stop if any command fails.
1592 Warn if command exits with non-zero status code without a prior log_error.
1593 Check lv_count in vg_validate.
1594 Add --nameprefixes to reporting tools for field name prefix output format.
1595
1596 Version 2.02.37 - 6th June 2008
1597 ===============================
1598 Make clvmd-cman use a hash rather than an array for node updown info.
1599 Correct config file line numbers in messages when parsing comments.
1600 Drop cached metadata when renaming a VG.
1601 Allow for vginfo changing during _vg_read.
1602 Decode numbers in clvmd debugging output.
1603 Add missing deactivation after activation failure in lvcreate -Zy.
1604 When activating, if precommitted metadata is still cached, assume it's live.
1605 When removing LV symlinks, skip any where the VG name is not determined.
1606 Drop metadata cache if update fails in vg_revert or vg_commit.
1607 Avoid spurious duplicate VG messages referring to VGs that are gone.
1608 Drop dev_name_confirmed error message to debug level.
1609 Fix setpriority error message to signed int.
1610 Temporarily disable dmeventd mirror monitoring during lvchange --resync.
1611 Refactor some vginfo manipulation code.
1612 Add assertions to trap deprecated P_ and V_ lock usage.
1613 Add missing mutex around clvmd lvmcache_drop_metadata library call.
1614 Fix uninitialised mutex in clvmd if all daemons are not running at startup.
1615 Avoid using DLM locks with LCK_CACHE type P_ lock requests.
1616 When asked to drop cached committed VG metadata, invalidate cached PV labels.
1617 Drop metadata cache before writing precommitted metadata instead of after.
1618 Don't touch /dev in vgrename if activation is disabled.
1619
1620 Version 2.02.36 - 29th April 2008
1621 =================================
1622 Fix fsadm.sh to work with older blockdev, blkid & readlink binaries.
1623 Fix lvresize to pass new size to fsadm when extending device.
1624 Remove unused struct in clvmd-openais, and use correct node count.
1625 Fix nodes list in clvmd-openais, and allow for broadcast messages.
1626 Exclude VG_GLOBAL from internal concurrent VG lock counter.
1627 Fix vgsplit internal counting of snapshot LVs.
1628 Fix vgmerge snapshot_count when source VG contains snapshots.
1629 Simplify clvmd-openais by using non-async saLckResourceLock.
1630 Fix internal LV counter when a snapshot is removed.
1631 Fix metadata corruption writing lvm1-formatted metadata with snapshots.
1632 Fix lvconvert -m0 allocatable space check.
1633
1634 Version 2.02.35 - 15th April 2008
1635 =================================
1636 Drop cached VG metadata before and after committing changes to it.
1637 Rename P_global to P_#global.
1638 Don't attempt remote metadata backups of non-clustered VGs. (2.02.29)
1639 Don't store fid in VG metadata cache to avoid clvmd segfault. (2.02.34)
1640 Update vgsplit tests to verify loosening of active LV restriction.
1641 Update vgsplit to only restrict split with active LVs involved in split.
1642 Add lv_is_active() to determine whether an lv is active.
1643
1644 Version 2.02.34 - 10th April 2008
1645 =================================
1646 Improve preferred_names lvm.conf example.
1647 Fix vgdisplay 'Cur LV' field to match lvdisplay output.
1648 Fix lv_count report field to exclude hidden LVs.
1649 Add vg_is_clustered() helper function.
1650 Fix vgsplit to only move hidden 'snapshotN' LVs when necessary.
1651 Update vgsplit tests for lvnames on the cmdline.
1652 Update vgsplit man page to reflect lvnames on the cmdline.
1653 Update vgsplit to take "-n LogicalVolumeName" on the cmdline.
1654 Use clustered mirror log with pvmove in clustered VGs, if available.
1655 Fix some pvmove error status codes.
1656 Fix vgsplit error paths to release vg_to lock.
1657 Indicate whether or not VG is clustered in vgcreate log message.
1658 Mention default --clustered setting in vgcreate man page.
1659 Add config file overrides to clvmd when it reads the active LVs list.
1660 Fix vgreduce to use vg_split_mdas to check sufficient mdas remain.
1661 Add (empty) orphan VGs to lvmcache during initialisation.
1662 Fix orphan VG name used for format_pool.
1663 Create a fid for internal orphan VGs.
1664 Update lvmcache VG lock state for all locking types now.
1665 Fix output if overriding command_names on cmdline.
1666 Add detection of clustered mirror log capability.
1667 Add check to vg_commit() ensuring VG lock held before writing new VG metadata.
1668 Add validation of LV name to pvmove -n.
1669 Make clvmd refresh the context correctly when lvm.conf is updated.
1670 Add some basic internal VG lock validation.
1671 Add per-command flags to control which commands use the VG metadata cache.
1672 Fix vgsplit locking of new VG (2.02.30).
1673 Avoid erroneous vgsplit error message for new VG. (2.02.29)
1674 Suppress duplicate message when lvresize fails because of invalid vgname.
1675 Cache VG metadata internally while VG lock is held.
1676 Fix redundant lvresize message if vg doesn't exist.
1677 Fix another allocation bug with clvmd and large node IDs.
1678 Add find_lv_in_lv_list() and find_pv_in_pv_list().
1679 Fix uninitialised variable in clvmd that could cause odd hangs.
1680 Add vgmerge tests.
1681 Add pvseg_is_allocated() for identifying a PV segment allocated to a LV.
1682 Add list_move() for moving elements from one list to another.
1683 Add 'is_reserved_lvname()' for identifying hidden LVs.
1684 Correct command name in lvmdiskscan man page.
1685 clvmd no longer crashes if it sees nodeids over 50.
1686 Fix potential deadlock in clvmd thread handling.
1687 Refactor text format initialisation into _init_text_import.
1688 Escape double quotes and backslashes in external metadata and config data.
1689 Add functions for escaping double quotes in strings.
1690 Rename count_chars_len to count_chars.
1691 Use return_0 in a couple more places.
1692 Correct a function name typo in _line_append error message.
1693 Include limits.h in clvmd so it compiles with newer headers.
1694 Add VirtIO disks (virtblk) to filters.
1695 Fix resetting of MIRROR_IMAGE and VISIBLE_LV after removal of LV. (2.02.30)
1696 Fix remove_layer_from_lv to empty the LV before removing it. (2.02.30)
1697 Add missing no-longer-used segs_using_this_lv test to check_lv_segments.
1698 Remove redundant non-NULL tests before calling free in clvmd.c.
1699 Avoid a compiler warning: make is_orphan's parameter const.
1700 Fix lvconvert detection of mirror conversion in progress. (2.02.30)
1701 Avoid automatic lvconvert polldaemon invocation when -R specified. (2.02.30)
1702 Fix 'pvs -a' to detect VGs of PVs without metadata areas.
1703 Divide up internal orphan volume group by format type.
1704 Update usage message for clvmd.
1705 Fix clvmd man page not to print <br> and clarified debug options.
1706 Fix lvresize to support /dev/mapper prefix in the LV name.
1707 Fix unfilled parameter passed to fsadm from lvresize.
1708 Update fsadm to call lvresize if the partition size differs (with option -l).
1709 Fix fsadm to support VG/LV names.
1710
1711 Version 2.02.33 - 31st January 2008
1712 ===================================
1713 Fix mirror log name construction during lvconvert. (2.02.30)
1714 Make monitor_dev_for_events recurse through the stack of LVs.
1715 Clean up some more compiler warnings.
1716 Some whitespace tidy-ups.
1717 Use stack return macros throughout.
1718 Rely upon internally-cached PV labels while corresponding VG lock is held.
1719
1720 Version 2.02.32 - 29th January 2008
1721 ===================================
1722 Fix two check_lv_segments error messages to show whole segment.
1723 Refactor mirror log attachment code.
1724 Fix internal metadata corruption in lvchange --resync. (2.02.30)
1725 Fix new parameter validation in vgsplit and test mode. (2.02.30)
1726 Remove redundant cnxman-socket.h file from clvmd directory.
1727 Fix pvs, vgs, lvs error exit status on some error paths.
1728
1729 Version 2.02.31 - 19th January 2008
1730 ===================================
1731 Fix lvcreate --nosync not to wait for non-happening sync. (2.02.30)
1732 Add very_verbose lvconvert messages.
1733 Avoid readahead error message with default setting of lvcreate -M1. (2.02.29)
1734
1735 Version 2.02.30 - 17th January 2008
1736 ===================================
1737 Set default readahead to twice maximium stripe size.
1738 Reinstate VG extent size and stripe size defaults (halved). (2.02.29)
1739 Add lists of stacked LV segments using each LV to the internal metadata.
1740 Change vgsplit -l (for unimplemented --list) into --maxlogicalvolumes.
1741 Fix process_all_pvs to detect non-orphans with no MDAs correctly.
1742 Don't use block_on_error with mirror targets version 1.12 and above.
1743 Update vgsplit to accept vgcreate options when new VG is destination.
1744 Update vgsplit to accept existing VG as destination.
1745 lvconvert waits for completion of initial sync by default.
1746 Refactor vgcreate for parameter validation and add tests.
1747 Add new convert_lv field to lvs output.
1748 Print warning when lvm tools are running as non-root.
1749 Add snapshot dmeventd library (enables dmeventd snapshot monitoring).
1750 Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs.
1751 Fix a segfault if using pvs with --all argument. (2.02.29)
1752 Update --uuid argument description in man pages.
1753 Fix vgreduce PV list processing not to process every PV in the VG. (2.02.29)
1754 Extend lvconvert to use polldaemon.
1755 Add support for stacked mirrors.
1756 Major restructuring of pvmove and lvconvert layer manipulation code.
1757 Replace tools/fsadm with scripts/fsadm.sh.
1758 Append fields to report/pvsegs_cols_verbose.
1759 Permit LV segment fields with PV segment reports.
1760 Add seg_start_pe and seg_pe_ranges to reports.
1761
1762 Version 2.02.29 - 5th December 2007
1763 ===================================
1764 Make clvmd backup vg metadata on remote nodes.
1765 Refactor pvmove allocation code.
1766 Decode cluster locking state in log message.
1767 Change file locking state messages from debug to very verbose.
1768 Fix --addtag to drop @ prefix from name.
1769 Stop clvmd going haywire if a pre_function fails.
1770 Convert some vg_reads into vg_lock_and_reads.
1771 Avoid nested vg_reads when processing PVs in VGs and fix associated locking.
1772 Accept sizes with --readahead argument.
1773 Store size arguments as sectors internally.
1774 Attempt to remove incomplete LVs with lvcreate zeroing/activation problems.
1775 Add read_ahead activation code.
1776 Add activation/readahead configuration option and FMT_RESTRICTED_READAHEAD.
1777 Extend readahead arg to accept "auto" and "none".
1778 Add lv_read_ahead and lv_kernel_read_ahead fields to reports and lvdisplay.
1779 Prevent lvconvert -s from using same LV as origin and snapshot.
1780 Fix human-readable output of odd numbers of sectors.
1781 Add pv_mda_free and vg_mda_free fields to reports for raw text format.
1782 Add LVM2 version to 'Generated by' comment in metadata.
1783 Show 'not usable' space when PV is too large for device in pvdisplay.
1784 Ignore and fix up any excessive device size found in metadata.
1785 Fix error message when fixing up PV size in lvm2 metadata (2.02.11).
1786 Fix orphan-related locking in pvdisplay and pvs.
1787 Fix missing VG unlocks in some pvchange error paths.
1788 Add some missing validation of VG names.
1789 Rename validate_vg_name() to validate_new_vg_name().
1790 Change orphan lock to VG_ORPHANS.
1791 Change format1 to use ORPHAN as orphan VG name.
1792 Convert pvchange, pvdisplay, pvscan to use is_orphan()
1793 Add is_orphan_vg() and change all hard-coded checks to use it.
1794 Detect md superblocks version 1.0, 1.1 and 1.2.
1795 Add _alloc_pv() and _free_pv() from _pv_create() code and fix error paths.
1796 Add pv_dev_name() to access PV device name.
1797 Add const attributes to pv accessor functions.
1798 Refactor vg_add_snapshot() and lv_create_empty().
1799 Handle new sysfs subsystem/block/devices directory structure.
1800 Run test with LVM_SYSTEM_DIR pointing to private root and /dev dirs.
1801 Fix a bug in lvm_dump.sh checks for lvm/dmsetup binaries.
1802 Fix underquotations in lvm_dump.sh.
1803 Refactor lvcreate stripe and mirror parameter validation.
1804 Print --help output to stdout, not stderr.
1805 After a cmdline processing error, don't print help text but suggest --help.
1806 Add %PVS extents option to lvresize, lvextend, and lvcreate.
1807 Add 'make check' to run tests in new subdirectory 'test'.
1808 Moved the obsolete test subdirectory to old-tests.
1809 Cope with relative paths in configure --with-dmdir.
1810 Remove no-longer-correct restrictions on PV arg count with stripes/mirrors.
1811 Fix strdup memory leak in str_list_dup().
1812 Link with -lpthread when static SELinux libraries require that.
1813 Detect command line PE values that exceed their 32-bit range.
1814 Include strerror string in dev_open_flags' stat failure message.
1815 Move guts of pvresize into library.
1816 Avoid error when --corelog is provided without --mirrorlog. (2.02.28)
1817 Correct --mirrorlog argument name in man pages (not --log).
1818 Clear MIRROR_NOTSYNCED LV flag when converting from mirror to linear.
1819 Modify lvremove to prompt for removal if LV active on other cluster nodes.
1820 Add '-f' to vgremove to force removal of VG even if LVs exist.
1821
1822 Version 2.02.28 - 24th August 2007
1823 ==================================
1824 Fix clvmd logging so you can get lvm-level debugging out of it.
1825 Introduce VG_GLOBAL lock type for vgscan/pvscan to trigger clvmd -R.
1826 Change locking_flags from int to uint32_t.
1827 Fix clvmd -R, so it fully refreshes the caches.
1828 Change lvconvert_mirrors to use mirror segtype not striped.
1829 Fix lvconvert_mirrors detection of number of existing mirrors.
1830 Clean up numerous compiler warnings that appeared in recent releases.
1831 Remove several unused parameters from _allocate().
1832 Only permit --force, --verbose and --debug arguments to be repeated.
1833 Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
1834 Move guts of vgremove and lvremove into library, including yes_no_prompt.
1835 Allow clvmd debug to be turned on in a running daemon using clvmd -d [-C].
1836 Update to use autoconf 2.61, while still supporting 2.57.
1837 Add more cluster info to lvmdump.
1838 Add further const attributes throughout.
1839 Add support for renaming mirrored LVs.
1840 Factor out core of lvrename() to library function.
1841 Add --mirrorlog argument to specify log type for mirrors.
1842 Don't attempt to monitor devices if their creation failed in _lv_activate.
1843 Don't leak a file descriptor in fcntl_lock_file() when fcntl fails.
1844 Replace create_dir with dm_create_dir.
1845 Detect stream write failure reliably with lvm_fclose using dm_fclose.
1846 Fix clvmd if compiled with gulm support. (2.02.26)
1847 Fix lvdisplay man page to say LV size is reported in sectors, not KB.
1848 Add vg_lock_and_read() external library function.
1849 Fix loading of persistent cache if cache_dir is used. (2.02.23)
1850 Reduce _compare_paths lstat error message from log_error to log_very_verbose.
1851 Create util.h with last_path_component replacing strdup + basename.
1852 Use gcc's printf attribute wherever possible.
1853 In _line_append, use "sizeof buf - 1" rather than equivalent "4095".
1854 Introduce is_same_inode macro, now including a comparison of st_dev.
1855 Don't leak a file descriptor in _lock_file() when flock fails.
1856 Add SUN's LDOM virtual block device (vdisk) and ps3disk to filters.
1857 Split metadata-external.h out from metadata.h for the tools to use.
1858
1859 Version 2.02.27 - 17th July 2007
1860 ================================
1861 Fix snapshot cow area deactivation if origin is not active. (2.02.13)
1862 Fix configure libdevmapper.h check when --with-dmdir is used.
1863 Turn _add_pv_to_vg() into external library function add_pv_to_vg().
1864 Add pv_by_path() external library function.
1865 Tidy clvmd-openais of redundant bits, and improve an error report.
1866 Cope with find_seg_by_le() failure in check_lv_segments().
1867 Call dev_iter_destroy() if _process_all_devs() is interrupted by sigint.
1868 Add vg_mda_count and pv_mda_count columns to reports.
1869 Fix dumpconfig to use log_print instead of stdout directly.
1870 Remove unused parameter 'fid' from _add_pv_to_vg.
1871 Add kernel and device-mapper targets versions to lvmdump.
1872 Replace BSD (r)index with C89 str(r)chr.
1873 Handle vgsplit of an entire VG as a vgrename.
1874 Reinitialise internal lvmdiskscan variables when called repeatedly.
1875 Fix missing lvm_shell symbol in lvm2cmd library. (2.02.23)
1876 Add vg_status function and clean up vg->status in tools directory.
1877 Add --ignoremonitoring to disable all dmeventd interaction.
1878 Remove get_ prefix from get_pv_* functions.
1879 clvmd-openais now uses cpg_local_get() to get nodeid, rather than Clm.
1880 Print warnings to stderr instead of stdout.
1881
1882 Version 2.02.26 - 15th June 2007
1883 ================================
1884 Update vgcfgrestore man page.
1885 Allow keyboard interrupt during user prompts when appropriate.
1886 Remove unused clvmd system-lv code.
1887 Replace many physical_volume struct dereferences with new get_pv_* functions.
1888 Suppress a benign compile-time warning.
1889 Convert find_pv_in_vg_by_uuid and pv_create to use PV handles.
1890 Add wrappers to some functions in preparation for external LVM library.
1891 Add -f to vgcfgrestore to list metadata backup files.
1892 Add vg_check_status to consolidate vg status checks and error messages.
1893 Add pvdisplay --maps implementation.
1894 Remove unsupported LVM1 options from vgcfgrestore man page.
1895 Update vgcfgrestore man page to show mandatory VG name.
1896 Update vgrename man page to include UUID and be consistent with lvrename.
1897 Add (experimental) OpenAIS support to clvmd.
1898 Fix deactivation code to follow dependencies and remove symlinks.
1899 Fix and clarify vgsplit error messages.
1900 Fix a segfault in device_is_usable() if a device has no table.
1901 Add some more debug messages to clvmd startup.
1902 Misc clvmd cleanups.
1903
1904 Version 2.02.25 - 27th April 2007
1905 =================================
1906 Fix get_config_uint64() to read a 64-bit value not a 32-bit one.
1907 Add -Wformat-security and change one fprintf() to fputs().
1908 Move regex functions into libdevmapper.
1909 Change some #include lines to search only standard system directories.
1910 Add devices/preferred_names config regex list for displayed device names.
1911 Free a temporary dir string in fcntl_lock_file() after use.
1912 Fix a dm_pool_destroy() in matcher_create().
1913 Introduce goto_bad macro.
1914 Fix warnings on x86_64 involving ptrdiff_t in log_error messages.
1915 Update pvck to include text metadata area and record detection.
1916 Add support functions for token counting in config file extracts.
1917 Update pvck to read labels on disk, with --labelsector parameter.
1918 Add count_chars and count_chars_len functions.
1919 Add /sys/block listings to lvm_dump.sh.
1920 Make lvm_dump.sh list /dev recursively.
1921 Fix thread race in clvmd.
1922 Add scan_sector param to label_read and _find_labeller.
1923 Make clvmd cope with quorum devices.
1924 Add extra internal error checking to clvmd.
1925 Add dev_read_circular.
1926 Add pvck command stub.
1927 Update lists of attribute characters in man pages.
1928 Change cling alloc policy attribute character from 'C' to l'.
1929 Fix creation and conversion of mirrors with tags.
1930 Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata).
1931 Split metadata areas in vgsplit properly.
1932
1933 Version 2.02.24 - 19th March 2007
1934 =================================
1935 Fix processing of exit status in init scripts
1936 Fix vgremove to require at least one vg argument.
1937 Fix reading of striped LVs in LVM1 format.
1938 Flag nolocking as clustered so clvmd startup sees clustered LVs. (2.02.10)
1939 Add a few missing pieces of vgname command line validation.
1940 Support the /dev/mapper prefix on most command lines.
1941
1942 Version 2.02.23 - 8th March 2007
1943 ================================
1944 Fix vgrename active LV check to ignore differing vgids.
1945 Remove no-longer-used uuid_out parameter from activation info functions.
1946 Fix two more segfaults if an empty config file section encountered.
1947 Move .cache file into a new /etc/lvm/cache directory by default.
1948 Add devices/cache_dir & devices/cache_file_prefix, deprecating devices/cache.
1949 Create directory in fcntl_lock_file() if required.
1950 Exclude readline support from lvm.static.
1951 Fix a leak in a reporting error path (2.02.19).
1952
1953 Version 2.02.22 - 13th February 2007
1954 ====================================
1955 Correct -b and -P on a couple of man pages.
1956 Add global/units to example.conf.
1957 Fix loading of segment_libraries.
1958 If a PV reappears after it was removed from its VG, make it an orphan.
1959 Don't update metadata automatically if VGIDs don't match.
1960 Fix some vgreduce --removemissing command line validation.
1961
1962 Version 2.02.21 - 30th January 2007
1963 ===================================
1964 Add warning to lvm2_monitoring_init_rhel4 if attempting to stop monitoring.
1965 Fix vgsplit to handle mirrors.
1966 Reorder fields in reporting field definitions.
1967 Fix vgs to treat args as VGs even when PV fields are displayed.
1968 Fix md signature check to handle both endiannesses.
1969
1970 Version 2.02.20 - 25th January 2007
1971 ===================================
1972 dmeventd mirror sets ignore_suspended_devices and avoids scanning mirrors.
1973 Add devices/ignore_suspended_devices to ignore suspended dm devices.
1974 Add some missing close() and fclose() return code checks.
1975 Fix exit statuses of reporting tools (2.02.19).
1976 Add init script for dmeventd monitoring.
1977 lvm.static no longer interacts with dmeventd unless explicitly asked to.
1978 Add field definitions to report help text.
1979 Remove unnecessary cmd arg from target_*monitor_events().
1980 Add private variable to dmeventd shared library interface.
1981 Long-lived processes write out persistent dev cache in refresh_toolcontext().
1982 Fix refresh_toolcontext() always to wipe persistent device filter cache.
1983 Add is_long_lived to toolcontext.
1984 Add --clustered to man pages.
1985 Streamline dm_report_field_* interface.
1986 Change remaining dmeventd terminology 'register' to 'monitor'.
1987 Update reporting man pages.
1988 No longer necessary to specify alignment type for report fields.
1989
1990 Version 2.02.19 - 17th January 2007
1991 ===================================
1992 Fix a segfault if an empty config file section encountered.
1993 Move basic reporting functions into libdevmapper.
1994 Fix partition table processing after sparc changes (2.02.16).
1995 Fix cmdline PE range processing segfault (2.02.13).
1996 Some libdevmapper-event interface changes.
1997 Report dmeventd mirror monitoring status.
1998 Fix dmeventd mirror status line processing.
1999
2000 Version 2.02.18 - 11th January 2007
2001 ===================================
2002 Revised libdevmapper-event interface for dmeventd.
2003 Remove dmeventd mirror status line word limit.
2004 Use CFLAGS when linking so mixed sparc builds can supply -m64.
2005 Prevent permission changes on active mirrors.
2006 Print warning instead of error message if lvconvert cannot zero volume.
2007 Add snapshot options to lvconvert man page.
2008 dumpconfig accepts a list of configuration variables to display.
2009 Change dumpconfig to use --file to redirect output to a file.
2010 Avoid vgreduce error when mirror code removes the log LV.
2011 Remove 3 redundant AC_MSG_RESULTs from configure.in.
2012 Free memory in _raw_read_mda_header() error paths.
2013 Fix ambiguous vgsplit error message for split LV.
2014 Fix lvextend man page typo.
2015 Add configure --with-dmdir to compile against a device-mapper source tree.
2016 Use no flush suspending for mirrors.
2017 Add dmeventd_mirror register_mutex, tidy initialisation & add memlock.
2018 Fix create mirror with name longer than 22 chars.
2019 Fix some activate.c prototypes when compiled without devmapper.
2020 Fix dmeventd mirror to cope if monitored device disappears.
2021
2022 Version 2.02.17 - 14th December 2006
2023 ====================================
2024 Add missing pvremove error message when device doesn't exist.
2025 When lvconvert allocates a mirror log, respect parallel area constraints.
2026 Use loop to iterate through the now-ordered policy list in _allocate().
2027 Check for failure to allocate just the mirror log.
2028 Introduce calc_area_multiple().
2029 Support mirror log allocation when there is only one PV: area_count now 0.
2030 Fix detection of smallest area in _alloc_parallel_area() for cling policy.
2031 Add manpage entry for clvmd -T
2032 Fix gulm operation of clvmd, including a hang when doing lvchange -aey
2033 Fix hang in clvmd if a pre-command failed.
2034
2035 Version 2.02.16 - 1st December 2006
2036 ===================================
2037 Fix VG clustered read locks to use PR not CR.
2038 Adjust some alignments for ia64/sparc.
2039 Fix mirror segment removal to use temporary error segment.
2040 Always compile debug logging into clvmd.
2041 Add startup timeout to RHEL4 clvmd startup script.
2042 Add -T (startup timeout) switch to clvmd.
2043 Improve lvm_dump.sh robustness.
2044 Update lvm2create_initrd to support gentoo.
2045
2046 Version 2.02.15 - 21st November 2006
2047 ====================================
2048 Fix clvmd_init_rhel4 line truncation (2.02.14).
2049 Install lvmdump by default.
2050 Fix check for snapshot module when activating snapshot.
2051 Fix pvremove error path for case when PV is in use.
2052 Warn if certain duplicate config file entries are seen.
2053 Enhance lvm_dump.sh for sysreport integration and add man page.
2054 Fix --autobackup argument which could never disable backups.
2055 Fix a label_verify error path.
2056
2057 Version 2.02.14 - 10th November 2006
2058 ====================================
2059 Fix adjusted_mirror_region_size() to handle 64-bit size.
2060 Add some missing bounds checks on 32-bit extent counters.
2061 Add Petabyte and Exabyte support.
2062 Fix lvcreate error message when 0 extents requested.
2063 lvremove man page: volumes must be cluster inactive before being removed.
2064 Protect .cache manipulations with fcntl locking.
2065 Change .cache timestamp comparisons to use ctime.
2066 Fix mirror log LV writing to set all bits in whole LV.
2067 Fix clustered VG detection and default runlevels in clvmd_init_rhel4.
2068 Fix high-level free space check for partial allocations.
2069
2070 Version 2.02.13 - 27th October 2006
2071 ===================================
2072 Add couple of missing files to tools/Makefile CLEAN_TARGETS.
2073 When adding snapshot leave cow LV mapped device active after zeroing.
2074 Fix a clvmd debug message.
2075 Add dev_flush() to set_lv().
2076 Add lvchange --resync.
2077 Perform high-level free space check before each allocation attempt.
2078 Don't allow a node to remove an LV that's exclusively active on anther node.
2079 Cope if same PV is included more than once in cmdline PE range list.
2080 Set PV size to current device size if it is found to be zero.
2081 Add segment parameter to target_present functions.
2082
2083 Version 2.02.12 - 16th October 2006
2084 ===================================
2085 Fix pvdisplay to use vg_read() for non-orphans.
2086 Fall back to internal locking if external locking lib is missing or fails.
2087 Retain activation state after changing LV minor number with --force.
2088 Propagate clustered flag in vgsplit and require resizeable flag.
2089
2090 Version 2.02.11 - 12th October 2006
2091 ===================================
2092 Add clvmd function to return the cluster name. not used by LVM yet.
2093 Add cling allocation policy.
2094 Change _check_contiguous() to use _for_each_pv().
2095 Extend _for_each_pv() to allow termination without error.
2096 Abstract _is_contiguous().
2097 Remove duplicated pv arg from _check_contiguous().
2098 Accept regionsize with lvconvert.
2099 Add report columns with underscore before field names ending 'size'.
2100 Correct regionsize default on lvcreate man page (MB).
2101 Fix clvmd bug that could cause it to die when a node with a long name crashed.
2102 Add device size to text metadata.
2103 Fix format_text mda_setup pv->size and pv_setup pe_count calculations.
2104 Fix _for_each_pv() for mirror with core log.
2105 Add lvm_dump.sh script to create a tarball of debugging info from a system.
2106 Capture error messages in clvmd and pass them back to the user.
2107 Remove unused #defines from filter-md.c.
2108 Make clvmd restart init script wait until clvmd has died before starting it.
2109 Add -R to clvmd which tells running clvmds to reload their device cache.
2110 Add LV column to reports listing kernel modules needed for activation.
2111 Show available fields if report given invalid field. (e.g. lvs -o list)
2112 Add timestamp functions with --disable-realtime configure option.
2113 Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg.
2114 Fix two potential NULL pointer derefs in error cases in vg_read().
2115 Separate --enable-cluster from locking lib options in lvmconf.sh.
2116 Add a missing comma in lvcreate man page.
2117
2118 Version 2.02.10 - 19th September 2006
2119 =====================================
2120 Fix lvconvert mirror change case detection logic.
2121 Fix mirror log detachment so it correctly becomes a standalone LV.
2122 Extend _check_contiguous() to detect single-area LVs.
2123 Include mirror log (untested) in _for_each_pv() processing.
2124 Use MIRROR_LOG_SIZE constant.
2125 Remove struct seg_pvs from _for_each_pv() to generalise.
2126 Avoid adding duplicates to list of parallel PVs to avoid.
2127 Fix several incorrect comparisons in parallel area avoidance code.
2128 Fix segment lengths when flattening existing parallel areas.
2129 Log existing parallel areas prior to allocation.
2130 Fix mirror log creation when activation disabled.
2131 Don't attempt automatic recovery without proper locking.
2132 When using local file locking, skip clustered VGs.
2133 Add fallback_to_clustered_locking and fallback_to_local_locking parameters.
2134 lvm.static uses built-in cluster locking instead of external locking.
2135 Don't attempt to load shared libraries if built statically.
2136 Change default locking_lib to liblvm2clusterlock.so.
2137 Add skip_dev_dir() to process command line VGs.
2138 Stop clvmd complaining about nodes that have left the cluster.
2139 Move lvm_snprintf(), split_words() and split_dm_name() into libdevmapper.
2140 Add lvconvert man page.
2141 Add mirror options to man pages.
2142 Prevent mirror renames.
2143 Move CMDLIB code into separate file and record whether static build.
2144
2145 Version 2.02.09 - 17th August 2006
2146 ==================================
2147 Fix PE_ALIGN for pagesize over 32KB.
2148 Separate out LVM1_PE_ALIGN and pe_align().
2149 Add lvm_getpagesize wrapper.
2150 Add --maxphysicalvolumes to vgchange.
2151
2152 Version 2.02.08 - 15th August 2006
2153 ==================================
2154 Add checks for duplicate LV name, lvid and PV id before writing metadata.
2155 Report all sanity check failures, not just the first.
2156 Fix missing lockfs on first snapshot creation.
2157 Add unreliable --trustcache option to reporting commands.
2158 Fix locking for mimage removal.
2159 Fix clvmd_init_rhel4 'status' exit code.
2160
2161 Version 2.02.07 - 17th July 2006
2162 ================================
2163 Fix activation logic in lvchange --persistent.
2164 Don't ignore persistent minor numbers when activating.
2165 Use RTLD_GLOBAL when loading shared libraries.
2166 Add some forgotten memlock checks to _vg_read to protect against full scans.
2167 Add mutex to dmeventd_mirror to avoid concurrent execution.
2168 Fix vgreduce --removemissing to return success if VG is already consistent.
2169 Fix return code if VG specified on command line is not found.
2170 Fix PV tools to include orphaned PVs in default output again.
2171 Fixed unaligned access when using clvm.
2172 Fix an extra dev_close in a label_read error path.
2173 Append patches to commit emails.
2174 Fix target_register_events args.
2175 Prevent snapshots of mirrors.
2176 Add DISTCLEAN_TARGETS to make template for configure.h.
2177 More fixes to error paths.
2178 Fix lvcreate corelog validation.
2179 Add --config for overriding most config file settings from cmdline.
2180 Quote arguments when printing command line.
2181 Remove linefeed from 'initialising logging' message.
2182 Add 'Completed' debug message.
2183 Don't attempt library exit after reloading config files.
2184 Always compile with libdevmapper, even if device-mapper is disabled.
2185
2186 Version 2.02.06 - 12th May 2006
2187 ===============================
2188 Propagate --monitor around cluster.
2189 Add --monitor to vgcreate and lvcreate to control dmeventd registration.
2190 Filter LCK_NONBLOCK in clvmd lock_vg.
2191 Add --nosync to lvcreate with LV flag NOTSYNCED.
2192 Use mirror's uuid for a core log.
2193 Add mirror log fault-handling policy.
2194 Improve mirror warning messages and tidy dmeventd syslog output.
2195 Propagate nosync flag around cluster.
2196 Allow vgreduce to handle mirror log failures.
2197 Add --corelog to lvcreate and lvconvert.
2198 Create a log header for replacement in-sync mirror log.
2199 Use set_lv() and dev_set() to wipe sections of devices.
2200 Add mirror_in_sync() flag to avoid unnecessary resync on activation.
2201 Add mirror_library description to example.conf.
2202 Fix uuid_from_num() buffer overrun.
2203 Make SIZE_SHORT the default for display_size().
2204 Fix some memory leaks in error paths found by coverity.
2205 Use C99 struct initialisers.
2206 Move DEFS into configure.h.
2207 Clean-ups to remove miscellaneous compiler warnings.
2208 Improve stripe size validation.
2209 Increase maximum stripe size limit to physical extent size for lvm2 metadata.
2210 Fix activation code to check for pre-existing mirror logs.
2211 Tighten region size validation.
2212 Ignore empty strings in config files.
2213 Require non-zero regionsize and document parameter on lvcreate man page.
2214 Invalidate cache if composition of VG changed externally.
2215
2216 Version 2.02.05 - 21st April 2006
2217 =================================
2218 Fix vgid string termination in recent cache code.
2219
2220 Version 2.02.04 - 19th April 2006
2221 =================================
2222 Check for libsepol.
2223 Add some cflow & scope support.
2224 Separate out DEFS from CFLAGS.
2225 Remove inlines and use unique function names.
2226
2227 Version 2.02.03 - 14th April 2006
2228 =================================
2229 vgrename accepts vgid and exported VG.
2230 Add --partial to pvs.
2231 When choosing between identically-named VGs, also consider creation_host.
2232 Provide total log suppression with 2.
2233 Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct.
2234 Add vgid to struct physical_volume and pass with vg_name to some functions.
2235 If two or more VGs are found with the same name, use one that is not exported.
2236 Whenever vgname is captured, also capture vgid and whether exported.
2237 Remove an incorrect unlock_vg() from process_each_lv().
2238 Update extent size information in vgchange and vgcreate man pages.
2239 Introduce origin_from_cow() and lv_is_visible().
2240 pvremove without -f now fails if there's no PV label.
2241 Support lvconvert -s.
2242 Suppress locking library load failure message if --ignorelockingfailure.
2243 Propagate partial mode around cluster.
2244 Fix archive file expiration.
2245 Fix dmeventd build.
2246 clvmd now uses libcman rather than cman ioctls.
2247 clvmd will allow new cman to shutdown on request.
2248
2249 Version 2.02.02 - 7th February 2006
2250 ===================================
2251 Add %.so: %.a make template rule.
2252 Switchover library building to use LIB_SUFFIX.
2253 Only do lockfs filesystem sync when suspending snapshots.
2254 Always print warning if activation is disabled.
2255 vgreduce removes mirror images.
2256 Add --mirrorsonly to vgreduce.
2257 vgreduce replaces active LVs with error segment before removing them.
2258 Set block_on_error parameter if available.
2259 Add target_version.
2260 Add details to format1 'Invalid LV in extent map' error message.
2261 Fix lvscan snapshot full display.
2262 Bring lvdisplay man page example into line.
2263 Add mirror dmeventd library.
2264 Add some activation logic to remove_mirror_images().
2265 lvconvert can remove specified PVs from a mirror.
2266 lvconvert turns an existing LV into a mirror.
2267 Allow signed mirrors arguments.
2268 Move create_mirror_log() into toollib.
2269 Determine parallel PVs to avoid with ALLOC_NORMAL allocation.
2270 Fix lv_empty.
2271
2272 Version 2.02.01 - 23rd November 2005
2273 ====================================
2274 Fix lvdisplay cmdline to accept snapshots.
2275 Fix open RO->RW promotion.
2276 Fix missing vg_revert in lvcreate error path.
2277
2278 Version 2.02.00 - 10th November 2005
2279 ====================================
2280 Extend allocation areas to avoid overflow with contiguous with other PVs.
2281 Stop lvcreate attempting to wipe zero or error segments.
2282 Added new lvs table attributes.
2283 Separated out activation preload.
2284 Moved activation functions into libdevmapper.
2285 Fixed build_dm_name.
2286 Add return macros.
2287 Added xen xvd devices.
2288 Clear up precommitted metadata better.
2289 A pvresize implementation.
2290 Fix contiguous allocation when there are no preceding segments.
2291 Add mirror_seg pointer to lv_segment struct.
2292 Only keep a device open if it's known to belong to a locked VG.
2293 Fix lvdisplay to show all mirror destinations.
2294 Replacement suspend code using libdevmapper dependency tree.
2295 Add DEFS to make.tmpl.
2296 Use dm_is_dm_major instead of local copy.
2297 Allow mapped devices to be used as PVs.
2298 Move set_selinux_context into libdevmapper.
2299 Fix automatic text metadata buffer expansion (using macro).
2300 Cache formatted text metadata buffer between metadata area writes.
2301 Add pe_start field to pvs.
2302 Add 'LVM-' prefix to uuids.
2303 Split lv_segment_area from lv_segment to permit extension.
2304 Replacement deactivation code using libdevmapper dependency tree.
2305 Simplify dev_manager_info().
2306 Attempt to load missing targets using modprobe.
2307 Add -a to lvscan.
2308 Move mknodes into libdevmapper.
2309 Move bitset, hash, pool and dbg_malloc into libdevmapper.
2310
2311 Version 2.01.15 - 16th October 2005
2312 ===================================
2313 Refuse to run pvcreate/pvremove on devices we can't open exclusively.
2314 Use ORPHAN lock definition throughout.
2315 Validate chunksize in lvcreate.
2316 Reduce chunksize limit to 512k.
2317 Fix chunksize field in reports.
2318 Don't hide snapshots from default 'lvs' output.
2319 Add is_dm_major() for use in duplicate device detection in lvmcache_add().
2320 Really switch device number in lvmcache when it says it is doing so.
2321 Option for bitset memory allocation using malloc as well as pool.
2322 Don't assume exactly two mirrors when parsing mirror status.
2323 Suppress fsync() error message on filesystems that don't support it.
2324 Fix yes_no_prompt() error handling.
2325 Add lvm.conf comment warning against multiple filter lines.
2326 Tidy lvmconf.sh.
2327 Add format1 dev_write debug messages.
2328 Add clustered VG attribute to report.
2329 Move lvconvert parameters into struct lvconvert_params.
2330 Add clustered VG flag to LV lock requests.
2331 Change LV locking macros to take lv instead of lvid.
2332 Prepend 'cluster' activation parameter to mirror log when appropriate.
2333 Pass exclusive flag to lv_activate and on to target activation code.
2334 Prevent snapshot creation in a clustered VG for now.
2335 Factor out adjusted_mirror_region_size() and generate_log_name_format().
2336 Move compose_log_line() into mirror directory.
2337 Factor out _get_library_path().
2338 Don't kill idling clvmd threads.
2339 clvmd no longer takes out locks for non-clustered LVs.
2340 Recognise ATA over Ethernet (aoe) devices.
2341
2342 Version 2.01.14 - 4th August 2005
2343 =================================
2344 Fix lvconvert PV parameter in help string.
2345 Prevent snapshots getting activated in a clustered VG.
2346 Separate out _build_dev_string.
2347 Move zero_lv to toollib.
2348 Fix pool format handler to work with pv segment code.
2349
2350 Version 2.01.13 - 13th July 2005
2351 ================================
2352 Fix pvmove segment splitting.
2353 Abstract vg_validate.
2354 Only make one attempt at contiguous allocation.
2355 Fix lvm1 format metadata read.
2356 Fix lvm1 format non-mirror lvcreate.
2357
2358 Version 2.01.12 - 14th June 2005
2359 ================================
2360 Various allocation-related pvmove fixes.
2361 Log an error if clvmd can't resolve a host name got from CCS.
2362 Fix potential spin loop in clvmd.
2363
2364 Version 2.01.11 - 13th June 2005
2365 ================================
2366 Added lvmconf.sh.
2367 Use matchpathcon mode parameter.
2368 Don't defer closing dead FDs in clvmd.
2369 Remove hard-coded 64k text metadata writing restriction.
2370 Make VG name restrictions consistent.
2371 Introduce lvconvert. So far only removes mirror images.
2372 Allow mirror images to be resized.
2373 Allow mirror images to have more than one segment.
2374 Centralise restrictions on LV names.
2375 Always insert an intermediate layer for mirrors.
2376 Suppress hidden LVs from reports unless --all is given.
2377 Use square brackets for hidden LVs in reports.
2378 Allow the creation of mirrors with contiguous extents.
2379 Always perform sanity checks against metadata before committing it to disk.
2380 Split lv_extend into two steps: choosing extents + allocation to LV(s).
2381 Add mirror log region size to metadata.
2382 Use list_iterate_items throughout and add list*back macros.
2383 Introduce seg_ macros to access areas.
2384 Add segtype_is_ macros.
2385 Support tiny metadata areas for pool conversions.
2386 Mirror activation handles disk log as well as core.
2387 Activation code recognises mirror log dependency.
2388 Add mirror_log and regionsize fields to report.
2389 Fix non-orphan pvchange -u.
2390 Fix vgmerge to handle duplicate LVIDs.
2391 Move archiver code from tools into library.
2392 vgscan/change/display/vgs automatically create metadata backups if needed.
2393 Merge cloned allocation functions.
2394 Fix contiguous allocation policy with linear.
2395 Cope with missing format1 PVs again.
2396 Remove lists of free PV segments.
2397 Simplify pv_maps code and remove slow bitset algorithm.
2398 Red-Hat-ify the clvmd rhel4 initscript.
2399 %Zu->%zu
2400 Fix loopfiles alias alloc & mem debugging.
2401 Un-inline dbg_strdup.
2402 lv_reduce tidying.
2403 Remove some unnecessary parameters.
2404 Introduce seg_is macros.
2405
2406 Version 2.01.10 - 3rd May 2005
2407 ==============================
2408 Don't create backup and archive dirs till needed.
2409 Reinstate full PV size when removing from VG.
2410 Support loopfiles for testing.
2411 Tidy lv_segment interface.
2412 pv_segment support.
2413 vgchange --physicalextentsize
2414 Internal snapshot restructuring.
2415 Remove unused internal non-persistent snapshot option.
2416 Allow offline extension of snapshot volumes.
2417 Move from 2-step to 3-step on-disk metadata commit.
2418 Scan ramdisks too and allow non-O_DIRECT fallback.
2419 Annotate, tidy and extend list.h.
2420 Alignment tidying.
2421 Make clvmd work around some "bugs" in gulm's node state notifications.
2422 Tidy clvmd's SIGHUP handler
2423
2424 Version 2.01.09 - 4th April 2005
2425 ================================
2426 Add --ignorelockingfailure to vgmknodes.
2427 clvmd: Don't allow user operations to start until the lvm thread is fully up.
2428 clvmd-gulm: set KEEPALIVE on sockets.
2429
2430 Version 2.01.08 - 22nd March 2005
2431 =================================
2432 Add clustered attribute so vgchange can identify clustered VGs w/o locking.
2433 Improve detection of external changes affecting internal cache.
2434 Add 'already in device cache' debug message.
2435 Add -a to pvdisplay -C.
2436 Avoid rmdir opendir error messsages when dir was already removed.
2437 Tighten signal handlers.
2438 Avoid some compiler warnings.
2439 Additional rename failure error message.
2440 read/write may be macros.
2441 clvmd: don't take out lvm thread lock at startup, it only protects jobs list.
2442
2443 Version 2.01.07 - 8th March 2005
2444 ================================
2445 Cope with new devices appearing by rescanning /dev if a uuid can't be found.
2446 Remove DESTDIR from LVM_SHARED_PATH.
2447 clvmd fixes: make FDs close-on-exec
2448 gulm unlocks VG & orphan locks at startup in case they are stale
2449 gulm now unlocks VG & orphan locks if client dies.
2450
2451 Version 2.01.06 - 1st March 2005
2452 ================================
2453 Suppress 'open failed' error messages during scanning.
2454 Option to suppress warnings of file descriptors left open.
2455 Fix default value of metadatacopies in documentation (2->1).
2456 Fix clvmd-gulm locking.
2457 ./configure --enable-debug now enables debugging code in clvmd.
2458 Fix clvmd-gulm node up/down code so it actually works.
2459 clvmd-gulm now releases locks when shut down.
2460
2461 Version 2.01.05 - 18th February 2005
2462 ====================================
2463 Static binary invokes dynamic binary if appropriate.
2464 Make clvmd config check a little more tolerant.
2465 gulm clvmd can now cope with >1 message arriving in a TCP message.
2466
2467 Version 2.01.04 - 9th February 2005
2468 ===================================
2469 Add fixed offset to imported pool minor numbers.
2470 Update binary pathnames in clvmd_init_rhel4.
2471 lvm2cmd.so should skip the check for open fds.
2472 Remove unused -f from pvmove.
2473 Gulm clvmd doesn't report "connection refused" errors.
2474 clvmd does a basic config file sanity check at startup.
2475 Fix potential thread shutdown race in clvmd.
2476
2477 Version 2.01.03 - 1st February 2005
2478 ===================================
2479 More 64-bit display/report fixes.
2480 More informative startup mesg if can't create /etc/lvm.
2481 Fix snapshot device size bug (since 2.01.01).
2482 clvmd announces startup and cluster connection in syslog.
2483 Gulm clvmd doesn't hang trying to talk to a rebooted node.
2484 Gulm clvmd doesn't print cman error on startup.
2485
2486 Version 2.01.02 - 21st January 2005
2487 ===================================
2488 Update clvmd_init_rhel4: use lvm.static and don't load dlm.
2489 Fix some size_t printing.
2490 Fix 64 bit xlate consts.
2491 Split out pool sptype_names to avoid unused const.
2492 Always fail if random id generation fails.
2493 Recognise gnbd devices.
2494 Fix clvmd startup bug introduced in cman/gulm amalgamation.
2495 Improve reporting of node-specific locking errors.
2496
2497 Version 2.01.01 - 19th January 2005
2498 ===================================
2499 Fix clvmd lv_info_by_lvid open_count.
2500 Store snapshot and origin sizes separately.
2501 Update vgcreate man page.
2502
2503 Version 2.01.00 - 17th January 2005
2504 ===================================
2505 Fix vgscan metadata auto-correction.
2506 Only ask libdevmapper for open_count when we need it.
2507 Adjust RHEL4 clvmd init script priority.
2508 Enable building of CMAN & GULM versions of clvmd into a single binary
2509
2510 Version 2.00.33 - 7th January 2005
2511 ==================================
2512 pvcreate wipes first 4 sectors unless given --zero n.
2513 gulm clvmd now uses new ccsd key names.
2514 gulm clvmd now doesn't ignore the first node in cluster.conf
2515 Improve clvmd failure message if it's already running.
2516 Allow user to kill clvmd during initialisation.
2517 Fix off-by-one error in cluster_locking that could cause read hangs.
2518
2519 Version 2.00.32 - 22nd December 2004
2520 ====================================
2521 Drop static/dl restriction for now.
2522 Fix an error fprintf.
2523 Fix vgdisplay -s. Breaks (undocumented) lvs/pvs/vgs -s instead for now.
2524 Fix device reference counting on re-opens.
2525 Ignore sysfs symlinks when DT_UNKNOWN.
2526 Add clvmd init script for RHEL4.
2527 Skip devices that are too small to be PVs.
2528 Fix pvchange -x segfault with lvm2-format orphan.
2529 Cope with empty msdos partition tables.
2530 Add CONTRIBUTORS file.
2531
2532 Version 2.00.31 - 12th December 2004
2533 ====================================
2534 Reopen RO file descriptors RW if necessary.
2535
2536 Version 2.00.30 - 10th December 2004
2537 ====================================
2538 Additional device-handling debug messages.
2539 Additional verbosity level -vvvv includes line numbers and backtraces.
2540 Verbose messages now go to stderr not stdout.
2541 Close any stray file descriptors before starting.
2542 Refine partitionable checks for certain device types.
2543 Allow devices/types to override built-ins.
2544 Fix lvreduce man page .i->.I
2545 Fix vgsplit man page title.
2546 Fix clvmd man makefile.
2547 Extend dev_open logging.
2548 Make clvmd_fix_conf.sh UNDOable.
2549
2550 Version 2.00.29 - 27th November 2004
2551 ====================================
2552 xlate compilation fix.
2553
2554 Version 2.00.28 - 27th November 2004
2555 ====================================
2556 Fix partition table & md signature detection.
2557 Minor configure/makefile tidy.
2558 Export version.h from tools for clvmd.
2559
2560 Version 2.00.27 - 24th November 2004
2561 ====================================
2562 Trap large memory allocation requests.
2563 Fix to partition table detection code.
2564 Improve filter debug mesgs.
2565 Make clvmd_fix_conf.sh UNDOable
2566
2567 Version 2.00.26 - 23rd November 2004
2568 ====================================
2569 Improve pool debugging stats.
2570 Detect partition table signature.
2571 pvcreate wipes md superblocks. (With --uuid or --restorefile it prompts.)
2572 Separate out md superblock detection code.
2573 Prevent snapshot origin resizing.
2574 Improve a vgremove error message.
2575 Update some man pages.
2576 Allow y/n with -ae args (exclusive activation).
2577 Fixes to lvcreate vgname parsing.
2578 Fix dm_name string size calculation.
2579 Improve clvmd error reporting during startup.
2580 Make clvmd cope with large gaps in node numbers IDs.
2581 Make clvmd initialisation cope better with debugging output.
2582 Tidy clvmd socket callbacks so all work happens outside main loop.
2583 clvmd -V now displays lvm version too.
2584 Add optional gulm build for clvmd
2585
2586 Version 2.00.25 - 29th September 2004
2587 =====================================
2588 Fix return code from rm_link for vgmknodes.
2589 Make clvmd LV hash table thread-safe.
2590 Fix clvmd locking so it will lock out multiple users on the same node.
2591 Fix clvmd VG locking to it can cope with multiple VG locks.
2592 Remove spurious trailing dot in lvreduce man page.
2593 Fix vgremove locking.
2594
2595 Version 2.00.24 - 16th September 2004
2596 =====================================
2597 Fix pool_empty so it really does empty the memory pool.
2598 Rename old segtypes files to segtype.
2599 Some fixes to memory debugging code.
2600 Exclude internal commands formats & segtypes from install.
2601
2602 Version 2.00.23 - 15th September 2004
2603 =====================================
2604 Export dm name build & split functions.
2605 Use O_NOATIME on devices if available.
2606 Write log message when each segtype/format gets initialised.
2607 New commands 'segtypes' and 'formats'.
2608 Suppress pvmove abort message in test mode.
2609 Improve pvcreate/remove device not found error message.
2610 Allow pvmove to move data within the same PV.
2611 Describe how pvmove works on man page.
2612 Test for incompatible format/segtype combinations in lv_extend.
2613 Fix lvchange example on man page.
2614
2615 Version 2.00.22 - 3rd September 2004
2616 ====================================
2617 Fix /dev/vgname perms.
2618 Restructure xlate.h.
2619 Add clvmd man page.
2620
2621 Version 2.00.21 - 19th August 2004
2622 ==================================
2623 Update cnxman-socket.h from cman.
2624 Recognise iseries/vd devices.
2625 Use 'make install_cluster' to install cluster extensions only.
2626 Cope with DT_UNKNOWN in sysfs.
2627 Fix extents_moved metadata size comment.
2628 Remove duplicate line in pvremove help text.
2629 Support variable mirror region size.
2630 Support PE ranges in pvmove source PV.
2631 Fixes to as-yet-unused LV segment splitting code.
2632 Change alloc_areas to pe_ranges and allow suppression of availability checks.
2633 Add dev_size column to pvs.
2634 Add report columns for in-kernel device number.
2635
2636 Version 2.00.20 - 3 July 2004
2637 =============================
2638 More autoconf fixes.
2639 Fix device number handling for 2.6 kernels.
2640
2641 Version 2.00.19 - 29 June 2004
2642 ==============================
2643 Reduce severity of setlocale failure message.
2644 Recognise argv[0] "initrd-lvm" (pld-linux).
2645 Make -O2 configurable.
2646 Added --disable-selinux to configure script.
2647 LD_FLAGS->LDFLAGS & LD_DEPS->LDDEPS in configure script.
2648 Add init_debug to clvmd.
2649
2650 Version 2.00.18 - 24 June 2004
2651 ==============================
2652 Fix vgchange activation.
2653 Add cluster support.
2654
2655 Version 2.00.17 - 20 June 2004
2656 ==============================
2657 configure --enable-fsadm to try out fsadm. fsadm is not tested yet.
2658 Display all filtered devices, not just PVs, with pvs -a.
2659 Fix sync_dir() when no / in filename
2660 vgcfgbackup -f accepts template with %s for VG name.
2661 Extend hash functions to handle non-null-terminated data.
2662 Add local activation support.
2663 Tidy relative paths in makefile includes.
2664 fsadm support for fsck and resizing - needs testing.
2665 Add read-only GFS pool support.
2666 Add lvm2create_initrd script from http://poochiereds.net/svn/lvm2/
2667 Fix rounding of large diplayed sizes.
2668 Suppress decimal point when using units of sectors/bytes.
2669 Additional kernel target checks before pvmove & snapshot creation.
2670 Add i2o_block.
2671
2672 Version 2.00.16 - 24 May 2004
2673 =============================
2674 Set area_count within alloc_lv_segment.
2675 Remove error labels from lvresize.
2676 Fix a pvs error path.
2677 xxchange -ae for exclusive activation.
2678 Don't return non-zero status if there aren't any volume groups.
2679 Add --alloc argument to tools.
2680 Rename allocation policies to contiguous, normal, anywhere, inherit.
2681 nextfree becomes normal; anywhere isn't implemented yet.
2682 LV inherits allocation policy from VG. Defaults: LV - inherit; VG - normal
2683 Additional status character added to vgs to indicate allocation policy.
2684 Add reset_fn to external_locking.
2685 Ensure presence of virtual targets before attempting activating.
2686 Attempt to fix resizing of snapshot origins.
2687 Restructure lvresize, bringing it closer to lvcreate.
2688 A quick sanity check on vg_disk struct when read in. More checks needed.
2689 Only include visible LVs in active/open counts.
2690 Add virtual segment types, zero and error. A large sparse device can be
2691 constructed as a writeable snapshot of a large zero segment.
2692 Add --type to lvcreate/resize.
2693 Push lv_create & alloc policy up to tool level.
2694 Fix pvdisplay return code.
2695 Detect invalid LV names in arg lists.
2696 Reporting uses line-at-a-time output.
2697 lvm2 format sets unlimited_vols format flag.
2698 Internal-only metadata flag support.
2699 Basic checking for presence of device-mapper targets.
2700 Separate out polldaemon.
2701 Revise internal locking semantics.
2702 Move find_pv_by_name to library.
2703 Rename move->copy.
2704 Add devices to segments report.
2705 Begin separating out segment code. There's a lot of change here.
2706 Compress any (obsolete) long LVM1 pvids encountered.
2707 Support for tagged config files.
2708 Don't abort operations if selinux present but disabled.
2709 Fix typo in configure which left HAVE_LIBDL unset.
2710
2711 Version 2.00.15 - 19 Apr 2004
2712 =============================
2713 configure --with-owner= --with-group= to avoid -o and -g args to 'install'
2714
2715 Version 2.00.14 - 16 Apr 2004
2716 =============================
2717 Use 64-bit file functions by default.
2718
2719 Version 2.00.13 - 16 Apr 2004
2720 =============================
2721 Set devices/md_component_detection = 1 to ignore devices containing md
2722 superblocks. [Luca Berra]
2723 Ignore error setting selinux file context if fs doesn't support it.
2724
2725 Version 2.00.12 - 14 Apr 2004
2726 =============================
2727 Install a default lvm.conf into /etc/lvm if there isn't one already.
2728 Allow different installation dir for lvm.static (configure --staticdir=)
2729 Fix inverted selinux error check.
2730 Recognise power2 in /proc/devices.
2731 Fix counting in lvs_in_vg_opened. [It ignored devices open more than once.]
2732
2733 Version 2.00.11 - 8 Apr 2004
2734 ============================
2735 Set fallback_to_lvm1 in lvm.conf (or configure --enable-lvm1_fallback)
2736 to run lvm1 binaries if running a 2.4 kernel without device-mapper.
2737
2738 Version 2.00.10 - 7 Apr 2004
2739 ============================
2740 More fixes for static build.
2741 Add basic selinux support.
2742 Fix sysfs detection.
2743
2744 Version 2.00.09 - 31 Mar 2004
2745 =============================
2746 Update copyright notices for Red Hat.
2747 Fix vgmknodes to remove dud /dev/mapper entries. (libdevmapper update reqd).
2748 Add LVM1-style colon output to vgdisplay.
2749 lvchange --refresh to reload active LVs.
2750 Add string display to memory leak dump.
2751 Add locking flags & memlock option.
2752 Add list_versions to library.
2753 Ignore open hidden LVs when checking if deactivation is OK.
2754 Suppress move percentage when device inactive.
2755 Add lv_info_by_lvid.
2756 Various tidy-ups to the build process.
2757 Rebaseline internal verbose level.
2758 Add --nolocking option for read operations if locking is failing.
2759 Add option to compile into a library.
2760 When compiled without libdevmapper, only print warning message once.
2761 Fix lvreduce PV extent calculations.
2762 Fix DESTDIR to work with configure path overrides.
2763 Always use / as config file separator & rename internal config file variables.
2764 Add support for tagging PV/VG/LVs and hosts.
2765 Fix rare bug in recognition of long cmdline argument forms.
2766 Add basic internationalisation infrastructure.
2767 Don't recurse symlinked dirs such as /dev/fd on 2.6 kernels.
2768 Update autoconf files.
2769 Add sysfs block device filtering for 2.6 kernels.
2770 Update refs for move to sources.redhat.com.
2771
2772 Friday 14th November 2003
2773 =========================
2774 Some bug fixes & minor enhancements, including:
2775 Backwards compatibility with LVM1 metadata improved.
2776 Missing man pages written.
2777 Tool error codes made more consistent.
2778 vgmknodes written.
2779 O_DIRECT can be turned off if it doesn't work in your kernel.
2780 dumpconfig to display the active configuration file
2781
2782 You need to update libdevmapper before using 'vgmknodes' or 'vgscan --mknodes'.
2783 If your root filesystem is on an LV, you should run one of those two
2784 commands to fix up the special files in /dev in your real root filesystem
2785 after finishing with your initrd. Also, remember you can use
2786 'vgchange --ignorelockingfailure' on your initrd if the tool fails because
2787 it can't write a lock file to a read-only filesystem.
2788
2789 Wednesday 30th April 2003
2790 =========================
2791 A pvmove implementation is now available for the new metadata format.
2792
2793 When running a command that allocates space (e.g. lvcreate), you can now
2794 restrict not only which disk(s) may be used but also the Physical Extents
2795 on those disks. e.g. lvcreate -L 10 vg1 /dev/hda6:1000-2000:3000-4000
2796
2797
2798 Monday 18th November 2002
2799 ========================
2800
2801 The new format of LVM metadata is ready for you to test!
2802 We expect it to be more efficient and more robust than the original format.
2803 It's more compact and supports transactional changes and replication.
2804 Should things go wrong on a system, it's human-readable (and editable).
2805
2806 Please report any problems you find to the mailing list,
2807 linux-lvm@sistina.com. The software has NOT yet been thoroughly
2808 tested and so quite possibly there'll still be some bugs in it.
2809 Be aware of the disclaimer in the COPYING file.
2810
2811 While testing, we recommend turning logging on in the configuration file
2812 to provide us with diagnostic information:
2813 log {
2814 file="/tmp/lvm2.log"
2815 level=7
2816 activation=1
2817 }
2818
2819 You should schedule regular backups of your configuration file and
2820 metadata backups and archives (normally kept under /etc/lvm).
2821
2822 Please read docs/example.conf and "man lvm.conf" to find out more about
2823 the configuration file.
2824
2825 To convert an existing volume group called vg1 to the new format using
2826 the default settings, use "vgconvert -M2 vg1". See "man vgconvert".
2827
2828 -M (or --metadatatype in its long form) is a new flag to indicate which
2829 format of metadata the command should use for anything it creates.
2830 Currently, the valid types are "lvm1" and "lvm2" and they can be
2831 abbreviated to "1" and "2" respectively. The default value for this
2832 flag can be changed in the global section in the config file.
2833
2834 Backwards-compatible support for the original LVM1 metadata format is
2835 maintained, but it can be moved into a shared library or removed
2836 completely with configure's --with-lvm1 option.
2837
2838 Under LVM2, the basic unit of metadata is the volume group. Different
2839 volume groups can use different formats of metadata - vg1 could use
2840 the original LVM1 format while vg2 used the new format - but you can't
2841 mix formats within a volume group. So to add a PV to an LVM2-format
2842 volume group you must run "pvcreate -M2" on it, followed by "vgextend".
2843
2844 With LVM2-format metadata, lvextend will let you specify striping
2845 parameters. So an LV could consist of two or more "segments" - the
2846 first segment could have 3 stripes while the second segment has just 2.
2847
2848 LVM2 maintains a backup of the current metadata for each volume group
2849 in /etc/lvm/backup, and puts copies of previous versions in
2850 /etc/lvm/archive. "vgcfgbackup" and "vgcfgrestore" can be used to
2851 create and restore from these files. If you fully understand what
2852 you're doing, metadata can be changed by editing a copy of a current
2853 backup file and using vgcfgrestore to reload it.
2854
2855 Please read the pvcreate man page for more information on the new
2856 format for metadata.
2857
2858 All tools that can change things have a --test flag which can be used
2859 to check the effect of a set of cmdline args without really making the
2860 changes.
2861
2862
2863 What's not finished?
2864 ====================
2865 The internal cache. If you turn on debugging output you'll see lots of
2866 repeated messages, many of which will eventually get optimised out.
2867
2868 --test sometimes causes a command to fail (e.g. vgconvert --test) even
2869 though the real command would work: again, fixing this is waiting for
2870 the work on the cache.
2871
2872 Several of the tools do not yet contain the logic to handle full
2873 recovery: combinations of pvcreate and vgcfgrestore may sometimes be
2874 needed to restore metadata if a tool gets interrupted or crashes or
2875 finds something unexpected. This applies particularly to tools that
2876 work on more than one volume group at once (e.g. vgsplit).
2877
2878 Display output. Some metadata information cannot yet be displayed.
2879
2880 Recovery tools to salvage "lost" metadata directly from the disks:
2881 but we hope the new format will mean such tools are hardly ever needed!
This page took 0.194663 seconds and 6 git commands to generate.