summaryrefslogtreecommitdiff
path: root/WHATS_NEW
diff options
context:
space:
mode:
Diffstat (limited to 'WHATS_NEW')
-rw-r--r--WHATS_NEW699
1 files changed, 697 insertions, 2 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 08cc26c..c0ae3df 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,8 +1,703 @@
+Version 2.02.98 - 15th October 2012
+===================================
+ Switch from DEBUG() to DEBUGLOG() in lvmetad as -DDEBUG is already used.
+ Prohibit not yet supported change of thin-pool to read-only.
+ Support creation of read-only thin volumes (lvcreate -p r).
+ Using autoextend percent 0 for thin pool fails 'lvextend --use-policies'.
+ Introduce blkdeactivate script to deactivate block devs with dependencies.
+ Implement devices/global_filter to hide devices from lvmetad.
+ Make vgscan --cache an alias for pvscan --cache.
+ Clear lvmetad metadata/PV cache before a rescan.
+ Fix a segmentation fault upon receiving a corrupt lvmetad response.
+ Give inconsistent metadata warnings in pvscan --cache.
+ Make lvremove ask before discarding data areas.
+ Avoid overlapping locks that could cause a deadlock in lvmetad.
+ Fix memory leaks in libdaemon and lvmetad.
+ Optimize libdaemon logging for a fast no-output path.
+ Only create lvmetad pidfile when running as a daemon (no -f).
+ Warn if lvmetad is running but disabled.
+ Warn about running lvmetad with use_lvmetad = 0 in example.conf.
+ Update lvmetad help output (flags and their meaning).
+ Make pvscan --cache read metadata from LVM1 PVs.
+ Make libdaemon buffer handling asymptotically more efficient.
+ Add lvmdump -l, to collect a state dump from lvmetad.
+ Make --sysinit suppress lvmetad connection failure warnings.
+ Prohibit usage of lvcreate --thinpool with --mirrors.
+ Fix lvm2api origin reporting for thin snapshot volume.
+ Add configure --enable-python_bindings for liblvm2app to new python subdir.
+ Add implementation of lvm2api function lvm_percent_to_float.
+ Allow non power of 2 thin chunk sizes if thin pool driver supports that.
+ Allow limited metadata changes when PVs are missing via [vg|lv]change.
+ Do not start dmeventd for lvchange --resync when monitoring is off.
+ Remove pvscan --cache from lvm2-lvmetad init script.
+ Remove ExecStartPost with pvscan --cache from lvm2-lvmetad.service.
+ Report invalid percentage for property snap_percent of non-snaphot LVs.
+ Disallow conversion of thin LVs to mirrors.
+ Fix lvm2api data_percent reporting for thin volumes.
+ Do not allow RAID LVs in a clustered volume group.
+ Add --discards to lvconvert.
+ Add --poolmetadata to lvconvert and support thin meta/data dev stacking.
+ Support changes of permissions for thin snapshot volumes.
+ Enhance insert_layer_for_lv() with recursive rename for _tdata LVs.
+ Skip building dm tree for thin pool when called with origin_only flag.
+ Add internal lv_rename_update() to rename LV without updating mda.
+ Ensure descriptors 0,1,2 are always available, using /dev/null if necessary.
+ Use /proc/self/fd when available for closing opened descriptors efficiently.
+ Add missing pkg init with --enable-testing in configure.in (2.02.71).
+ Fix inability to create, extend or convert to a large (> 1TiB) RAID LV.
+ Split out daemon-io from daemon-shared and always build libdaemonclient.
+ Update lvmetad communications to cope with clients using different filters.
+ Add (p)artial attribute to lvs.
+ Don't try to issue discards to a missing PV to avoid segfault.
+ Clear LV_NOSYNCED flag when a RAID1 LV is converted to a linear LV.
+ Disallow RAID1 upconvert if the LV was created with --nosync.
+ Depend on systemd-udev-settle in units generated by activation generator.
+ Fix vgchange -aay not to activate non-matching LVs that follow a matching LV.
+ Fix lvchange --resync for RAID LVs which had no effect.
+ Restructure mirror resync code.
+ Disallow addition of RAID images until the array is in-sync.
+ Fix RAID LV creation with '--test' so valid commands do not fail.
+ Add lvm_lv_rename() to lvm2api.
+ Fix setvbuf code by closing and reopening stream before changing buffer.
+ Disable private buffering when using liblvm.
+ When private stdin/stdout buffering is not used always use silent mode.
+ Add log/silent to lvm.conf equivalent to -qq.
+ Suppress non-essential stdout with -qq.
+ Switch non-essential log_print messages to log_print_unless_silent.
+ Use -q as short form of --quiet.
+ Add RAID10 support (--type raid10).
+ Reuse _reload_lv() in more lvconvert functions.
+ Fix 32-bit device size arithmetic needing 64-bit casting throughout tree.
+ Remove numerous unnecessary #includes and the empty util.c.
+ Fix dereference of NULL in lvmetad error path logging.
+ Fix buffer memory leak in lvmetad logging.
+ Add support for lvcreate --discards.
+ Correct the discards field in the lvs manpage (2.02.97).
+ Use proper condition to check for discards settings unsupported by kernel.
+ Reinstate correct default to ignore discards for thin metadata from old tools.
+ Issue error message when -i and -m args do not match specified RAID type.
+ Change lvmetad logging syntax from -ddd to -l {all|wire|debug}.
+ Add new libdaemon logging infrastructure.
+
+Version 2.02.97 - 7th August 2012
+=================================
+ Improve documention of allocation policies in lvm.8.
+ Increase limit for major:minor to 4095:1048575 when using -My option.
+ Add make install_systemd_generators.
+ Add generator for lvm2 activation systemd units.
+ Add lvm_config_find_bool lvm2app fn to retrieve bool value from config tree.
+ Respect --test when using lvmetad.
+ No longer capitalise first LV attribute char for invalid snapshots.
+ Allow vgextend to add PVs to a VG that is missing PVs.
+ Recognise Micron PCIe SSDs in filter and move array out to device-types.h.
+ Fix dumpconfig <node> to print only <node> without its siblings. (2.02.89)
+ Do not issue "Failed to handle a client connection" error if lvmetad killed.
+ Support lvchange --discards and -Z with thin pools.
+ Add discard LV segment field to reports.
+ Add --discards to lvcreate --thin.
+ Set discard and external snapshot features if thin pool target is vsn 1.1+.
+ Count percentage of completeness upwards not downwards when merging snapshot.
+ Skip activation when using vg/lvchange --sysinit -a ay and lvmetad is active.
+ Fix extending RAID 4/5/6 logical volumes
+ Fix test for PV with unknown VG in process_each_pv to ignore ignored mdas.
+ Update man pages with --activate ay option and auto_activation_volume_list.
+ Fix _alloc_parallel_area to avoid picking already-full areas for raid devices.
+ Use vgchange -aay instead of vgchange -ay in clmvd init script.
+ Add activation/auto_activation_volume_list to lvm.conf.
+ Add --activate ay to lvcreate, lvchange, pvscan and vgchange.
+ Add support for volume autoactivation using lvmetad.
+ Add --activate synonym for --available arg and prefer --activate.
+ Never issue discards when LV extents are being reconfigured, not deleted.
+ Allow release_lv_segment_area to fail as functions it calls can fail.
+ Open device read-only instead of read-write when obtaining readahead value.
+ Fix lvconvert thin pool error path NULL pointer dereference.
+ Detect create_instance() failure in pvscan_lvmetad_single().
+ Use 64-bit calculations for reserved memory and stack.
+ Fix missing sync of filesystem when creating thin volume snapshot.
+
+Version 2.02.96 - 8th June 2012
+===============================
+ Upstream source repo now fedorahosted.org git not sources.redhat.com CVS.
+ Fix error paths for regex filter initialization.
+ Re-enable partial activation of non-thin LVs until it can be fixed. (2.02.90)
+ Fix alloc cling to cling to PVs already found with contiguous policy.
+ Fix cling policy not to behave like normal policy if no previous LV seg.
+ Fix allocation loop not to use later policies when --alloc cling without tags.
+ Append _TO_LVSEG to names of internal A_CONTIGUOUS and A_CLING flags.
+ Add missing pkg init --with-systemdsystemunitdir in configure.in (2.02.92).
+ Fix division by zero if PV with zero PE count is used during vgcfgrestore.
+ Add initial support for thin pool lvconvert.
+ Fix lvrename for thin volumes (regression in for_each_sub_lv). (2.02.89)
+ Fix up-convert when mirror activation is controlled by volume_list and tags.
+ Warn of deadlock risk when using snapshots of mirror segment type.
+ Fix bug in cmirror that caused incorrect status info to print on some nodes.
+ Remove statement that snapshots cannot be tagged from lvm man page.
+ Disallow changing cluster attribute of VG while RAID LVs are active.
+ Fix lvconvert error message for non-mergeable volumes.
+ Allow subset of failed devices to be replaced in RAID LVs.
+ Prevent resume from creating error devices that already exist from suspend.
+ Improve clmvd singlenode locking for better testing.
+ Update and correct lvs man page with supported column names.
+ Handle replacement of an active device that goes missing with an error device.
+ Change change raid1 segtype always to request a flush when suspending.
+ Add udev info and context to lvmdump.
+ Add lvmetad man page.
+ Fix RAID device replacement code so that it works under snapshot.
+ Fix inability to split RAID1 image while specifying a particular PV.
+ Update man pages to give them all the same look&feel.
+ Fix lvresize of thin pool for striped devices.
+ For lvresize round upward when specifying number of extents.
+ For lvcreate with %FREE support rounding downward stripe alignment.
+ Change message severity to log_very_verbose for missing dev info in udev db.
+ Fix lvconvert when specifying removal of a RAID device other than last one.
+ Fix ability to handle failures in mirrored log in dmeventd plugin. (2.02.89)
+ Fix unlocking volume group in vgreduce in error path.
+ Cope when VG name is part of the supplied name in lvconvert --splitmirrors -n.
+ Fix exclusive lvchange running from other node. (2.02.89)
+ Add 'vgscan --cache' functionality for consistency with 'pvscan --cache'.
+ Keep exclusive activation in pvmove if LV is already active.
+ Disallow exclusive pvmove if some affected LVs are not exclusively activated.
+ Remove unused and wrongly set cluster VG flag from clvmd lock query command.
+ Fix pvmove for exclusively activated LV pvmove in clustered VG. (2.02.86)
+ Always free hash table on update_pvid_to_vgid() in lvmetad.
+ Update and fix monitoring of thin pool devices.
+ Check hash insert success in lock_vg in clvmd.
+ Check for buffer overwrite in get_cluster_type() in clvmd.
+ Fix global/detect_internal_vg_cache_corruption config check.
+ Update lcov Makefile target to support all dmeventd plugins.
+ Fix initializiation of thin monitoring. (2.02.92)
+ Cope with improperly formatted device numbers in /proc/devices. (2.02.91)
+ Exit if LISTEN_PID environment variable incorrect in lvmetad systemd handover.
+ Use pvscan --cache instead of vgscan in lvmetad scripts.
+ Fix fsadm propagation of -e option.
+ Fix fsadm parsing of /proc/mounts files (don't check for substrings).
+ Fix fsadm usage of arguments with space.
+ Fix arg_int_value alongside ARG_GROUPABLE --major/--minor for lvcreate/change.
+ Fix name conflicts that prevent down-converting RAID1 when specifying a device
+ Improve thin_check option passing and use configured path.
+ Add --with-thin-check configure option for path to thin_check.
+ Fix error message when pvmove LV activation fails with name already in use.
+ Better structure layout for device_info in dev_subsystem_name().
+ Change message severity for creation of VG over uninitialised devices.
+ Fix error path for failed toolcontext creation.
+ Detect lvm binary path in lvmetad udev rules.
+ Don't unlink socket on lvmetad shutdown if instantiated from systemd.
+ Restart lvmetad automatically from systemd if it exits from uncaught signal.
+ Fix warn msg for thin pool chunk size and update man for chunksize. (2.02.89)
+
+Version 2.02.95 - 6th March 2012
+================================
+ If unspecified, adjust thin pool metadata and chunk size to fit into 128MB.
+ Print just warning on thin pool check callback path for failing check.
+ Always use 64bit arithmetic with VG extent_size expression.
+ Validate udev structures in _insert_udev_dir().
+ Take repeatable --major --minor with pvscan --cache instead of major:minor.
+ Scan all devices for lvmetad if 'pvscan --cache' used without device list.
+ Populate lvmcache from lvmetad before displaying PVs in pvscan. (2.02.94)
+ Suppress incorrect -n pvscan warning now always displayed. (2.02.94)
+
+Version 2.02.94 - 3rd March 2012
+================================
+ Add support to execute thin_check with each de/active of thin pool.
+ Fix automatic estimation of metadata device size for thin pool.
+ Test for alloc fail from _alloc_pv_segment() in _extend_pv().
+ Check for alloc fail from get_segtype_from_string() in _lvcreate_params().
+ Add _rimage as reserved suffix to lvm.8 man page.
+ Improve error logging from mpath filter.
+ Check for allocation failure in hold_lock() in clvmd.
+ Use set_lv() (wipe initial 4KiB) for non zeroed thin volume.
+ Allow cluster mirrors to handle the absence of the checkpoint lib (libSaCkpt).
+ Revert free of allocated segtype in init segment error path (2.02.89).
+ Test dm_hash_insert() failures in filter-persistent.c and fid_add_mda().
+ Ensure clvmd message is always NUL-terminated after read.
+ Add some close() and dev_close() error path backtraces.
+ Set stdin/stdout/stderr to /dev/null for polldaemon.
+ Limit the max size of processed clvmd message to ~8KB.
+ Do not send uninitialised bytes in cluster error reply messages.
+ Use unsigned type for bitmask instead of enum type for lvm properties.
+ Add missing cleanup of excl_uuid hash on some exit paths of clvmd.
+ Check for existence of vg_name in _format1/_pool_vg_read().
+ Fix missing break in _format_pvsegs (2.02.92).
+ Test seg pointer for non-null it in raid_target_percent error path.
+ Check for errors in _init_tags() during config loading.
+ Always check result of _set_vg_name() in lvcreate.
+ Drop unused call to uname() during clvmd initialization.
+ Test allocation result in sysfs filter creation.
+ Limit sscanf parameters with buffer size in clvmd get_initial_state().
+ Use const lv pointer for lv_is_active...() functions.
+ Use same signed numbers in _mirrored_transient_status().
+ Support 'pvscan --cache' to update lvmetad state from specific PVs.
+ Provide new metadata daemon for testing with configure --enable-lvmetad .
+ Integrate client-side lvmetad into build.
+
+Version 2.02.93 - 23rd February 2012
+====================================
+ Require number of stripes to be greater than parity devices in higher RAID.
+ Fix allocation code to allow replacement of single RAID 4/5/6 device.
+ Check all tags and LV names are in a valid form in vg_validate.
+ Add tmpfiles.d style configuration for lvm2 lock and run directory.
+ Add configure --with-tmpfilesdir for dir holding volatile-file configuration.
+ Allow 'lvconvert --repair' to operate on RAID 4/5/6.
+ Fix build_parallel_areas_from_lv to account correctly for raid parity devices.
+ Print message when faulty raid devices have been replaced.
+
+Version 2.02.92 - 20th February 2012
+====================================
+ Read dmeventd monitoring config settings for every lvm command.
+ For thin devices, initialize monitoring only for thin pools not thin volumes.
+ Make conversion from a synced 'mirror' to 'raid1' not cause a full resync.
+ Properly test buffer for unit check in units_to_bytes().
+ Add configure --with-systemdsystemunitdir.
+ Add check for allocation failure in _build_matcher().
+ Add check for rimage name allocation failure in _raid_add_images().
+ Add check for mda_copy failure in _text_pv_setup().
+ Add check for _mirrored_init_target failure.
+ Add free_orphan_vg.
+ Skip pv/vg_set_fid processing if the fid is same.
+ Check for foreach loop errors in _vg_read_orphans() (2.02.91).
+ Clean error paths for format instance creation (2.02.91).
+ Release vg in error path of _format1_vg_read() instead of just free().
+ Report allocation failure for allocation of PV structure.
+ Add clvmd init dependency on dlm service when running with new corosync.
+
+Version 2.02.91 - 12th February 2012
+====================================
+ Remove PV-based format instances (which are no longer needed).
+ Link all orphan PVs directly to a per-format global orphan VG.
+ Refactor lvmcache around an internal API.
+ Stop processing lvextend if trying to extend a mirror that is being recovered.
+ Add pool_below_threshold() function to check thin pool percent status.
+ Fix test for snap percent for failing merge when removing LV.
+ Switch int to void return for str_list_del().
+ Fix error path handling in _build_desc().
+ Add range test for device number in _scan_proc_dev().
+ Use signed long for sysconf() call in cmirrord.
+ Do not write in front of log buffer in print_log().
+ Add boundary test for number of mirror devs and logs.
+ Check that whole locking_dir fits _lock_dir buffer in init_file_locking().
+ Use list functions for label_exit().
+ Ensure strncpy() function always ends with '\0'.
+ Set status in _fsadm_cmd() for error path.
+ Add missing deps for lvm2api for rebuild when lvm-internal is changed.
+ Fix resource leaks for failing allocation of formats (lvm1/2,pool).
+ Release allocated resources in error path for composite_filter_create().
+ Do not use lstat() results when failed in _rm_link().
+ Remove a "waiting for another thread" log message from dmeventd plugins.
+
+Version 2.02.90 - 1st February 2012
+===================================
+ sync_local_dev_names before (re)activating mirror log for initialisation.
+ Disable partial activation for thin LVs and LVs with all missing segments.
+ Do not print warning for pv_min_size between 512KB and 2MB.
+ Clean up systemd unit ordering and requirements.
+ Fix lcov reports when srcdir != builddir.
+ Allow ALLOC_NORMAL to track reserved extents for log and data on same PV.
+ Automatically detect whether corosync clvmd needs to use confdb or cmap.
+ Fix data% report for thin volume used as origin for non-thin snapshot.
+
+Version 2.02.89 - 26th January 2012
+===================================
+ Add missing check for uname result in clvmd TEST processing.
+ Fix memleak in target_version() error path (unsupported LIST_VERSIONS).
+ Limit data_alignment and data_alignment_offset to 32bit values.
+ Check for correctness of uint64 dev_size value in format_text.
+ Thin pools have segment fields thin_count, zero, transaction_id.
+ Add data_percent and metadata_percent for thin pools to lvs -v.
+ Add data_lv & metadata_lv fields to lvs for thin pools.
+ Add data_percent & pool_lv fields to lvs for thin volumes.
+ Rename origin_only parm to use_layer for lv_info and use with thin LVs.
+ Add lv_thin_pool_transaction_id to read the transaction_id value.
+ Use {suspend,resume}_origin_only when up-converting RAID, as mirrors do.
+ Always add RAID metadata LVs to deptree (even when origin_only is set).
+ Change exclusive LV activation logic to try local node before remote nodes.
+ Add CLVMD_FLAG_REMOTE to skip processing on local node.
+ Prompt if request is made to remove a snapshot whose "Merge failed".
+ Allow removal of an invalid snapshot that was to be merged on next activation.
+ Don't allow a user to merge an invalid snapshot.
+ Use m and M lv_attr to indicate that a snapshot merge failed in lvs.
+ Differentiate between snapshot status of "Invalid" and "Merge failed".
+ Report snapshot usage percent of origin volume when a snapshot is merging.
+ Require global/lvdisplay_shows_full_device_path for (bogus) lvm1-style paths.
+ Do not report linear segtype for non-striped targets.
+ Record creation host & time for each LV and report as lv_time & lv_host.
+ Make error message hit when preallocated memlock memory exceeded clearer.
+ Use R lv_attr to indicate read-only activation of non-read-only device in lvs.
+ Show read-only activation override in lvdisplay & add 4 to perms in -c.
+ Add activation/read_only_volume_list to override LV permission in metadata.
+ Give priority to emcpower devices with duplicate PVIDs.
+ Add check for error in _adjust_policy_params() (lvextend --use-policies).
+ Round specified percentages upwards (%LV, %VG...) when resizing LVs.
+ Use dmeventd_lvm2_command in dmeventd plugins snapshot, raid, mirror.
+ Add helper dmeventd_lvm2_command() to libdevmapper-event-lvm2 library.
+ Update documentation for dmeventd.
+ Remove unnecessary stat before opening device in dev_open_flags.
+ Reduce number of lstat calls when selecting device alias.
+ Add _dev_init to initialize common struct device members.
+ Always zalloc struct device during initialization.
+ Fix missing thread list manipulation protection in dmeventd.
+ Do not derefence lv pointer in _percent_run() function before NULL check.
+ Allow empty strings for description and creation_host config fields.
+ Issue deprecation warning when removing last lvm1-format snapshot.
+ Reinstate support for snapshot removal with lvm1 format. (2.02.86)
+ Add policy-based automated repair of RAID logical volumes.
+ Don't allow two images to be split and tracked from a RAID LV at one time.
+ Don't allow size change of RAID LV that is tracking changes for a split image.
+ Don't allow size change of RAID sub-LVs independently.
+ Don't allow name change of RAID LV that is tracking changes for a split image.
+ Do not allow users to change the name of RAID sub-LVs independently.
+ Do not allow users to change permissions on RAID sub-LVs.
+ Allow lvconvert to replace specified devices in a RAID array.
+ Add activation/use_linear_target enabled by default.
+ Use gcc warning options only with .c to .o compilation.
+ Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.
+ Replace the unit testing framework with CUnit (--enable-testing).
+ Fix dmeventd snapshot monitoring when multiple extensions were involved.
+ Don't ignore configure --mandir and --infodir.
+ Drop pool memory allocated within lv_has_target_type().
+ Reduce stack allocation of some PATH_MAX sized char buffers.
+ Unlock memory before writing metadata.
+ Add query before removing snapshots when inactive snapshot origin is removed.
+ Allow changing availability state of snapshots.
+ Skip non-virtual snapshots for availability change for lvchange with vg name.
+ Skip adjusting mirror region size unless mirror or raid.
+ Reorder prompt conditions for removal of active volumes.
+ Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag.(2.02.86)
+ Fix --enable-static_link unless using --enable-dmeventd / --enable-udev_sync.
+ Move gentoo MAKEDEV to /sbin in lvm2create_initrd.
+ Add filter to avoid scan of device if it is part of active multipath.
+ Add missing default $LVM_VG_NAME usage for snapshots.
+ Avoid extent_count overflow with lvextend.
+ Add missing lvrename mirrored log recursion in for_each_sub_lv.
+ Improve lv_extend stack reporting.
+ Increase virtual segment size instead of creating multiple segment list.
+ Add last_seg(lv) internal function.
+ Support empty string for log/prefix.
+ Disallow mirrored logs for cluster mirrors. (2.02.72)
+ Don't print char type[8] as a plain string in pvck PV type.
+ Use vg memory pool implicitly for vg read.
+ Always use vg memory pool for allocated lv segment.
+ Remove extra 4kB buffer allocated on stack in print_log().
+ Make move_lv_segment non-static function and use dm_list function.
+ Pass exclusive LV locks to all nodes in the cluster.
+ Improve lvcreate chunksize man page description.
+ Improve man page style for lvcreate & lvs.
+ Avoid recursive calls to dmeventd in its LVM plugins.
+ Log dev name now returned to kernel for registering during cmirror CTR.
+ Fix lv_info open_count test for disabled verify_udev_operations. (2.02.86)
+ Simplify code for lvm worker thread in clvmd.
+ Use pthread_barrier to synchronize clvmd threads at startup.
+ Limit clvmd's thread size to 128KiB and ignore activation/reserved_stack.
+ Reduce default preallocated stack size to 64KiB.
+ Add check for access through NULL pointer when refresh_filter() fails.
+ Use pthread condition for SINGLENODE lock implementation.
+ Improve backtrace reporting for some dev_manager_ functions.
+ Change message severity to log_warn when symlink creation fails.
+ Add ability to convert mirror segtype to RAID1 segtype.
+ Add ability to convert from linear to RAID1.
+ Add ability to extend mirrors with '--nosync' option.
+ Fix splitmirror LV names to maintain consistent state in a cluster.
+ Apply appropriate udev flags when suspending/resuming mirror sub-LVs.
+ Fix vgsplit to handle mirrored logs.
+ Clarify multi-name device filter pattern matching explanation in lvm.conf.
+ Introduce revert_lv for better pvmove cleanup.
+ Replace incomplete pvmove activation failure recovery code with a message.
+ Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely.
+ Change suspend_lvs to call vg_revert internally.
+ Change vg_revert to void and remove superfluous calls after failed vg_commit.
+ Use execvp for CLVMD restart to preserve environment settings.
+ Restart CLVMD with same cluster manager.
+ Fix log_error() usage in raid and unknown segtype initialisation.
+ Improve testing Makefile.
+ Fix install_ocf make target when srcdir != builddir. (2.02.80)
+ Support env vars LVM_CLVMD_BINARY and LVM_BINARY in clvmd.
+ Fix restart of clvmd (preserve exlusive locks). (2.02.64)
+ Add 'Volume Type' lv_attr characters for RAID and RAID_IMAGE.
+ Add activation/retry_deactivation to lvm.conf to retry deactivation of an LV.
+ Replace open_count check with holders/mounted_fs check on lvremove path.
+ Disallow the creation of mirrors (mirror or raid1 segtype) with only one leg.
+ Cleanup restart clvmd code (no memory allocation, debug print passed args).
+ Add all exclusive locks to clvmd restart option args.
+ Always send the whole clvmd packet header in refresh commands.
+ Add missing error checks for some system calls in cmirrord.
+ Add missing log_error() to lvresize command when fsadm tool fails.
+ Add support for DM_DEV_DIR device path into fsadm script.
+ Support different PATH setting for fsadm script testing.
+ Surround all executed commands with quotes in fsadm script.
+ Fix missing '$' in test for content of "$LVM" in fsadm script.
+ Move debug message in exec_cmd after sync_local_dev_names.
+ Fix clvmd processing of invalid request on local socket.
+ Fix command line option decoding.
+ Reset LV status when unlinking LV from VG.
+ Fix overly-strict extent-count divisibility requirements for striped mirrors.
+ Fix rounding direction in lvresize when reducing volume size.
+ Fix possible overflow of size if %FREE or %VG is used.
+ Fix vgchange activation of snapshot with virtual origin.
+ Activate virtual snapshot origin exclusively (only on local node in cluster).
+ Fix lv_mirror_count to handle mirrored stripes properly.
+ Fix failure to down-convert a mirror to linear due to udev "dev open" conflict
+ Fix mirrored log creation when PE size is small: use log_size >= region_size.
+ Fix log size calculation when only a log is being added to a mirror.
+ Add 7th lv_attr char to show the related kernel target.
+ Terminate pv_attr field correctly. (2.02.86)
+ Fix 'not not' typo in pvcreate man page.
+ Improve man page style for fsadm, lvreduce, lvremove, lvrename & lvresize.
+ Support break for vgchange and vgrefresh operation.
+ Switch int to unsigned type for pvmetadatacopies for pv_create().
+ Replace :space: with [\t ] for awk in vgimportclone (not widely supported).
+ Begin using 64-bit status field flags.
+ Detect sscanf recovering_region input error in cmirrord pull_state().
+ Fix error path bitmap leak in cmirrord import_checkpoint().
+ Log unlink() error in cmirrord remove_lockfile().
+ Remove incorrect requirement for -j or -m from lvchange error message.
+ Fix unsafe table load when splitting off smaller mirror from a larger one.
+ Use size_t return type for text_vg_export_raw() and export_vg_to_buffer().
+ Add configure --enable-lvmetad for building the (experimental) LVMetaD.
+ Fix resource leak when strdup fails in _get_device_status() (2.02.85).
+ Directly allocate buffer memory in a pvck scan instead of using a mempool.
+ Add configure --with-thin for segtypes "thin" and "thin_pool".
+ Fix raid shared lib segtype registration (2.02.87).
+
+Version 2.02.88 - 19th August 2011
+==================================
+ Remove incorrect 'Breaking' error message from allocation code. (2.02.87)
+ Add lvconvert --merge support for raid1 devices split with --trackchanges.
+ Support lvconvert of -m1 raid1 devices to a higher number.
+ Add --trackchanges support to lvconvert --splitmirrors option for raid1.
+ Support splitting off a single raid1 rimage in lvconvert --splitmirrors.
+ Use sync_local_dev_names when reducing number of raid rimages in lvconvert.
+ Add -V as short form of --virtualsize in lvcreate.
+ Fix make clean not to remove Makefile. (2.02.87)
+
+Version 2.02.87 - 12th August 2011
+==================================
+ Fix make distclean to remove stray dmeventd and exported symbols files.
+ Add global/detect_internal_vg_cache_corruption to lvm.conf.
+ Use memory pool locking to check for corruption of internal VG structs.
+ Cache and share generated VG structs.
+ Fix possible format instance memory leaks and premature releases in _vg_read.
+ Suppress locking error messages in monitoring init scripts.
+ If pipe in clvmd fails return busy instead of using uninitialised descriptors.
+ Add ability to reduce the number of mirrors in raid1 arrays to lvconvert.
+ Add dmeventd plugin for raid.
+ Replace free_vg with release_vg and move it to vg.c.
+ Remove INCONSISTENT_VG flag from the code.
+ Remove lock from cache in _lock_vol even if unlock fails.
+ Initialise clvmd locks before lvm context to avoid open descriptor leaks.
+ Remove obsolete gulm clvmd cluster locking support.
+ Suppress low-level locking errors and warnings while using --sysinit.
+ Remove unused inconsistent_seqno variable in _vg_read().
+ Remove meaningless const type qualifiers on cast type.
+ Add test for fcntl error in singlenode client code.
+ Remove --force option from lvrename manpage.
+ Add global/mirror_segtype_default to pick md raid or dm mirror as default.
+ Add configure --with-raid for new segtype 'raid' for MD RAID 1/4/5/6 support.
+ Change DEFAULT_UDEV_SYNC to 1 so udev_sync is used if there is no config file.
+ Add systemd unit file to provide lvm2 monitoring.
+ Compare file size (as well as timestamp) to detect changed config file.
+
+Version 2.02.86 - 8th July 2011
+===============================
+ Remove unnecessary warning in pvcreate for MD linear devices.
+ Move snapshot removal activation logic into lib/activate.
+ Cope with a PV only discovered missing when creating deptree.
+ Abort operation if dm_tree_node_add_target_area fails.
+ Add activation/checks to lvm.conf to perform additional ioctl validation.
+ Always preload on suspend, even if no metadata changed (lvchange --refresh).
+ When suspending, automatically preload newly-visible existing LVs.
+ Teardown any stray devices with $COMMON_PREFIX during test runs.
+ Reinstate correct permissions when creating mirrors. [2.02.85]
+ Append 'm' attribute to pv_attr for missing PVs.
+ Annotate CLVMD_CMD_SYNC_NAMES in decode_cmd.
+ Remove enforcement of udev verification when using non-standard /dev location.
+ Keep an exclusive mirror non-clustered if reloaded e.g. during conversion.
+ Reject allocation if number of extents is not divisible by area count.
+ Fix cluster mirror creation to work with new mirror allocation algorithm.
+ Ignore activation/verify_udev_operations if dm kernel driver vsn < 4.18.
+ Add activation/verify_udev_operations to lvm.conf, disabled by default.
+ Call vg_mark_partial_lvs() before VG structure is returned from the cache.
+ Remove unused internal flag ACTIVATE_EXCL from the code.
+ Remove useless test of ACTIVATE_EXCL in lv_add_mirrors() clustered code path.
+ Add lv_activate_opts structure for activation (replacing activation flags).
+ Ignore inconsistent pre-commit metadata on MISSING_PV devs while activating.
+ Add proper udev library context initialization and finalization to liblvm.
+ Fix last snapshot removal to avoid table reload while a device is suspended.
+ Use dm_get_suspended_counter in replacement critical_section logic.
+ Downgrade critical_section errors to debug level until it is moved to libdm.
+ Fix ignored background polling default in vgchange -ay.
+ Fix pvmove activation sequences to avoid trapped I/O with multiple LVs.
+ Annotate critical section debug messages.
+ Fix reduction of mirrors with striped segments to always align to stripe size.
+ Validate mirror segments size.
+ Include lvmetad development code in tree.
+ Fix extent rounding for striped volumes never to reduce more than requested.
+ Fix create_temp_name to replace any '/' found in the hostname with '?'.
+ Always use append to file in lvmdump. selinux policy may ban file truncation.
+ Propagate test mode to clvmd to skip activation and changes to held locks.
+ Defer writing PV labels until vg_write.
+ Store label_sector only in struct physical_volume.
+ Permit --available with lvcreate so non-snapshot LVs need not be activated.
+ Report sector containing label in verbose message.
+ Clarify error message when unable to convert an LV into a snapshot of an LV.
+ Add and use dev_open_readonly and variations.
+ Do not log a superfluous stack message when the lv is properly processed.
+ Do not issue an error message when unable to remove .cache on read-only fs.
+ Avoid memlock size mismatch by preallocating stdio line buffers.
+ Rewrite vgreduce --removemissing --force to share lvconvert code.
+ Reorganize lvconvert --repair code to allow reuse.
+
+Version 2.02.85 - 29th April 2011
+=================================
+ Add new obtain_device_list_from_udev setting to lvm.conf.
+ Obtain device list from udev by default if LVM2 is compiled with udev support.
+ Add test for vgimportclone and querying of vgnames with duplicate pvs.
+ Avoid use of released memory when duplicate PV is found.
+ Add "devices/issue_discards" to lvm.conf.
+ Issue discards on lvremove and lvreduce etc. if enabled and supported.
+ Add seg_pe_ranges and devices fields to liblvm.
+ Fix incorrect tests for dm_snprintf() failure.
+ Fix some unmatching sign comparation gcc warnings in the code.
+ Support lv_extend() on empty LVs.
+ Avoid regenerating cache content when exported VG buffer is unchanged.
+ Extend the set of memory regions that are not locked to memory.
+ Workaround some problems when compiled for valgrind memcheck.
+ Support controlled quit of the lvm_thread_fn function in clvmd.
+ Fix reading of unallocated memory in lvm1 format import function.
+ Replace several strncmp() calls with id_equal().
+ Fix lvmcache_info transfer to orphan_vginfo in _lvmcache_update_vgname().
+ Fix -Wold-style-definition gcc warnings.
+ Rename MIRROR_NOTSYNCED to LV_NOTSYNCED.
+ Fix _move_lv_segments to handle empty LVs.
+ Fixes for lvconvert (including --repair) of temporary mirror stacks.
+ Avoid potential loop when removing mirror images.
+ Fix mirror removal always to take account of preferences as to which.
+ Fix MIRRORED flag usage.
+ Remove error messages issued by device_is_usable when run as non-root.
+ Add missing \0 for grown debug object in _bitset_with_random_bits().
+ Fix allocation of system_id buffer in volume_group structure.
+ Fix readlink usage inside get_primary_dev().
+ Use format instance mempool where possible and adequate.
+ Call destroy_instance for any PVs found in VG structure during vg_free call.
+ Add new free_pv_fid fn and use it throughout to free all attached fids.
+ Use only vg_set_fid and new pv_set_fid fn to assign the format instance.
+ Make create_text_context fn static and move it inside create_instance fn.
+ Add mem and ref_count fields to struct format_instance for own mempool use.
+ Use new alloc_fid fn for common format instance initialisation.
+ Optimise _get_token() and _eat_space().
+ Add _lv_postorder_vg() to improve efficiency for all LVs in VG.
+ Add gdbinit script for debugging.
+ Use hash tables to speedup string search in vg_validate().
+ Refactor allocation of VG structure adding alloc_vg().
+ Avoid possible endless loop in _free_vginfo when 4 or more VGs have same name.
+ Use empty string instead of /dev// for LV path when there's no VG.
+ Don't allocate unused VG mempool in _pvsegs_sub_single.
+ Do not send uninitialised bytes in local clvmd messages.
+ Support --help option for clvmd and return error for unknown option.
+ Avoid reading freed memory when printing LV segment type.
+ Fix syslog initialisation in clvmd to respect lvm.conf setting.
+ Fix possible overflow in maximum stripe size and physical extent size.
+ Improve pvremove error message when PV belongs to a VG.
+ Extend normal policy to allow mirror logs on same PVs as images if necessary.
+ Improve cling policy to recognise PVs already used during the transaction.
+ Improve normal allocation algorithm to include clinging to existing areas.
+ Add allocation/maximise_cling & mirror_logs_require_separate_pvs to lvm.conf.
+ Adapt metadata balancing code to work with metadata handling changes.
+ Add old_id field to physical_volume and fix pvchange -u for recent changes.
+ Allow pvresize on a PV with two metadata areas.
+ Change pvcreate to use new metadata handling interface.
+ Restructure existing pv_setup and pv_write and add pv_initialise.
+ Add internal interface to support adding and removing metadata areas.
+ Allow internal indexing of metadata areas (PV id + mda order).
+ Generalise internal format_instance infrastrusture for PV and VG use.
+ Handle decimal digits with --units instead of ignoring them silently.
+ Fix remaining warnings and compile with -Wpointer-arith.
+ Fix gcc warnings for unused variables and const casts.
+ Add stack backtraces for error paths in process_each_lv().
+ Temporarily suppress error from calling yes_no_prompt while locks are held.
+ Replace void* with char* arithmetic in _text_write, _text_read & send_message.
+ Fix compilation without DEVMAPPER_SUPPORT.
+ Remove fs_unlock() from lv_suspend error path.
+ Allow memory to stay locked between leaving and re-entering critical sections.
+ Rename memlock to critical_section throughout.
+ Make pv_min_size configurable and increase to 2048KB to exclude floppy drives.
+ Add find_config_tree_int64 to read 64-bit ints from config.
+ Ensure resuming exclusive cluster mirror continues to use local mirror target.
+ Clear temporary postorder LV status flags to allow re-use with same LV struct.
+ Remove invalid snapshot umount mesg which floods syslog from dmeventd plugin.
+ Add extended examples to pvmove man page.
+ Support LVM_TEST_DEVDIR env var for private /dev during testing.
+
+Version 2.02.84 - 9th February 2011
+===================================
+ Fix CRC32 calculation on big endian CPU (2.02.75).
+
+Version 2.02.83 - 4th February 2011
+===================================
+ Allow exclusive activation of snapshots in a cluster.
+ Leave EX lock unchanged when suspending a device in clvmd.
+ Use sync_dev_names in unlock_vg macro for cluster-wide dev name sync.
+ Fix fs operation stack handling when multiple operations on same device.
+ Increase hash table size to 1024 lv names and 64 pv uuids.
+ Remove fs_unlock() from lv_resume path.
+ Fix wipe size when setting up mda.
+ Remove unneeded checks for open_count in lv_info().
+ Synchronize with udev before checking open_count in lv_info().
+ Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested.
+ Add "dmsetup ls --tree" output to lvmdump.
+ Fix udev synchronization with no-locking --sysinit (2.02.80).
+ Improve man page style consistency for pvcreate, pvremove, pvresize, pvscan.
+ Avoid rebuilding of uuid validation table.
+ Improve lvcreate error text from insufficient "extents" to "free space".
+ Always use O_DIRECT when opening block devices to check for partitioning.
+
+Version 2.02.82 - 24th January 2011
+===================================
+ Bring lvscan man page up-to-date.
+ Fix lvchange --test to exit cleanly.
+ Add change_tag to toollib.
+ Allow multiple pvchange command line options to be specified together.
+ Do not fail pvmove polling if another process cleaned up first.
+ Avoid clvmd incrementing dlm lockspace reference count more than once.
+ Add -f (don't fork) option to clvmd and fix clvmd -d<num> description.
+
+Version 2.02.81 - 17th January 2011
+===================================
+ Do not scan devices in dev_reset_error_count().
+ Skip unnecessary LOCK_NULL unlock call during volume deactivation.
+ Skip fs_unlock when calling exec_cmd within activation code (for modprobe).
+ Extend exec_cmd params to specify when device sync (fs_unlock) is needed.
+ Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80)
+ Introduce sync_local_dev_names and CLVMD_CMD_SYNC_NAMES to issue fs_unlock.
+ Accept fusion fio in device type filter.
+ Add ability to convert mirror log type from disk to mirrored.
+
+Version 2.02.80 - 10th January 2011
+===================================
+ Use same dm cookie for consecutive dm ops in same VG to reduce udev waits.
+ Speed up command processing by caching resolved config tree.
+ Pass config_tree to renamed function import_vg_from_config_tree().
+ Detect NULL handle in get_property().
+ Fix superfluous /usr in ocf_scriptdir instalation path.
+ Add --with-ocfdir configurable option.
+ Add aclocal.m4 (for pkgconfig).
+ Fix memory leak in persistent filter creation error path.
+ Check for errors setting up dm_task struct in _setup_task().
+ Fail polldaemon creation when lvmcache_init() fails.
+ Return PERCENT_INVALID for errors in _copy_percent() and _snap_percent().
+ Remove some unused variables.
+ Improve general lvconvert man page description.
+ Return 0 from cmirrord initscript 'start' if daemon is already running.
+ Fix wrongly paired unlocking of VG_GLOBAL in pvchange. (2.02.66)
+ Add backtraces for backup and backup_remove fail paths.
+ Detect errors from dm_task_set calls in _get_device_info (dmeventd).
+ Add backtraces for archive and backup_locally in check_current_backup().
+ Fix memory leak in debug mode of restart_clvmd() error path.
+ Log error message for pthread_join() failure in clvmd.
+
Version 2.02.79 - 20th December 2010
====================================
Remove some unused variables.
Add missing test for reallocation error in _find_parallel_space().
- Add checks for allocation errors in config node clonning.
+ Add checks for allocation errors in config node cloning.
Fix error path if regex engine cannot be created in _build_matcher().
Use char* arithmetic in target_version(), _process_all() & _targets().
Fixing const cast gcc warnings in the code.
@@ -198,7 +893,7 @@ Version 2.02.73 - 18th August 2010
Fix const warning in dev_manager_info() and _dev_manager_lv_rmnodes().
Fix const warning in archive_file structure from archive.c.
Clean generated files .exported_symbols_generated, example.conf for distclean.
- Handle failure of all mirrored log devices and all but one mirror leg.
+ Handle failure of all mirrored log devices and all but one mirror leg.
Disallow 'mirrored' log type for cluster mirrors.
Do not use VPATH in include/Makefile.
Fix exported_symbols generation to use standard compiler arguments.