-Version 2.02.89 -
-==================================
+Version 2.02.94 - 3rd March 2012
+================================
+ Add support to execute thin_check with each de/active of thin pool.
+ Fix automatic estimation of metadata device size for thin pool.
+ Test for alloc fail from _alloc_pv_segment() in _extend_pv().
+ Check for alloc fail from get_segtype_from_string() in _lvcreate_params().
+ Add _rimage as reserved suffix to lvm.8 man page.
+ Improve error logging from mpath filter.
+ Check for allocation failure in hold_lock() in clvmd.
+ Use set_lv() (wipe initial 4KiB) for non zeroed thin volume.
+ Allow cluster mirrors to handle the absence of the checkpoint lib (libSaCkpt).
+ Revert free of allocated segtype in init segment error path (2.02.89).
+ Test dm_hash_insert() failures in filter-persistent.c and fid_add_mda().
+ Ensure clvmd message is always NUL-terminated after read.
+ Add some close() and dev_close() error path backtraces.
+ Set stdin/stdout/stderr to /dev/null for polldaemon.
+ Limit the max size of processed clvmd message to ~8KB.
+ Do not send uninitialised bytes in cluster error reply messages.
+ Use unsigned type for bitmask instead of enum type for lvm properties.
+ Add missing cleanup of excl_uuid hash on some exit paths of clvmd.
+ Check for existence of vg_name in _format1/_pool_vg_read().
+ Fix missing break in _format_pvsegs (2.02.92).
+ Test seg pointer for non-null it in raid_target_percent error path.
+ Check for errors in _init_tags() during config loading.
+ Always check result of _set_vg_name() in lvcreate.
+ Drop unused call to uname() during clvmd initialization.
+ Test allocation result in sysfs filter creation.
+ Limit sscanf parameters with buffer size in clvmd get_initial_state().
+ Use const lv pointer for lv_is_active...() functions.
+ Use same signed numbers in _mirrored_transient_status().
+ Provide new metadata daemon for testing with configure --enable-lvmetad .
+ Integrate client-side lvmetad into build.
+
+Version 2.02.93 - 23rd February 2012
+====================================
+ Require number of stripes to be greater than parity devices in higher RAID.
+ Fix allocation code to allow replacement of single RAID 4/5/6 device.
+ Check all tags and LV names are in a valid form in vg_validate.
+ Add tmpfiles.d style configuration for lvm2 lock and run directory.
+ Add configure --with-tmpfilesdir for dir holding volatile-file configuration.
+ Allow 'lvconvert --repair' to operate on RAID 4/5/6.
+ Fix build_parallel_areas_from_lv to account correctly for raid parity devices.
+ Print message when faulty raid devices have been replaced.
+
+Version 2.02.92 - 20th February 2012
+====================================
+ Read dmeventd monitoring config settings for every lvm command.
+ For thin devices, initialize monitoring only for thin pools not thin volumes.
+ Make conversion from a synced 'mirror' to 'raid1' not cause a full resync.
+ Properly test buffer for unit check in units_to_bytes().
+ Add configure --with-systemdsystemunitdir.
+ Add check for allocation failure in _build_matcher().
+ Add check for rimage name allocation failure in _raid_add_images().
+ Add check for mda_copy failure in _text_pv_setup().
+ Add check for _mirrored_init_target failure.
+ Add free_orphan_vg.
+ Skip pv/vg_set_fid processing if the fid is same.
+ Check for foreach loop errors in _vg_read_orphans() (2.02.91).
+ Clean error paths for format instance creation (2.02.91).
+ Release vg in error path of _format1_vg_read() instead of just free().
+ Report allocation failure for allocation of PV structure.
+ Add clvmd init dependency on dlm service when running with new corosync.
+
+Version 2.02.91 - 12th February 2012
+====================================
+ Remove PV-based format instances (which are no longer needed).
+ Link all orphan PVs directly to a per-format global orphan VG.
+ Refactor lvmcache around an internal API.
+ Stop processing lvextend if trying to extend a mirror that is being recovered.
+ Add pool_below_threshold() function to check thin pool percent status.
+ Fix test for snap percent for failing merge when removing LV.
+ Switch int to void return for str_list_del().
+ Fix error path handling in _build_desc().
+ Add range test for device number in _scan_proc_dev().
+ Use signed long for sysconf() call in cmirrord.
+ Do not write in front of log buffer in print_log().
+ Add boundary test for number of mirror devs and logs.
+ Check that whole locking_dir fits _lock_dir buffer in init_file_locking().
+ Use list functions for label_exit().
+ Ensure strncpy() function always ends with '\0'.
+ Set status in _fsadm_cmd() for error path.
+ Add missing deps for lvm2api for rebuild when lvm-internal is changed.
+ Fix resource leaks for failing allocation of formats (lvm1/2,pool).
+ Release allocated resources in error path for composite_filter_create().
+ Do not use lstat() results when failed in _rm_link().
+ Remove a "waiting for another thread" log message from dmeventd plugins.
+
+Version 2.02.90 - 1st February 2012
+===================================
+ sync_local_dev_names before (re)activating mirror log for initialisation.
+ Disable partial activation for thin LVs and LVs with all missing segments.
+ Do not print warning for pv_min_size between 512KB and 2MB.
+ Clean up systemd unit ordering and requirements.
+ Fix lcov reports when srcdir != builddir.
+ Allow ALLOC_NORMAL to track reserved extents for log and data on same PV.
+ Automatically detect whether corosync clvmd needs to use confdb or cmap.
+ Fix data% report for thin volume used as origin for non-thin snapshot.
+
+Version 2.02.89 - 26th January 2012
+===================================
+ Add missing check for uname result in clvmd TEST processing.
+ Fix memleak in target_version() error path (unsupported LIST_VERSIONS).
+ Limit data_alignment and data_alignment_offset to 32bit values.
+ Check for correctness of uint64 dev_size value in format_text.
+ Thin pools have segment fields thin_count, zero, transaction_id.
+ Add data_percent and metadata_percent for thin pools to lvs -v.
+ Add data_lv & metadata_lv fields to lvs for thin pools.
+ Add data_percent & pool_lv fields to lvs for thin volumes.
+ Rename origin_only parm to use_layer for lv_info and use with thin LVs.
Add lv_thin_pool_transaction_id to read the transaction_id value.
- Use suspend|resume_origin_only when up-converting RAID, as mirrors do.
- Fix the way RAID meta LVs are added to the dependency tree.
+ Use {suspend,resume}_origin_only when up-converting RAID, as mirrors do.
+ Always add RAID metadata LVs to deptree (even when origin_only is set).
Change exclusive LV activation logic to try local node before remote nodes.
Add CLVMD_FLAG_REMOTE to skip processing on local node.
Prompt if request is made to remove a snapshot whose "Merge failed".
Don't allow a user to merge an invalid snapshot.
Use m and M lv_attr to indicate that a snapshot merge failed in lvs.
Differentiate between snapshot status of "Invalid" and "Merge failed".
- Lookup snapshot usage percent of origin volume when a snapshot is merging.
- Update lvdisplay with backward compat. config opt. lvm1_compatible_display.
+ Report snapshot usage percent of origin volume when a snapshot is merging.
+ Require global/lvdisplay_shows_full_device_path for (bogus) lvm1-style paths.
Do not report linear segtype for non-striped targets.
- Keep info about creation host and time for each logical volume.
+ Record creation host & time for each LV and report as lv_time & lv_host.
Make error message hit when preallocated memlock memory exceeded clearer.
Use R lv_attr to indicate read-only activation of non-read-only device in lvs.
Show read-only activation override in lvdisplay & add 4 to perms in -c.
Add activation/read_only_volume_list to override LV permission in metadata.
Give priority to emcpower devices with duplicate PVIDs.
Add check for error in _adjust_policy_params() (lvextend --use-policies).
- Supports rounding of percentage (%LV, %VG...) for LV resize upward.
+ Round specified percentages upwards (%LV, %VG...) when resizing LVs.
Use dmeventd_lvm2_command in dmeventd plugins snapshot, raid, mirror.
- Add helper dmeventd_lvm2_command() into libdevmapper-event-lvm2 library.
- Updated documentation for dmeventd.
- Drop extra stat call before opening device.
+ Add helper dmeventd_lvm2_command() to libdevmapper-event-lvm2 library.
+ Update documentation for dmeventd.
+ Remove unnecessary stat before opening device in dev_open_flags.
Reduce number of lstat calls when selecting device alias.
- Add function to inialize common structure device members.
- Always zalloc device structure during initialization.
+ Add _dev_init to initialize common struct device members.
+ Always zalloc struct device during initialization.
Fix missing thread list manipulation protection in dmeventd.
Do not derefence lv pointer in _percent_run() function before NULL check.
Allow empty strings for description and creation_host config fields.
Issue deprecation warning when removing last lvm1-format snapshot.
Reinstate support for snapshot removal with lvm1 format. (2.02.86)
- Add policy based automated repair of RAID logical volumes
- Don't allow two images to be split and tracked from a RAID LV at one time
- Don't allow size change of RAID LV that is tracking changes for a split image
- Don't allow size change of RAID sub-LVs independently
- Don't allow name change of RAID LV that is tracking changes for a split image
- Do not allow users to change the name of RAID sub-LVs independently
- Do not allow users to change permissions on RAID sub-LVs
- Support the ability to replace specific devices in a RAID array via lvconvert.
+ Add policy-based automated repair of RAID logical volumes.
+ Don't allow two images to be split and tracked from a RAID LV at one time.
+ Don't allow size change of RAID LV that is tracking changes for a split image.
+ Don't allow size change of RAID sub-LVs independently.
+ Don't allow name change of RAID LV that is tracking changes for a split image.
+ Do not allow users to change the name of RAID sub-LVs independently.
+ Do not allow users to change permissions on RAID sub-LVs.
+ Allow lvconvert to replace specified devices in a RAID array.
Add activation/use_linear_target enabled by default.
Use gcc warning options only with .c to .o compilation.
Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.
Add query before removing snapshots when inactive snapshot origin is removed.
Allow changing availability state of snapshots.
Skip non-virtual snapshots for availability change for lvchange with vg name.
- Adjusted mirror region size only for mirrors and raids.
+ Skip adjusting mirror region size unless mirror or raid.
Reorder prompt conditions for removal of active volumes.
- Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag (2.02.86)
+ Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag.(2.02.86)
Fix --enable-static_link unless using --enable-dmeventd / --enable-udev_sync.
Move gentoo MAKEDEV to /sbin in lvm2create_initrd.
Add filter to avoid scan of device if it is part of active multipath.
Add missing default $LVM_VG_NAME usage for snapshots.
- Fix extent_count overflow with lvextend.
+ Avoid extent_count overflow with lvextend.
Add missing lvrename mirrored log recursion in for_each_sub_lv.
Improve lv_extend stack reporting.
Increase virtual segment size instead of creating multiple segment list.
Add last_seg(lv) internal function.
Support empty string for log/prefix.
- Fix regression that allowed mirrored logs for cluster mirrors.
+ Disallow mirrored logs for cluster mirrors. (2.02.72)
Don't print char type[8] as a plain string in pvck PV type.
- Use vg memory pool implicitely for vg read.
+ Use vg memory pool implicitly for vg read.
Always use vg memory pool for allocated lv segment.
Remove extra 4kB buffer allocated on stack in print_log().
Make move_lv_segment non-static function and use dm_list function.
Pass exclusive LV locks to all nodes in the cluster.
- Improve lvcreate man documentation of the chunksize option.
- Improve man page style for lvcreate, lvs.
+ Improve lvcreate chunksize man page description.
+ Improve man page style for lvcreate & lvs.
Avoid recursive calls to dmeventd in its LVM plugins.
Log dev name now returned to kernel for registering during cmirror CTR.
- Fix lv_info open_count test for disabled verify_udev_operations (2.02.86).
+ Fix lv_info open_count test for disabled verify_udev_operations. (2.02.86)
Simplify code for lvm worker thread in clvmd.
Use pthread_barrier to synchronize clvmd threads at startup.
Limit clvmd's thread size to 128KiB and ignore activation/reserved_stack.
Add ability to convert mirror segtype to RAID1 segtype.
Add ability to convert from linear to RAID1.
Add ability to extend mirrors with '--nosync' option.
- Fix splitmirror in cluster having different DM/LVM views of storage.
- Fix improper udev settings during suspend/resume for mirror sub-LVs.
- Fix vgsplit when there are mirrors that have mirrored logs.
+ Fix splitmirror LV names to maintain consistent state in a cluster.
+ Apply appropriate udev flags when suspending/resuming mirror sub-LVs.
+ Fix vgsplit to handle mirrored logs.
Clarify multi-name device filter pattern matching explanation in lvm.conf.
- Introduce lv_send_message and dev_manager_send_message.
Introduce revert_lv for better pvmove cleanup.
Replace incomplete pvmove activation failure recovery code with a message.
Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely.
Fix clvmd processing of invalid request on local socket.
Fix command line option decoding.
Reset LV status when unlinking LV from VG.
- Fix overly strict extent-count divisibility requirements for striped mirrors.
+ Fix overly-strict extent-count divisibility requirements for striped mirrors.
Fix rounding direction in lvresize when reducing volume size.
Fix possible overflow of size if %FREE or %VG is used.
Fix vgchange activation of snapshot with virtual origin.
Activate virtual snapshot origin exclusively (only on local node in cluster).
Fix lv_mirror_count to handle mirrored stripes properly.
Fix failure to down-convert a mirror to linear due to udev "dev open" conflict
- Fix mirrored log creation when PE size is small - force log_size >= region_size
+ Fix mirrored log creation when PE size is small: use log_size >= region_size.
Fix log size calculation when only a log is being added to a mirror.
Add 7th lv_attr char to show the related kernel target.
Terminate pv_attr field correctly. (2.02.86)
Fix 'not not' typo in pvcreate man page.
- Improve man page style for fsadm, lvreduce, lvremove, lvrename, lvresize.
+ Improve man page style for fsadm, lvreduce, lvremove, lvrename & lvresize.
Support break for vgchange and vgrefresh operation.
Switch int to unsigned type for pvmetadatacopies for pv_create().
Replace :space: with [\t ] for awk in vgimportclone (not widely supported).