diff options
Diffstat (limited to 'WHATS_NEW')
-rw-r--r-- | WHATS_NEW | 699 |
1 files changed, 697 insertions, 2 deletions
@@ -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. |