| Version 2.02.132 - |
| ====================================== |
| Fix PV label processing failure after pvcreate in lvm shell with lvmetad. |
| |
| Version 2.02.131 - 15th September 2015 |
| ====================================== |
| Rename 'make install_full_man' to install_all_man and add all_man target. |
| Fix vgimportclone cache_dir path name (2.02.115). |
| Swapping of LV identifiers handles more complex LVs. |
| Use passed list of PVS when allocating space in lvconvert --thinpool. |
| Disallow usage of --stripe and --stripesize when creating cache pool. |
| Warn user when caching raid or thin pool data LV. |
| When layering LV, move LV flags with segments. |
| Ignore persistent cache if configuration changed. (2.02.127) |
| Fix devices/filter to be applied before disk-accessing filters. (2.02.112) |
| Make tags only when requested via 'make tags'. |
| Configure supports --disable-dependency-tracking for one-time builds. |
| Fix usage of configure.h when building in srcdir != builddir. |
| |
| Version 2.02.130 - 5th September 2015 |
| ===================================== |
| Fix use of uninitialized device status if reading outdated .cache record. |
| Restore support for --monitor option in lvcreate (2.02.112). |
| Read thin-pool data and metadata percent without flush. |
| Detect blocked thin-pool and avoid scanning their thin volumes. |
| Check if dm device is usable before checking its size (2.02.116). |
| Extend parsing of cache_check version in configure. |
| Make lvpoll error messages visible in lvmpolld's stderr and in syslog. |
| Add 'make install_full_man' to install all man pages regardless of config. |
| |
| Version 2.02.129 - 26th August 2015 |
| =================================== |
| Drop error message when vgdisplay encounters an exported VG. (2.02.27) |
| Fix shared library generation to stop exporting internal functions.(2.02.120) |
| Accept --cachemode with lvconvert. |
| Fix and improve reporting properties of cache-pool. |
| Enable usage of --cachepolicy and --cachesetting with lvconvert. |
| Don't allow to reduce size of thin-pool metadata. |
| Fix debug buffer overflows in cmirrord logging. |
| Add --foreground and --help to cmirrord. |
| |
| Version 2.02.128 - 17th August 2015 |
| =================================== |
| Allocation setting cache_pool_cachemode is replaced by cache_mode. |
| Don't attempt to close config file that couldn't be opened. |
| Check for valid cache mode in validation of cache segment. |
| Change internal interface handling cache mode and policy. |
| When no cache policy specified, prefer smq (if available) over mq. |
| Add demo cache-mq and cache-smq profiles. |
| Add cmd profilable allocation/cache_policy,cache_settings,cache_mode. |
| Require cache_check 0.5.4 for use of --clear-needs-check-flag. |
| Fix lvmetad udev rules to not override SYSTEMD_WANTS, add the service instead. |
| |
| Version 2.02.127 - 10th August 2015 |
| =================================== |
| Do not init filters, locking, lvmetad, lvmpolld if command doesn't use it. |
| Order fields in struct cmd_context more logically. |
| Add lock_type to lvmcache VG summary and info structs. |
| Fix regression in cache causing some PVs to bypass filters (2.02.105). |
| Make configure --enable-realtime the default now. |
| Update .gitignore and configure.in files to reflect usage of current tree. |
| |
| Version 2.02.126 - 24th July 2015 |
| ================================= |
| Fix long option hyphen removal. (2.02.122) |
| Fix clvmd freeze if client disappears without first releasing its locks. |
| Fix lvconvert segfaults while performing snapshots merge. |
| Ignore errors during detection if use_blkid_wiping=1 and --force is used. |
| Recognise DM_ABORT_ON_INTERNAL_ERRORS env var override in lvm logging fn. |
| Fix alloc segfault when extending LV with fewer stripes than in first seg. |
| Fix handling of cache policy name. |
| Set cache policy before with the first lvm2 cache pool metadata commit. |
| Fix detection of thin-pool overprovisioning (2.02.124). |
| Fix lvmpolld segfaults on 32 bit architectures. |
| Add lvmlockd lock_args validation to vg_validate. |
| Fix ignored --startstopservices option if running lvmconf with systemd. |
| Hide sanlock LVs when processing LVs in VG unless named or --all used. |
| |
| Version 2.02.125 - 7th July 2015 |
| ================================ |
| Fix getline memory usage in lvmpolld. |
| Add support --clear-needs-check-flag for cache_check of cache pool metadata. |
| Add lvmetactl for developer use only. |
| Rename global/lock_retries to lvmlockd_retries. |
| Replace --enable-lvmlockd by --enable-lockd-sanlock and --enable-lockd-dlm. |
| |
| Version 2.02.124 - 3rd July 2015 |
| ================================ |
| Move sending thin pool messages from resume to suspend phase. |
| Report warning when pool is overprovisioned and not auto resized. |
| Recognize free-form date/time values for lv_time field in selection criteria. |
| Added experimental lvmlockd with configure --enable-lvmlockd. |
| Fix regression in select to match string fields if using synonyms (2.02.123). |
| Fix regression when printing more lv names via display_lvname (2.02.122). |
| Add missing error logging to unlock_vg and sync_local_dev_names callers. |
| |
| Version 2.02.123 - 30th June 2015 |
| ================================= |
| Add report/time_format lvm.conf option to define time format for report. |
| Fix makefile shell compare == when building lvmetad lvmpolld (2.02.120). |
| Add --type full to lvmconfig for full configuration tree view. |
| Add undocumented environment variables to lvm man page. (2.02.119) |
| Add device synchronization point before activating a new snapshot. |
| Add --withspaces to lvmconfig to add spaces in output for better readability. |
| Add custom main function to libdaemon. |
| Use lvmetad to track out-of-date metadata discovered. |
| |
| Version 2.02.122 - 20th June 2015 |
| ================================= |
| Flush stdout before printing to stderr. |
| Use pre-allocated buffer for printed LV names in display_lvname. |
| Support thins with size of external origin unaligned with thin pool chunk. |
| Allow extension of reduced thin volumes with external origins. |
| Consider snapshot and origin LV as unusable if component devices suspended. |
| Fix lvmconfig segfault on settings with undefined default value (2.02.120). |
| Add explicit 's' (shared) LV activation mode. |
| Ignore hyphens in long options names (i.e. --long-option == --longoption). |
| |
| Version 2.02.121 - 12th June 2015 |
| ================================= |
| Distinguish between on-disk and lvmetad versions of text metadata. |
| Remove DL_LIBS from Makefiles for daemons that don't need them. |
| Zero errno in before strtoul call in dmsetup if tested after the call. |
| Zero errno in before strtoul call in lvmpolld. |
| Fix a segfault in pvscan --cache --background command. |
| Fix test for AREA_PV when checking for failed mirrors. |
| Do not use --sysinit in lvm2-activation{-early,-net}.service if lvmpolld used. |
| Maintain outdated PV info in lvmetad till all old metadata is gone from disk. |
| Do not fail polling when poll LV not found (already finished or removed). |
| Replace poll_get_copy_vg/lv fns with vg_read() and find_lv() in polldaemon. |
| Close all device fds only in before sleep call in polldaemon. |
| Simplify Makefile targets that generate exported symbols. |
| Move various -D settings from Makefiles to configure.h. |
| |
| Version 2.02.120 - 15th May 2015 |
| ================================ |
| Make various adjustments to Makefile compilation flags. |
| Add lvmpolld debug message class. |
| Add lvmpolld client mode for querying running server instance for status info. |
| Fix some libdaemon socket creation and reuse error paths. |
| Daemons (libdaemon) support exit on idle also in non-systemd environment. |
| Provide make dist and make rpm targets |
| Configure lvm.conf for use_lvmetad and use_lvmpolld. |
| Add lvpoll for cmdline communication with lvmpolld. |
| Add lvmpolld acting as a free-standing version of polldaemon. |
| Avoid repeated identical lvmetad VG lookups in commands processing all VGs. |
| Handle switches to alternative duplicate PVs efficiently with lvmetad. |
| Properly validate PV size for pvcreate --restorefile. |
| Fix check if pvcreate wiped device (2.02.117). |
| Fix storing of vgid when caching metadata (2.02.118). |
| Fix recursive lvm-config man page. (2.02.119) |
| Refactor polldaemon interfaces to poll every operation by VG/LV couple |
| Skip wait after testing in _wait_for_single_lv when polling finished |
| Return 'None' in python for empty string properties instead of crashing. |
| Distinguish signed numerical property type in reports for lvm2app library. |
| Reread raid completion status immediately when progress appears to be zero. |
| lvm2app closes locking on lvm_quit(). |
| Configure detects /run or /var/run. |
| Add missing newline in clvmd --help output. |
| |
| Version 2.02.119 - 2nd May 2015 |
| =============================== |
| New LVM_LOG_FILE_EPOCH, LVM_EXPECTED_EXIT_STATUS env vars. Man page to follow. |
| Remove detailed content from lvm.conf man page: use lvmconfig instead. |
| Generate complete config files with lvmconfig or 'make generate'. |
| Also display info on deprecated config with lvmconfig --withcomments. |
| Display version since which config is deprecated in lvmconfig --withversions. |
| Add --showdeprecated to lvmconfig to also display deprecated settings. |
| Hide deprecated settings in lvmconfig output for all types but current,diff. |
| Introduce support for exit on idle feature in libdaemon |
| Add --showunsupported to lvmconfig to also display unsupported settings. |
| Display unsupported settings for lvmconfig --type current,diff only by default |
| Honour lvmconfig --ignoreunsupported and --ignoreadvanced for all --type. |
| Make python bindings usable with python3 (and compatible with 2.6 & 2.7). |
| Add lvmconfig -l|--list as shortcut for lvmconfig --type list --withsummary. |
| Add lvmconfig --type list to display plain list of configuration settings. |
| Introduce lvmconfig as the preferred form of 'lvm dumpconfig'. |
| Add lv_ancestors and lv_descendants reporting fields. |
| Add --ignorelocal option to dumpconfig to ignore the local section. |
| Close connection to lvmetad after fork. |
| Make lvchange able to resume background pvmove polling again. |
| Split pvmove update metadata fn in an initial one and a subsequent one. |
| Refactor shared pvmove and lvconvert code into new _poll files. |
| Add --unconfigured option to dumpconfig to print strings unconfigured. |
| Add --withsummary option to dumpconfig to print first line - summary comment. |
| Use number of device holders to help choose between duplicate PVs. |
| Try to make lvmetad and non-lvmetad duplicate PV handling as similar as poss. |
| Issue warnings about duplicate PVs discovered by lvmetad. |
| Track alternative devices with matching PVIDs in lvmetad. |
| Check for lvm binary in blkdeactivate and skip LVM processing if not present. |
| Add --enable-halvm and --disable-halvm options to lvmconf script. |
| Add --services, --mirrorservice and --startstopservices option to lvmconf. |
| Use proper default value of global/use_lvmetad when processing lvmconf script. |
| Respect allocation/cling_tag_list during intial contiguous allocation. |
| Add A_PARTITION_BY_TAGS set when allocated areas should not share tags. |
| Make changes persist with python addTag/removeTag. |
| Set correct vgid when updating cache when writing PV metadata. |
| More efficient clvmd singlenode locking emulation. |
| Reject lvcreate -m with raid4/5/6 to avoid unexpected layout. |
| Don't skip invalidation of cached orphans if vg write lck is held (2.02.118). |
| Log relevant PV tags when using cling allocation. |
| Add str_list_add_list() to combine two lists. |
| Fix LV processing with selection to always do the selection on initial state. |
| Add internal LV_REMOVED LV status flag. |
| |
| Version 2.02.118 - 23rd March 2015 |
| ================================== |
| Store metadata size + checksum in lvmcache and add struct lvmcache_vgsummary. |
| Remove inaccessible clustered PVs from 'pvs -a'. |
| Don't invalidate cached orphan information while global lock is held. |
| Avoid rescan of all devices when requested pvscan for removed device. |
| Measure configuration timestamps with nanoseconds when available. |
| Disable lvchange of major and minor of pool LVs. |
| Fix pvscan --cache to not scan and read ignored metadata areas on PVs. |
| Add After=iscsi-shutdown.service to blk-availability.service systemd unit. |
| Disallow vgconvert from changing metadata format when lvmetad is used. |
| Don't do a full read of VG when creating a new VG with an existing name. |
| Reduce amount of VG metadata parsing when looking for vgname on a PV. |
| Avoid reparsing same metadata when reading same metadata from multiple PVs. |
| Save extra device open/close when scanning device for size. |
| Fix seg_monitor field to report status also for mirrors and thick snapshots. |
| Replace LVM_WRITE with LVM_WRITE_LOCKED flags in metadata if system ID is set. |
| Remove ACCESS_NEEDS_SYSTEM_ID VG status flag. (2.02.117) |
| Enable system ID features. |
| |
| Version 2.02.117 - 4th March 2015 |
| ================================= |
| Add CFG_DISABLED for new system ID config settings that must not yet be used. |
| Preserve original format type field when processing backup files. |
| Implement status action for lvm2-monitor initscript to display monitored LVs. |
| Allow lvchange -p to change kernel state only if metadata state differs. |
| Fix incorrect persistent .cache after report with label fields only (2.02.106). |
| Reinstate PV tag recognition for pvs if reporting label fields only (2.02.105). |
| Rescan devices before vgimport with lvmetad so exported VG is seen. |
| Fix hang by adjusting cluster mirror regionsize, avoiding CPG msg limit. |
| Do not crash when --cachepolicy is given without --cachesettings. |
| Add NEEDS_FOREIGN_VGS flag to vgimport so --foreign is always supplied. |
| Add --foreign to the 6 display and reporting tools and vgcfgbackup. |
| Install /etc/lvm/lvmlocal.conf template with local section for systemid. |
| Record creation_host_system_id in lvm2 metadata (never set yet). |
| Reinstate recursive config file tag section processing. (2.02.99) |
| Add 'lvm systemid' to display the current system ID (never set yet). |
| Fix configure to properly recognize --with-default-raid10-segtype option. |
| Do not refresh filters/rescan if no signature is wiped during pvcreate. |
| Enforce none external dev info for wiping during pvcreate to avoid races. |
| Add global/system_id_source and system_id_file to lvm.conf (disabled). |
| Add support for VG system_id to control host access to VGs. |
| Update vgextend to use process_each_vg. |
| Add --ignoreskippedcluster to pvchange. |
| Allow pvchange to modify several properties at once. |
| Update pvchange to use process_each_pv. |
| Fix pvs -a used with lvmetad to filter out devices unsuitable for PVs. |
| Fix selection to recognize units for ba_start, vg_free and seg_start fields. |
| Add support for -S/--select to vgexport and vgimport. |
| Add support for -S/--select to vgdisplay, lvdisplay and pvdisplay without -C. |
| Add support for -S/--select to vgremove and lvremove. |
| Add support for -S/--select to vgchange,lvchange and pvchange. |
| Add infrastructure to support selection for non-reporting tools. |
| Add LVM_COMMAND_PROFILE env var to set default command profile name to use. |
| Set CLOEXEC flag on file descriptors originating in libdaemon. |
| |
| Version 2.02.116 - 30th January 2015 |
| ==================================== |
| Deactivate unused thin pools activated with lvm2 pre-2.02.112 versions. |
| Check lock holding LV when lvconverting stacked raid LV in cluster. |
| Support udev external dev info for filters: PV min size, mpath, md, partition. |
| Add fw_raid_component_detection lvm.conf option to enable FW raid detection. |
| Add devices/external_device_info_source lvm.conf option ("none" by default). |
| Scan pools in for_each_sub_lv() and add for_each_sub_lv_except_pools(). |
| Fix lvm2app lvm_lv_get_property return value for fields with info/status ioctl. |
| Fix lvm2app regression in lvm_lv_get_attr causing unknown values (2.02.115). |
| Set default cache_mode to writehrough when missing in metadata. |
| Preserve chunk size with repair and metadata swap of a thin pool. |
| Fix raid --splitmirror 1 functionality (2.02.112). |
| Fix tree preload to handle splitting raid images. |
| Do not support unpartitioned DASD devices. |
| Improve config validation to check if setting with string value can be empty. |
| |
| Version 2.02.115 - 21st January 2015 |
| ==================================== |
| Report segment types without monitoring support as undefined. |
| Support lvchange --errorwhenfull for thin pools. |
| Improve the processing and reporting of duplicate PVs. |
| Report lv_health_status and health attribute also for thin pool. |
| Add lv_when_full reporting field. |
| Add support for lvcreate --errorwhenfull y|n for thin pools. |
| Fix lvconvert --repair to honour resilience requirement for segmented RAID LV. |
| Filter out partitioned device-mapper devices as unsuitable for use as PVs. |
| Also notify lvmetad about filtered device if using pvscan --cache DevicePath. |
| Use LVM's own selection instead of awk expressions in clvmd startup scripts. |
| Do not filter out snapshot origin LVs as unusable devices for an LVM stack. |
| Fix incorrect rimage names when converting from mirror to raid1 LV (2.02.112). |
| Introduce pvremove_many to avoid excessive metadata re-reading and messages. |
| Check for cmirror availability during cluster mirror creation and activation. |
| Add cache_policy and cache_settings reporting fields. |
| Add missing recognition for --binary option with {pv,vg,lv}display -C. |
| Fix vgimportclone to notify lvmetad about changes done if lvmetad is used. |
| Fix vgimportclone to properly override config if it is missing in lvm.conf. |
| Fix automatic use of configure --enable-udev-systemd-background-jobs. |
| Correctly rename active split LV with -splitmirrors for raid1. |
| Add report/compact_output to lvm.conf to enable/disable compact report output. |
| Still restrict mirror region size to power of 2 when VG extent size is not. |
| |
| Version 2.02.114 - 28th November 2014 |
| ===================================== |
| Release socket in daemon_close and protocol string in daemon_open error path. |
| Add --cachepolicy and --cachesettings to lvcreate. |
| Fix regression when parsing /dev/mapper dir (2.02.112). |
| Fix missing rounding to 64KB when estimating optimal thin pool chunk size. |
| Fix typo in clvmd initscript causing CLVMD_STOP_TIMEOUT var to be ignored. |
| Fix size in pvresize "Resizing to ..." verbose msg to show proper result size. |
| |
| Version 2.02.113 - 24th November 2014 |
| ===================================== |
| Add --cachepolicy and --cachesettings options to lvchange. |
| Validate that converted volume and specified pool volume differ in lvconvert. |
| Fix regression in vgscan --mknodes usage (2.02.112). |
| Respect --prefix when setting CLMVD_PATH configure (2.02.89). |
| Default to configure --enable-udev-systemd-background-jobs for systemd>=205. |
| Fix ignore_vg() to properly react on various vg_read errors (2.02.112). |
| Failed recovery returns FAILED_RECOVERY status flag for vg_read(). |
| Exit with non-zero status code when pvck encounters a problem. |
| Fix clean_tree after activation/resume for cache target (2.02.112). |
| |
| Version 2.02.112 - 11th November 2014 |
| ===================================== |
| Add cache_{read,write}_{hits,misses} reporting fields. |
| Add cache_{total,used,dirty}_blocks reporting fields. |
| Add _corig as reserved suffix. |
| Reduce number of VG writes and commits when creating spare volumes. |
| When remove_layer_from_lv() removes layer, restore subLV names. |
| Cache-pool in use becomes invisible LV. |
| Don't prompt for removal of _pmspare in VG without pool metadata LV. |
| Deactivation of snapshot origin detects and deactivates left-over snapshots. |
| Properly report error when taking snapshot of any cache type LV. |
| Add basic thread debugging messages to dmeventd. |
| Include threads being shutdown in dmeventd device registration responses. |
| Inital support for external users of thin pools based on transaction_id. |
| Report some basic percentage info for cache pools. |
| Introduce size_mb_arg_with_percent() for advanced size arg reading. |
| Add extra support for '.' as decimal point in size args. |
| Add configure parameters for default segment type choices. |
| Add global/sparse_segtype_default setting to use thin for --type sparse. |
| Update and correct lvcreate and lvcovert man pages. |
| Mark pools and snapshots as unzeroable volumes. |
| Check for zeroing of volume after segment type is fully detected. |
| Better support for persistent major and minor options with lvcreate. |
| Refactor lvcreate towards more complete validation of all supported options. |
| Support lvcreate --type linear. |
| Improve _should_wipe_lv() to warn with message. |
| Inform about temporarily created volumes only in verbose mode. |
| Better support for --test mode with pool creation. |
| Query lock holding LV when replacing and converting raid volumes. |
| Add extra validate for locked lv within validate_lv_cache_create(). |
| Add internal lvseg_name() function. |
| Skip use of lock files for virtual internal VG names. |
| Fix selection on {vg,lv}_permissions fields to properly match selection criteria. |
| Fix lv_permissions reporting to display read-only{-override} instead of blank. |
| Fix liblvm2cmd and lvm shell to respect quotes around args in cmd line string. |
| Permit extent sizes > 128KB that are not power of 2 with lvm2 format. |
| Remove workaround for lvm2-monitor.service hang on stop if lvmetad stopped. |
| Change vgremove to use process_each_lv_in_vg. |
| Allow lvconvert --repair and --splitmirrors on internal LVs. |
| Introduce WARN_ flags to control some metadata warning messages. |
| Use process_each_pv in vgreduce. |
| Refactor process_each_pv in toollib. |
| Introduce single validation routine for pool chunk size. |
| Support --yes like --force in vg/lvremove to skip y|n prompt. |
| Support --yes with lvconvert --splitsnapshot. |
| Fix detection of unsupported thin external lvconversions. |
| Fix detection of unsupported cache and thin pool lvconversions. |
| Fix detection of unsupported lvconversion of cache to snapshot. |
| Improve code for creation of cache and cache pool volumes. |
| Check cluster-wide (not local) active status before removing LV. |
| Properly check if activation of removed cached LV really activated. |
| lvremove cached LV removes cachepool (keep with lvconvert --splitcache). |
| Always remove spare LV with last removed pool volume. |
| Support lvconvert --splitcache and --uncache of cached LV. |
| Option --cache has also shortcut -H (i.e. lvcreate -H). |
| Refactor lvcreate code and better preserve --type argument. |
| Refactor filter processing around lvmetad. |
| Refactor process_each_lv in toollib. |
| Refactor process_each_vg in toollib. |
| Pools cannot be used as external origin. |
| Use lv_update_and_reload() for snapshot reload. |
| Don't print message in adjusted_mirror_region_size() in activation. |
| Improve lv_update_and_reload() to find out proper lock holding LV. |
| Improve search of LV in lv_ondisk(). |
| Do not scan sysfs in lv_check_not_in_use() when device is closed. |
| Backup final metadata after resync of mirror/raid. |
| Unify handling of --persistent option for lvcreate and lvchange. |
| Validate major and minor numbers stored in metadata. |
| Use -fPIE when linking -pie executables. |
| Support DEBUG_MEMLOCK to trap unsupported mmap usage. |
| Enable cache segment type by default. |
| Ensure only supported volume types are used with cache segments. |
| Fix inablility to specify cachemode when 'lvconvert'ing to cache-pool. |
| Grab cluster lock for active LVs when setting clustered attribute. |
| Use va_copy to properly pass va_list through functions. |
| Add function to detect rotational devices. |
| Review internal checks for mirror/raid/pvmove volumes. |
| Track mirror segment type with separate MIRROR flag. |
| Fix cmirror endian conversions. |
| Introduce lv_is_pvmove/locked/converting/merging macros. |
| Avoid leaving linear logical volume when thin pool creation fails. |
| Don't leak alloc_handle on raid target error path. |
| Properly validate raid leg names. |
| Archive metadata before starting their modification in raid target. |
| Add missing vg_revert() in suspend_lv() raid and snapshot error path. |
| Add missing backup of lvm2 metadata after some raid modifications. |
| Use vg memory pool for extent allocation. |
| Add allocation/physical_extent_size config option for default PE size of VGs. |
| Demote an error to a warning when devices known to lvmetad are filtered out. |
| Re-order filter evaluation, making component filters global. |
| Fix logic that checks for full scan before iterating through devices. |
| Introduce common code to modify metadata and reload updated LV. |
| Fix rename of active snapshot volume in cluster. |
| Make sure shared libraries are built with RELRO option. |
| |
| Version 2.02.111 - 1st September 2014 |
| ===================================== |
| Pass properly sized char buffers for sscanf when initializing clvmd. |
| Reinstate nosync logic when extending mirror. (2.02.110) |
| Fix total area extent calculation when allocating cache pool. (2.02.110) |
| |
| Version 2.02.110 - 26th August 2014 |
| =================================== |
| Fix manipulation with thin-pools which are excluded via volume_list. |
| Support lv/vgremove -ff to remove thin vols from broken/inactive thin pools. |
| Fix typo breaking configure --with-lvm1=shared. |
| Modify lvresize code to handle raid/mirrors and physical extents. |
| Don't allow pvcreate to proceed if scanning or filtering fails. |
| Cleanly error when creating RAID with stripe size < PAGE_SIZE. |
| Print name of LV which on activation triggers delayed snapshot merge. |
| Add lv_layout and lv_role LV reporting fields. |
| Properly display lvs lv_attr volume type and target type bit for cache origin. |
| Fix pvcreate_check() to update cache correctly after signature wiping. |
| Fix primary device lookup failure for partition when processing mpath filter. |
| If LV inactive and non-clustered, do not issue "Cannot deactivate" on -aln. |
| Remove spurious "Skipping mirror LV" message on pvmove of clustered mirror. |
| |
| Version 2.02.109 - 5th August 2014 |
| ================================== |
| Remove lv_volume_type field from reports. (2.02.108) |
| Fix a segfault in lvscan --cache when devices were already missing. (2.02.108) |
| Fix incorrect persistent .cache after vgcreate with PV creation. (2.02.108) |
| Display actual size changed when resizing LV. |
| Allow approximate allocation with +%FREE in lvextend. |
| Remove possible spurious "not found" message on PV create before wiping. |
| Handle upgrade from 2.02.105 when an LV now gaining a uuid suffix is active. |
| |
| Version 2.02.108 - 23rd July 2014 |
| ================================= |
| Add lvscan --cache which re-scans constituents of a particular LV. |
| Make dmeventd's RAID plugin re-scan failed PVs when lvmetad is in use. |
| Improve code sharing for lvconvert and lvcreate and pools (cache & thin). |
| Improve lvconvert --merge validation. |
| Improve lvconvert --splitsnapshot validation. |
| Add report/list_item_separator lvm.conf option. |
| Add lv_active_{locally,remotely,exclusively} LV reporting fields. |
| Comment out devices/{preferred_names,filter} in default lvm.conf file. |
| Enhance lvconvert thin, thinpool, cache and cachepool command line support. |
| Display 'C' only for cache and cache-pool target types in lvs. |
| Prompt for confirmation before change LV into a snapshot exception store. |
| Return proper error codes for some failing lvconvert funtions. |
| Add initial code to use cache tools (cache_check|dump|repair|restore). |
| Support lvdisplay --maps for raid. |
| Add --activationmode degraded to activate degraded raid volumes by default. |
| Add separate lv_active_{locally,remotely,exclusively} LV reporting fields. |
| Recognize "auto"/"unmanaged" values in selection for appropriate fields only. |
| Add report/binary_values_as_numeric lvm.conf option for binary values as 0/1. |
| Add --binary arg to pvs,vgs,lvs and {pv,vg,lv}display -C for 0/1 on reports. |
| Add separate reporting fields for each each {pv,vg,lv}_attr bit. |
| Separate LV device status reporting fields out of LV fields. |
| Fix regression causing PVs not in VGs to be marked as allocatable (2.02.59). |
| Fix VG component of lvid in vgsplit/vgmerge and check in vg_validate. |
| Add lv_full_name, lv_parent and lv_dm_path fields to reports. |
| Change lv_path field to suppress devices that never appear in /dev/vg. |
| Postpone thin pool lvconvert prompts (2.02.107). |
| Require --yes option to skip prompt to lvconvert thin pool chunksize. |
| Support lvremove -ff to remove thin volumes from broken thin pools. |
| Require --yes to skip raid repair prompt. |
| Change makefile %.d generation to handle filename changes without make clean. |
| Fix use of buildir in make pofile. |
| Enhance private volumes UUIDs with suffixed for easier detection. |
| Do not use reserved _[tc]meta volumes for temporary LVs. |
| Leave backup pool metadata with _meta%d suffix instead of reserved _tmeta%d. |
| Allow RAID repair to reuse PVs from same image that suffered a failure. |
| New RAID images now avoid allocation on any PVs in the same parent RAID LV. |
| Always reevaluate filters just before creating PV. |
| |
| Version 2.02.107 - 23rd June 2014 |
| ================================= |
| Introduce LCK_ACTIVATION to avoid concurrent activation of basic LV types. |
| Fix open_count test for lvchange --refresh or mirrors and raids. |
| Update pvs,vgs,lvs and lvm man page for selection support. |
| Add -S/--select to lvm devtypes for report selection. |
| Add -S/--select to pvs,vgs,lvs and {pv,vg,lv}display -C for report selection. |
| Use dm_report_init_with_selection now, implicit "selected" field appears. |
| Make use of libdm's DM_REPORT_FIELD_TYPE{SIZE,PERCENT,STRING_LIST} for fields. |
| Support all-or-nothing pvmove --atomic. |
| Automatically add snapshot metadata size for -l %ORIGIN calculation. |
| When converting RAID origin to cache LV, properly rename sub-LVs. |
| Use RemoveOnStop for lvm2-lvmetad.socket systemd unit. |
| Add thin-generic configuration profile for generic thin settings. |
| Fix crash when reporting empty labels on pvs. |
| Use retry_deactivation also when cleaning orphan devices. |
| Wait for client threads when shutting down lvmetad. |
| Remove PV from cache on pvremove. |
| Avoid repeatedly reporting of failure to connect to lvmetad. |
| Introduce MDA_FAILED to permit metadata updates even if some mdas are missing. |
| Prompt when setting the VG cluster attr if the cluster is not setup. |
| Allow --yes to skip prompt in vgextend (worked only with -f). |
| Don't use name mangling for LVM - it never uses dm names with wrong char set. |
| Remove default.profile and add {command,metadata}_profile_template.profile. |
| Use proper umask for systemd units generated by lvm2-activation-generator. |
| Check for failing mirror_remove_missing() function. |
| Prompt before converting volumes to thin pool and thin pool metadata. |
| Add dumpconfig --type profilable-{metadata,command} to select profile type. |
| Exit immediately with error if command profile is found invalid. |
| Separate --profile cmd line arg into --commandprofile and --metadataprofile. |
| Strictly separate command profiles and per-VG/LV profiles referenced in mda. |
| Fix dumpconfig --type diff when run as second and later cmd in lvm shell. |
| Fix wrong profile reuse from previous run if another cmd is run in lvm shell. |
| Move cache description from lvm(8) to new lvmcache(7) man page. |
| Display skipped prompt in silent mode. |
| Make reporting commands show help about possible sort keys on '-O help'. |
| Add metadata_percent to lvs_cols. |
| Take account of parity areas with alloc anywhere in _calc_required_extents. |
| Use proper uint64 casting for calculation of cache metadata size. |
| Better support for nesting of blocking signals. |
| Use only sigaction handler and drop duplicate signal handler. |
| Separate signal handling and flock code out into lib/misc. |
| Don't start dmeventd checking seg_monitor and monitoring is disabled. |
| Catch CTRL-c during pvremove prompts. |
| Show correct availability status for snapshot origin in lvscan. |
| Move segment thin pool/volume info into segment display 'lvdisplay --maps'. |
| Display thin pool usage even when just thin volume is available. |
| Display monitoring status for monitorable segments in 'lvdisplay --maps'. |
| Display virtual extents for virtual LVs in 'lvdisplay --maps'. |
| Make vgsplit fail cleanly when not all PVs are specified for RAID 4/5/6. |
| Make vgsplit work on mirrors with logs that share PVs with images. |
| Use devices/ignore_suspended_devices=0 by default if not defined in lvm.conf. |
| Use proper libmem mempool for allocation of unknown segment name. |
| Add --readonly to reporting and display tools for lock-free metadata access. |
| Add locking_type 5 for dummy locking for tools that do not need any locks. |
| Fix _recover_vg() error path when lock conversion fails. |
| Use X for LV attributes that are unknown when activation disabled. |
| Only output lvdisplay 'LV Status' field when activation is enabled. |
| Use lvmetad_used() in pvscan instead of config_tree. |
| Configure --enable-udev-systemd-background-jobs if not disabled explicitly. |
| Add lvmdump -s to collect system info and context (currently systemd only). |
| Refactor allocation code to make A_POSITIONAL_FILL explicit. |
| Use thread-safe ctime_r() for clvmd debug logging. |
| Skip adding replies to already finished reply thread. |
| Use mutex to check number of replies in request_timed_out() in clvmd. |
| Drop usage of extra reply_mutex for localsock in clvmd. |
| Protect manipulation with finished flag with mutex in clvmd. |
| Shift mutex creation and destroy for localsock in clvmd to correct place. |
| Fix usage of --test option in clvmd. |
| Skip more libraries to be mlocked in memory. |
| Remove LOCKED flag for pvmove replaced with error target. |
| Return invalid command when specifying negative polling interval. |
| |
| Version 2.02.106 - 10th April 2014 |
| ================================== |
| Fix ignored --dataalignment/dataalignment offset for pvcreate --restorefile. |
| Fix lost information about bootloader area when using lvmetad. |
| Don't require --major to be specified when using -My option on kernels > 2.4. |
| Add configure --disable-thin_check_needs_check to support old thin_check. |
| Use thin_check --clear-needs-check-flag by default. |
| Export lvm_even_rand() for controlled provision of random numbers. |
| Add lvmthin man page to section 7. |
| Ensure mapped device names are not too long in vg_validate and lvrename. |
| Ensure resume failure in lvrename results in command failure. |
| Add explicit error message when using lvdisplay -c -m. |
| Report error if superfluous argument (e.g. PV name) supplied to pvscan. |
| Fix error message for pvdisplay -c -m and add one for pvdisplay -c -s. |
| Use EINVALID_CMD_LINE correctly instead of ECMD_FAILED in vgimport/export. |
| Obtain list of known VGs from lvmetad for pvchange --all. |
| Add man page for lvm-dumpconfig to section 8. |
| Drop unused cmd pointer for internal function for_each_sub_lv(). |
| Validate name for renamed sub LVs. |
| When lvrename fails on argument parsing return EINVALID_CMD_LINE. |
| Fix exit code regression in failing pvchange command (2.02.66). |
| Include 'lvm dumpconfig --type missing' and '--type diff' output to lvmdump. |
| Return failure when specifying negative size for pvresize. |
| Fix memory corruption in cmd context refresh if clvmd leaks opened device. |
| Reinitialise lvmcache properly on fork to fix premature polldaemon exit. |
| Add 'lvm dumpconfig --type diff' to show differences from defaults. |
| Fix swap signature detection for devices smaller then 2MB. |
| Use dm_malloc function in clvmd.c. |
| Resolve memory release order for clvmd shutdown. |
| Report error when lvm2 activation is released in critical_section. |
| Fix memory corruption when pvscan reports long pv names. |
| Do not report internal orphan VG names when reporting pvdisplay/pvscan. |
| Fix pvdisplay -c man page referencing KB instead of sectors. |
| Skip redundant synchronization calls on local clvmd. |
| Use correct PATH_MAX for locking dir path. |
| Do not check for backups when when its creation is disabled. |
| Don't allow --mergedconfig without --type current in dumpconfig. Fix memleak. |
| Make global/lvdisplay_shows_full_device_path lvm.conf setting profilable. |
| Make global/{units|si_unit_consistency|suffix} lvm.conf setting profilable. |
| Validate minimal chunk size for snapshot COW volume in lvconvert. |
| Disallow lvconvert of origin to snapshot COW volume. |
| Make report lvm.conf settings profilable. |
| Add existing report settings to lvm.conf. |
| Use VG read lock during 'pvscan --cache -aay' autoactivation. |
| Issue a VG refresh before autoactivation only if the PV has changed/is new. |
| Add flag to lvmetad protocol to indicate the PV scanned has changed/is new. |
| Also add vgname to lvmetad protocol when referencing VGs for PVs scanned. |
| Add man page for lvm2-activation-generator. |
| Don't print an error and accept empty value for global/thin_disabled_features. |
| Update API for internal function build_dm_uuid(). |
| Do not try to check empty pool with scheduled messages. |
| Fix return value in pool_has_message() when quering for any message. |
| Cleanup all client resources on clvmd exit. |
| Use dm_zalloc to clear members of clvmd client struct. |
| Use BLKID_CFLAGS when compiling with blkid support. |
| Use correct rl_completion_func_t typedef for new readline. |
| Make lvm 'dumpconfig --type default' complete for it to be consumed by lvm. |
| Run pvscan --cache via systemd-run in udev if the PV label is detected lost. |
| Fix memleak when lvmetad discovers PV to appear on another device. |
| Fix calculation of maximum size of COW device for snapshot (2.02.99). |
| Do not allow stripe size to be bigger then extent size for lvresize. |
| Zero snapshot COW header when creating read-only snapshot. |
| Comment out config lines in dumpconfig output without default values defined. |
| Improve detection of clustered mirror support. |
| Enhance raid code with feature flags, for now checks for raid10. |
| Move parsing of VG metadata from vg_commit() back to vg_write() (2.02.99) |
| Avoid a PV label scan while in a critical section. |
| Remove (always 0) skip argument from lv_activation_skip(). |
| Create /dev/disk/by-id/lvm-pv-uuid-<PV_UUID> symlink for each PV via udev. |
| lvcreate computes RAID4/5/6 stripes if not given from # of allocatable PVs. |
| Fix merging of old snapshot into thin volume origin. |
| Use --ignoreskippedcluster in lvm2-monitor initscript/systemd unit. |
| Do not use VG read/write state for LV read/write state. |
| Use --ignoreskippedcluster in activation systemd units if use_lvmetad=0. |
| Allow approximate allocation when specifying size in percentage terms. |
| Add basic LVM support for cache[pool] segment types. |
| Use local exclusive activation for creation of raid in cluster. |
| Use correctly signed 64b constant when selecting raid volumes. |
| Add systemd native service for clvmd, cmirrord and clustered LV activation. |
| Remove ExecReload from lvmetad systemd unit: lvmetad -R undefined. (2.02.98) |
| Do not fork lvmetad if running under systemd. |
| Wipe DM_snapshot_cow signature without prompt in new LVs with blkid wiping. |
| Avoid exposing temporary devices when initializing raid metadata volumes. |
| Add internal tags command to display any tags defined on the host. |
| Prohibit use of external origin with size incompatible with thin pool. |
| Avoid trying to convert single to thin pool and volume at the same time. |
| Add support for partitions on ZFS zvol. |
| Fix unwanted drop of hold flocks on forked children. |
| Respect LVM_LVMETAD_PIDFILE env var for lvm command. |
| Avoid exposing temporary devices when initializing thin pool volume. |
| Fix test when checking target version for available thin features. |
| Detect thin feature external_origin_extend and limit extend when missing. |
| Rename internal pool_can_resize_metadata() to thin_pool_feature_supported(). |
| Issue error if libbblkid detects signature and fails to return offset/length. |
| Update autoconf config.guess/sub to 2014-01-01. |
| Online thin pool metadata resize requires 1.10 kernel thin pool target. |
| |
| Version 2.02.105 - 20th January 2014 |
| ==================================== |
| Fix thin LV flagging for udev to skip scanning only if the LV is wiped. |
| Replace use of xfs_check with xfs_repair in fsadm. |
| Mark lvm1 format metadata as FMT_OBSOLETE. Do not use it with lvmetad. |
| Invalidate cached VG struct after a PV in it gets orphaned. (2.02.87) |
| Mark pool format metadata as FMT_OBSOLETE. |
| Use major:minor in [email protected] for proper global_filter application. |
| Syntax and spelling fixes in some man pages. |
| Dependency scan counts with snapshots and external origins. |
| Make sure VG extent size is always greater or equal to PV phys. block size. |
| Optimize double call of stat() for cached devices. |
| Enable support for thin provisioning for default configuration. |
| Improve process_each_lv_in_vg() tag processing. |
| Reordered and simplified logging code. |
| Fix SYSTEMD_READY assignment for foreign devices in lvmetad udev rules. |
| Disable online thin pool metadata resize for 1.9 kernel thin target. |
| Shortened code for initialization of raid segment types. |
| Cache global library dir in command context. |
| Return success when inserting dirs and links into device cache. |
| Test for remote exclusive activation after activation fails. |
| Support lvconvert --merge for thin snapshots. |
| Add support to read thin device id from table line entry. |
| Drop extra test for origin when testing merging origin in lv_refresh(). |
| Extend lv_remove_single() to not print info about removed LV. |
| Replace open_count check with lv_check_not_in_use() for snapshot open test. |
| Add error messages with LV names for failing lv refresh. |
| Compile/link executables with new RELRO and PIE options (non-static builds). |
| Support per-object compilation cflags via CFLAGS_object.o. |
| Automatically detect support for compiler/linker options to use RELRO and PIE. |
| Add --splitsnapshot to lvconvert to separate out cow LV. |
| Reinstate origin reload to complete lvconvert -s with active LVs. (2.02.98) |
| Select only active volume groups if vgdisplay -A is used. |
| Add -p and LVM_LVMETAD_PIDFILE env var to lvmetad to change pid file. |
| Allow lvmetad to reuse stale socket. |
| Only unlink lvmetad socket on error if created by the same process. |
| Append missing newline to lvmetad missing socket path error message. |
| Check for non-zero aligment in _text_pv_add_metadata_area() to not div by 0. |
| Add allocation/use_blkid_wiping to lvm.conf to enable blkid wiping. |
| Enable blkid_wiping by default if the blkid library is present. |
| Add configure --disable-blkid_wiping to disable libblkid signature detection. |
| Add -W/--wipesignatures lvcreate option to support wiping on new LVs. |
| Add allocation/wipe_signatures_when_zeroing_new_lvs to lvm.conf. |
| Do not fail the whole autoactivation if the VG refresh done before fails. |
| Do not connect to lvmetad on vg/lvchange --sysinit -aay and socket absent. |
| Use lv_check_not_in_use() when testing device in use before merging. |
| Move test for target present from init_snapshot_merge() to lvconvert. |
| Check for failure of lvmcache_add_mda() when writing pv. |
| Check for failure of dev_get_size() when reporting device size. |
| Drop extra unneeded '/' when scanning sysfs directory. |
| Fix undef value if skipped clustered VG ignored for toollib PV seg. (2.02.103) |
| Support validation of VG/LV names in liblvm/python. |
| Allow creation of PVs with arguments to liblvm/python. |
| Ensure sufficient metadata copies retained in liblvm/python vgreduce. |
| Fix installation of profiles from conf subdir when not building in srcdir. |
| Show UUIDs for missing PVs in reports. |
| Change dev_size/name, pv_fmt/mda_free/mda_size/uuid fields from pv to label. |
| Add struct device *dev to struct label. |
| Introduce process_each_label. |
| Change void *private to struct format_type *fmt in struct labeller. |
| Remove pv_read. |
| Add reporting of thin_id device id for thin volumes. |
| Fix reporting of empty numerical values for recently-added fields. |
| Use _field_set_percent/value in reporting code. |
| |
| Version 2.02.104 - 13th November 2013 |
| ===================================== |
| Workaround VG refresh race during autoactivation by retrying the refresh. |
| Handle failures in temporary mirror used when adding images to mirrors. |
| Fix and improve logic for implicitely exclusive activations. |
| Return success when LV cannot be activated because of volume_list filter. |
| Return proper error state for remote exclusive activation. |
| Fix missing lvmetad scan for PVs found on MD partitions. |
| Respect DM_UDEV_DISABLE_OTHER_RULES_FLAG in lvmetad udev rules. |
| Fix clvmd message verification to not reject REMOTE flag. (2.02.100) |
| Compare equality of double values with DBL_EPSILON predefined constant. |
| Use additional gcc warning flags by default. |
| Add ignore_lvm_mirrors to config file to read/ignore labels on mirrors. |
| Add internal flag for temporary LVs to properly direct udev to not interfere. |
| Fix endless loop in blkdeactivate <device>... if unable to umount/deactivate. |
| Add dev-block-<major>:<minor>.device systemd alias for complete PV tracking. |
| Use major:minor as short form of --major and --minor arg for pvscan --cache. |
| Remove 2>/dev/null from three lvm commands executed by vgimportclone. |
| Add configure --enable-udev-systemd-background-jobs. |
| Add [email protected] to run pvscan as a service for lvmetad/autoactivation. |
| Use #ifdef __linux__ instead of linux throughout. |
| Fix lvconvert swap of poolmetadata volume for active thin pool. |
| Check for open count with a timeout before removal/deactivation of an LV. |
| Report RAID images split with tracking as out-of-sync ("I"). |
| Improve parsing of snapshot lv segment. |
| Add workaround for deactivation problem of opened virtual snapshot. |
| Disable unsupported merge for virtual snapshot. |
| Move code to remove virtual snapshot from tools to lib for lvm2app. |
| Fix possible race during daemon worker thread creation (lvmetad). |
| Fix possible deadlock while clearing lvmetad cache for full rescan. |
| Recognise NVM Express devices in filter. |
| Fix failing metadata repair when lvmetad is used. |
| Fix incorrect memory handling when reading messages from lvmetad. |
| Fix locking in lvmetad when handling the PV which is gone. |
| Recognize new flag to skip udev scanning in udev rules and act appropriately. |
| Add support for flagging an LV to skip udev scanning during activation. |
| Improve message when unable to change discards setting on active thin pool. |
| Run full scan before vgrename operation to avoid any cache name collision. |
| Fix lvconvert when converting to a thin pool and thin LV at once. (2.02.99) |
| |
| Version 2.02.103 - 4th October 2013 |
| =================================== |
| Ensure vgid matches before removing vgname entry from lvmetad cache. |
| Add --ignoreskippedcluster for exit status success when clustered VGs skipped. |
| Fix 3 minute udev timeout so that it is applied for all LVM volumes. |
| Fix thin/raid & activation config defaults with configure --disable-devmapper. |
| Fix RAID calculation for sufficient allocatable space. |
| lvconvert from linear to mirror or RAID1 now honors mirror_segtype_default. |
| Add thin-performance configuration profile. |
| Add lvm.conf allocation/thin_pool_chunk_size_policy option. |
| Fix contiguous & cling allocation policies for parity RAID. (2.02.100) |
| Have lvmconf --enable/disable-cluster reset/set use_lvmetad. |
| Don't install separate command symlink for 'lvm devtypes'. (2.02.101) |
| Add seg_size_pe field to reports. |
| Support start+length notation with command line PE ranges. |
| Exit cleanly with message when pvmove cannot restart because LV is inactive. |
| |
| Version 2.02.102 - 23rd September 2013 |
| ====================================== |
| Fix missing build dependency for scripts subdir in Makefile. |
| Extend lv_info() for more efficient lv_is_active_locally() check. |
| Fix node up/down handling in clvmd corosync module. |
| |
| Version 2.02.101 - 20th September 2013 |
| ====================================== |
| Fix 3-thread clvmd deadlock triggered by cleanup on EOF from client. |
| Remove VG from lvmetad before restoring it with vgcfgrestore. |
| Use strtoull instead of strtol in _get_int_arg. |
| Add devtypes report command to display built-in recognised block device types. |
| Fix CC Makefile override which had reverted to using built-in value. (2.02.75) |
| Recognise bcache block devices in filter (experimental). |
| Run lvm2-activation-net after lvm2-activation service to prevent parallel run. |
| Add man page entries for lvmdump's -u and -l options. |
| Fix lvm2app segfault while using lvm_list_pvs_free fn if there are no PVs. |
| Improve of clvmd singlenode locking simulation. |
| lvconvert no longer converts LVs of "mirror" segment type to thinpool. |
| lvconvert no longer converts thinpool sub-LVs to "mirror" segment type. |
| Direct udev to use 3min timeout for LVM devices. Recent udev has default 30s. |
| Do not scan multipath or RAID components and avoid incorrect autoactivation. |
| Fix MD/loop udev handling to fire autoactivation after setup or coldplug only. |
| Make RAID capable of single-machine exclusive operations in a cluster. |
| Drop calculation of read ahead for deactivated volume. |
| Check for exactly one lv segment in validation of thin pools and volumes. |
| Fix dmeventd unmonitoring of thin pools. |
| Fix lvresize for stacked thin pool volumes (i.e. mirrors). |
| Write Completed debug message before reinstating log defaults after command. |
| Refresh existing VG before autoactivation (event retrigger/device reappeared). |
| Use pvscan -b in udev rules to avoid a deadlock on udev process count limit. |
| Add pvscan -b/--background for the command to be processed in the background. |
| Don't assume stdin file descriptor is readable. |
| Avoid unlimited recursion when creating dtree containing inactive pvmove LV. |
| Require exactly 3 arguments for lvm2-activation-generator. Remove defaults. |
| Inform lvmetad about any lost PV label to make it in sync with system state. |
| Support most of lvchange operations on stacked thin pool meta/data LVs. |
| Enable non-clustered pvmove of snapshots and snapshot origins. |
| Add ability to pvmove non-clustered RAID, mirror, and thin volumes. |
| Make lvm2-activation-generator silent unless it's in error state. |
| Remove "mpath major is not dm major" msg for mpath component scan (2.02.94). |
| Prevent cluster mirror logs from being corrupted by redundant checkpoints. |
| Fix ignored lvmetad update on loop device configuration (2.02.99). |
| Use LVM_PATH instead of hardcoded value in lvm2 activation systemd generator. |
| Fix vgck to notice on-disk corruption even if lvmetad is used. |
| Move mpath device filter before partitioned filter (which opens devices). |
| Split partitioned filter out of lvm_type filter. |
| Merge filter*.h into a single filter.h. |
| Require confirmation for vgchange -c when no VGs listed explicitly. |
| Also skip /var and /var/log by default in blkdeactivate when unmounting. |
| Add support for bind mounts in blkdeactivate. |
| Add blkdeactivate -v/--verbose for debug output from external tools used. |
| Add blkdeactivate -e/--errors for error messages from external tools used. |
| Suppress messages from external tools called in blkdeactivate by default. |
| |
| Version 2.02.100 - 13th August 2013 |
| =================================== |
| Fix inability to remove a VG's cluster flag if it contains a mirror. |
| Suppress arg: prefix in log_sys_error macro when arg is empty string. |
| Fix bug making lvchange unable to change recovery rate for RAID. |
| Prohibit conversion of thin pool to external origin. |
| Workaround gcc v4.8 -O2 bug causing failures if config/checks=1 (32bit arch). |
| Verify clvmd message validity before processing and log error if incorrect. |
| When creating PV on existing LV don't forbid reserved LV names on LVs below. |
| Split out device_is_suspended_or_blocking from device_is_usable. |
| When converting mirrors, default segtype should be the same unless specified. |
| Make "raid1" the default mirror segment type. |
| Fix clogd descriptor leak when daemonizing. |
| Fix clvmd descriptor leak on restart. |
| Add pipe_open/close() to use instead of less efficient/secure popen(). |
| Fix metadata area offset/size overflow if it's >= 4g and while using lvmetad. |
| Inherit and apply any profile attached to a VG if creating new thin pool. |
| Add initial support thin pool lvconvert --repair. |
| Add --with-thin-repair and --with-thin-dump configure options. |
| Add lvm.conf thin_repair/dump_executable and thin_repair_options. |
| Require 1.9 thin pool target version for online thin pool metadata resize. |
| Ignore previous LV seg with alloc contiguous & cling when num stripes varies. |
| Fix segfault if devices/global_filter is not specified correctly. |
| |
| Version 2.02.99 - 24th July 2013 |
| ================================ |
| Do not zero init 4KB of thin snapshot for non-zeroing thin pool (2.02.94). |
| Issue an error msg if lvconvert --type used incorrectly with other options. |
| Use LOG_DEBUG/ERR msg severity instead default for lvm2-activation-generator. |
| Support ARG_GROUPABLE with merge_synonym (for --raidwritemostly). |
| Fix segfault when reporting raid_syncaction for older kernels. |
| Add LV report fields: raid_mismatch_count/raid_sync_action/raid_write_behind. |
| Add LV reporting fields raid_min_recovery_rate, raid_max_recovery_rate. |
| Add sync_percent as alias for copy_percent LV reporting field. |
| Add lv_ prefix to modules reporting field. |
| Use units B or b (never E) with no decimal places when displaying sizes < 1k. |
| Add support for poolmetadataspare LV, that will be used for pool recovery. |
| Improve activation order when creating thin pools in non-clustered VG. |
| List thin-pool and thin modules for thin volumes. |
| Correct thin creation error paths. |
| Use local activation for clearing snapshot COW device. |
| Add lvm2-activation-net systemd unit to activate LVs on net-attached storage. |
| Release memory allocated with _cached_info(). |
| Add whole log_lv and metadata_lv sub volumes when creating partial tree. |
| Properly use snapshot layer for origin which is also thin volume. |
| Avoid generating metadata backup when calling update_pool_lv(). |
| Send thin messages also for active thin pool and inactive thin volume. |
| Add activation/auto_set_activation_skip to control activation skip flagging. |
| Add 's(k)ip activation' bit to lvs -o lv_attr to indicate skip flag attached. |
| Add --ignoreactivationskip to lvcreate/vgchange/lvchange to ignore skip flag. |
| Add --setactivationskip to lvcreate/lvchange to set activation skip flag. |
| Automatically flag thin snapshots to be skipped during activation. |
| Add support for persistent flagging of LVs to be skipped during activation. |
| Add --type profilable to lvm dumpconfig to show profilable config settings. |
| Add --mergedconfig to lvm dumpconfig for merged --config/--profile/lvm.conf. |
| Relase memory and unblock signals in lock_vol error path. |
| Define LVM2_* command errors in lvm2cmd.h and use in dmeventd plugins. |
| Move errors.h to tools dir. |
| Add man page entries for profile configuration and related options. |
| Improve error loging when user tries to interrupt commands. |
| Rename _swap_lv to _swap_lv_identifiers and move to allow an additional user. |
| Rename snapshot segment returning methods from find_*_cow to find_*_snapshot. |
| liblvm/python API: Additions: PV create/removal/resize/listing |
| liblvm/python API: Additions: LV attr/origin/Thin pool/Thin LV creation |
| Add vgs/lvs -o vg_profile/lv_profile to report profiles attached to VG/LV. |
| Add default.profile configuration profile and install it on make install. |
| Create a new 'conf' subdir for configuration files including profiles. |
| Make selected thinp settings customizable by a profile. |
| Support changing VG/LV profiles: vgchange/lvchange --profile/--detachprofile. |
| Support storing profile name in metadata for both VGs and LVs. |
| Add new --profile command line arg to select a configuration profile for use. |
| Add config/profile_dir to set working directory to load profiles from. |
| Add configure --with-default-profile-subdir to select dir to keep profiles in. |
| Add support for configuration profiles. |
| Introduce config_source wrapper for identification of configuration sources. |
| Avoid creation of multiple archives for one command. |
| Use mirror_segtype_default if type not specified for linear->mirror upconvert. |
| Fix use of too big chunks of memory when communication with lvmetad. |
| Fix vgcfgrestore crash when specified incorrect vg name. |
| Refine lvm.conf and man page documentation for autoactivation feature. |
| Add support for thin volumes in vgsplit. |
| Also filter partitions on mpath components if multipath_component_detection=1. |
| Add lvresize support for online thin pool metadata volume resize. |
| Add helper functions find_pool_lv() and pool_can_resize_metadata(). |
| Add detection for thin pool metadata resize kernel support. |
| Report lvs volume type 'e' with higher priority. |
| Report lvs volume type 'o' also for external origin volumes. |
| Report lvs target type 't' only for thin pools and thin volumes. |
| Fix test for active snapshot in cluster before resizing it. |
| Allow local activation to receive a locally-supplied LV struct. |
| Add vg->vg_ondisk / lv_ondisk() holding committed metadata. |
| Report backtrace from dump filter error path. |
| Do not use persistent filter with lvmetad. |
| Composable persistent filter functionality for global filter. |
| Override system's global_filter settings for vgimportclone. |
| Detect maximum usable size for snapshot for lvresize. |
| Creation of snapshot takes at most 100% origin coverage. |
| Add cow_max_extents() to calc extents for 100% origin coverage. |
| For creation of snapshot require size for at least 3 chunks. |
| Fix lvresize --use-policies of VALID but 100% full snapshot. |
| Do not accept size parameters bigger then 16EiB. |
| Fix release of PV's fid in free_pv_fid(). |
| Skip monitoring of snapshots that are already bigger then origin. |
| Add lv_is_cow_covering_origin() to check if cow covers origin size. |
| Use libdm dm_get_status_snapshot() to parse snapshot status. |
| Add detection of mounted fs also for vgchange deactivation. |
| Replace 'lv_is_active' with more correct/specific variants (e.g. *_locally). |
| Refuse to init a snapshot merge in lvconvert if there's no kernel support. |
| Fix exported symbols regex for non-GNU busybox sed. |
| Accept --yes in all commands so test scripts can be simpler. |
| Fix alignment of PV data area if detected alignment less than 1 MB (2.02.74). |
| Fix memory resource leak in memlocking error path. |
| Fix premature DM version checking which caused useless mapper/control access. |
| Add "active" LV reporting field to show activation state. |
| Add "monitor" segment reporting field to show dmevent monitoring status. |
| Document lvextend --use-policies option in man. |
| Fix creation and removal of clustered snapshot. |
| Fix clvmd caching of metadata when suspending inactive volumes. |
| Find newest timestamp of merged config files. |
| Fix assignment order for vg fid for lvm1 and pool format. |
| Fix memleak in dmeventd thin plugin in device list obtaining err path. |
| Add explicit message about unsupported pvmove for thin/thinpool volumes. |
| Fix lvmetad error path in lvmetad_vg_lookup() for null vgname. |
| Fix clvmd _cluster_request() return code in memory fail path. |
| Add lvcreate/lvchange --[raid]{min|max}recoveryrate for raid LVs. |
| Add lvchange --[raid]writemostly/writebehind support for RAID1 |
| Add lv_change_activate() for common activation code in vg/lvchange. |
| Add lvchange --[raid]syncaction for scrubbing of RAID LVs. |
| Improve RAID kernel status retrieval to include sync_action/mismatch_cnt. |
| Add external origin support for lvcreate. |
| Improve lvcreate, lvconvert and lvm man pages. |
| Clean up format1 PV write to remove a need for an orphan VG for it to pass. |
| Fix vgextend to not allow a PV with 0 MDAs to be used while already in a VG. |
| Move update_pool_params() from /tools to /lib for better reuse. |
| Give precedence to EMC power2 devices with duplicate PVIDs. |
| Add --validate option to lvm dumpconfig to validate current config on demand. |
| Add --ignoreadvanced and --ignoreunsupported switch to lvm dumpconfig. |
| Add --withcomments and --withversions switch to lvm dumpconfig. |
| Add --type {current|default|missing|new} and --atversion to lvm dumpconfig. |
| Support automatic config validation and add 'config' section to lvm.conf. |
| Add pvs -o pv_ba_start,pv_ba_size to report bootloader area start and size. |
| Add --bootloaderareasize to pvcreate and vgconvert to create bootloader area. |
| Add PV header extension: extension version, flags and bootloader areas. |
| Initial support for lvconvert of thin external origin. |
| Add _lv_remove_segs_using_this_lv() for removal of dependent lvs. |
| Improve activation code for better support of stacked devices. |
| Add _add_layer_target_to_dtree() for adding linear layer into dtree. |
| Extend _cached_info() to accept layer string. |
| vgimport '--force' now allows import of VGs with missing PVs. |
| Fix PV alignment to incorporate alignment offset if the PV has zero MDAs. |
| Add global/raid10_segtype_default to lvm.conf. |
| Allow removal or replacement of RAID LV components that are error segments. |
| Make 'vgreduce --removemissing' able to handle RAID LVs with missing PVs. |
| Accept activation/raid_region_size in preference to mirror_region_size config. |
| Fix pvs -o pv_free reporting for PVs with zero PE count. |
| Fix missing cleanup of flags when the LV is detached from pool. |
| Fix check for some forbidden discards conversion of thin pools. |
| Add pool_is_active() to check for any pool related active LV. |
| Report blank origin_size field if the LV doesn't have an origin instead of 0. |
| Do not take a free lv name argument for lvconvert --thinpool option. |
| Avoid flushing thin pool when just requesting transaction_id. |
| Add internal function lv_layer() to obtain layer name for LV. |
| Report partial and in-sync RAID attribute based on kernel status |
| Fix blkdeactivate to handle nested mountpoints and mangled mount paths. |
| Use LC_ALL to set locale in daemons and fsadm instead of lower priority LANG. |
| Avoid crash-inducing race in lvmetad when VG disappears during rename. |
| Add log/debug_classes to lvm.conf to control debug log messages. |
| Synchronize with udev in pvscan --cache and fix dangling udev_sync cookies. |
| Fix autoactivation to not autoactivate VG/LV on each change of the PVs used. |
| Limit RAID device replacement to repair only if LV is not in-sync. |
| Disallow RAID device replacement or repair on inactive LVs. |
| Fix possible race while removing metadata from lvmetad. |
| Fix possible deadlock when querying and updating lvmetad at the same time. |
| Check lvmcache_info_from_pvid and recall only when needed in _pv_read. |
| Check for memory failure of dm_config_write_node() in lvmetad. |
| Fix socket leak on error path in lvmetad's handle_connect. |
| Check for failing id_read_format() in _pv_populate_lvmcache. |
| Fix memleak on error path for lvmetad's pv_found. |
| Unlock vg mutex in error path when lvmetad tries to lock_vg. |
| Detect key string duplication failure in config_make_nodes_v in libdaemon. |
| Detect fid creation failure in _scan_file in format_text. |
| Log output also to syslog when abort_on_internal_error is set. |
| Add LV snapshot support to liblvm and python-lvm. |
| Avoid a global lock in pvs when lvmetad is in use. |
| Fix crash in pvscan --cache -aay triggered by non-mda PV. |
| Allow lvconvert --stripes/stripesize only with --mirrors/--repair/--thinpool. |
| Fix memleak in device_is_usable mirror testing function. |
| Do not ignore -f in lvconvert --repair -y -f for mirror and raid volumes. |
| Disallow pvmove on RAID LVs until they are addressed properly |
| Allow empty activation/{auto_activation|read_only|}_volume_list config option. |
| Add lvm.conf option global/thin_disabled_features. |
| Add lvconvert support to swap thin pool metadata volume. |
| Implement internal function detach_pool_metadata_lv(). |
| Fix lvm2app to return all property sizes in bytes (not sectors). |
| Recognize DM_DISABLE_UDEV environment variable for a complete fallback. |
| Do not verify udev operations if --noudevsync command option is used. |
| Fix lvm2app and return lvseg discards property as string. |
| Allow vgcfgrestore of lvm2 metadata with thin volumes if --force is used. |
| Recognise Storage Class Memory (IBM S/390) devices in filter. |
| Recognise STEC skd devices in filter. |
| Recognise Violin Memory vtms devices in filter. |
| Add lvm.conf thin pool allocation settings thin_pool_{chunk_size|discards|zero}. |
| Support discards for non-power-of-2 thin pool chunks. |
| Automatically restore MISSING PVs with no MDAs. |
| When no --stripes argument is given when creating a RAID10 volume, default to 2 stripes. |
| Do not allow lvconvert --splitmirrors on RAID10 logical volumes. |
| Skip mlocking [vectors] on arm architecture. |
| Support allocation of pool metadata with lvconvert command. |
| Move common functionality for thin lvcreate and lvconvert to toollib. |
| Repair a mirrored log before the mirror itself when both fail. |
| Add python-lvm unit test case |
| Exit pvscan --cache immediately if cluster locking used or lvmetad not used. |
| Don't use lvmetad in lvm2-monitor.service ExecStop to avoid a systemd issue. |
| Remove dependency on fedora-storage-init.service in lvm2 systemd units. |
| Depend on lvm2-lvmetad.socket in lvm2-monitor.service systemd unit. |
| Hardcode use_lvmetad=0 if cluster locking used and issue a warning msg. |
| Avoid trying to read a mirror that has a failed device in its mirrored log. |
| Relax ignore_suspended_devices to read from mirrors that don't have a device marked failed. |
| Change lvs heading Copy% to Cpy%Sync and print RAID4/5/6 sync% there too. |
| Fix clvmd support for option -d and properly use its argument. |
| Support use of option --yes for lvchange --persistent. |
| Fix memory leak on error path for pvcreate with invalid uuid. |
| Implement ref-counting for parents in python lib. |
| Add lv_is_active_locally and use instead of most local lv_info calls. |
| Reduce some log_error messages to log_warn where we don't fail. |
| Remove python liblvm object. systemdir can only be changed using env var now. |
| |
| Version 2.02.98 - 15th October 2012 |
| =================================== |
| Switch from DEBUG() to DEBUGLOG() in lvmetad as -DDEBUG is already used. |
| Prohibit not yet supported change of thin-pool to read-only. |
| Support creation of read-only thin volumes (lvcreate -p r). |
| Using autoextend percent 0 for thin pool fails 'lvextend --use-policies'. |
| Introduce blkdeactivate script to deactivate block devs with dependencies. |
| Implement devices/global_filter to hide devices from lvmetad. |
| Make vgscan --cache an alias for pvscan --cache. |
| Clear lvmetad metadata/PV cache before a rescan. |
| Fix a segmentation fault upon receiving a corrupt lvmetad response. |
| Give inconsistent metadata warnings in pvscan --cache. |
| Make lvremove ask before discarding data areas. |
| Avoid overlapping locks that could cause a deadlock in lvmetad. |
| Fix memory leaks in libdaemon and lvmetad. |
| Optimize libdaemon logging for a fast no-output path. |
| Only create lvmetad pidfile when running as a daemon (no -f). |
| Warn if lvmetad is running but disabled. |
| Warn about running lvmetad with use_lvmetad = 0 in example.conf. |
| Update lvmetad help output (flags and their meaning). |
| Make pvscan --cache read metadata from LVM1 PVs. |
| Make libdaemon buffer handling asymptotically more efficient. |
| Add lvmdump -l, to collect a state dump from lvmetad. |
| Make --sysinit suppress lvmetad connection failure warnings. |
| Prohibit usage of lvcreate --thinpool with --mirrors. |
| Fix lvm2api origin reporting for thin snapshot volume. |
| Add configure --enable-python_bindings for liblvm2app to new python subdir. |
| Add implementation of lvm2api function lvm_percent_to_float. |
| Allow non power of 2 thin chunk sizes if thin pool driver supports that. |
| Allow limited metadata changes when PVs are missing via [vg|lv]change. |
| Do not start dmeventd for lvchange --resync when monitoring is off. |
| Remove pvscan --cache from lvm2-lvmetad init script. |
| Remove ExecStartPost with pvscan --cache from lvm2-lvmetad.service. |
| Report invalid percentage for property snap_percent of non-snaphot LVs. |
| Disallow conversion of thin LVs to mirrors. |
| Fix lvm2api data_percent reporting for thin volumes. |
| Do not allow RAID LVs in a clustered volume group. |
| Add --discards to lvconvert. |
| Add --poolmetadata to lvconvert and support thin meta/data dev stacking. |
| Support changes of permissions for thin snapshot volumes. |
| Enhance insert_layer_for_lv() with recursive rename for _tdata LVs. |
| Skip building dm tree for thin pool when called with origin_only flag. |
| Add internal lv_rename_update() to rename LV without updating mda. |
| Ensure descriptors 0,1,2 are always available, using /dev/null if necessary. |
| Use /proc/self/fd when available for closing opened descriptors efficiently. |
| Add missing pkg init with --enable-testing in configure.in (2.02.71). |
| Fix inability to create, extend or convert to a large (> 1TiB) RAID LV. |
| Split out daemon-io from daemon-shared and always build libdaemonclient. |
| Update lvmetad communications to cope with clients using different filters. |
| Add (p)artial attribute to lvs. |
| Don't try to issue discards to a missing PV to avoid segfault. |
| Clear LV_NOSYNCED flag when a RAID1 LV is converted to a linear LV. |
| Disallow RAID1 upconvert if the LV was created with --nosync. |
| Depend on systemd-udev-settle in units generated by activation generator. |
| Fix vgchange -aay not to activate non-matching LVs that follow a matching LV. |
| Fix lvchange --resync for RAID LVs which had no effect. |
| Restructure mirror resync code. |
| Disallow addition of RAID images until the array is in-sync. |
| Fix RAID LV creation with '--test' so valid commands do not fail. |
| Add lvm_lv_rename() to lvm2api. |
| Fix setvbuf code by closing and reopening stream before changing buffer. |
| Disable private buffering when using liblvm. |
| When private stdin/stdout buffering is not used always use silent mode. |
| Add log/silent to lvm.conf equivalent to -qq. |
| Suppress non-essential stdout with -qq. |
| Switch non-essential log_print messages to log_print_unless_silent. |
| Use -q as short form of --quiet. |
| Add RAID10 support (--type raid10). |
| Reuse _reload_lv() in more lvconvert functions. |
| Fix 32-bit device size arithmetic needing 64-bit casting throughout tree. |
| Remove numerous unnecessary #includes and the empty util.c. |
| Fix dereference of NULL in lvmetad error path logging. |
| Fix buffer memory leak in lvmetad logging. |
| Add support for lvcreate --discards. |
| Correct the discards field in the lvs manpage (2.02.97). |
| Use proper condition to check for discards settings unsupported by kernel. |
| Reinstate correct default to ignore discards for thin metadata from old tools. |
| Issue error message when -i and -m args do not match specified RAID type. |
| Change lvmetad logging syntax from -ddd to -l {all|wire|debug}. |
| Add new libdaemon logging infrastructure. |
| |
| Version 2.02.97 - 7th August 2012 |
| ================================= |
| Improve documention of allocation policies in lvm.8. |
| Increase limit for major:minor to 4095:1048575 when using -My option. |
| Add make install_systemd_generators. |
| Add generator for lvm2 activation systemd units. |
| Add lvm_config_find_bool lvm2app fn to retrieve bool value from config tree. |
| Respect --test when using lvmetad. |
| No longer capitalise first LV attribute char for invalid snapshots. |
| Allow vgextend to add PVs to a VG that is missing PVs. |
| Recognise Micron PCIe SSDs in filter and move array out to device-types.h. |
| Fix dumpconfig <node> to print only <node> without its siblings. (2.02.89) |
| Do not issue "Failed to handle a client connection" error if lvmetad killed. |
| Support lvchange --discards and -Z with thin pools. |
| Add discard LV segment field to reports. |
| Add --discards to lvcreate --thin. |
| Set discard and external snapshot features if thin pool target is vsn 1.1+. |
| Count percentage of completeness upwards not downwards when merging snapshot. |
| Skip activation when using vg/lvchange --sysinit -a ay and lvmetad is active. |
| Fix extending RAID 4/5/6 logical volumes |
| Fix test for PV with unknown VG in process_each_pv to ignore ignored mdas. |
| Update man pages with --activate ay option and auto_activation_volume_list. |
| Fix _alloc_parallel_area to avoid picking already-full areas for raid devices. |
| Use vgchange -aay instead of vgchange -ay in clmvd init script. |
| Add activation/auto_activation_volume_list to lvm.conf. |
| Add --activate ay to lvcreate, lvchange, pvscan and vgchange. |
| Add support for volume autoactivation using lvmetad. |
| Add --activate synonym for --available arg and prefer --activate. |
| Never issue discards when LV extents are being reconfigured, not deleted. |
| Allow release_lv_segment_area to fail as functions it calls can fail. |
| Open device read-only instead of read-write when obtaining readahead value. |
| Fix lvconvert thin pool error path NULL pointer dereference. |
| Detect create_instance() failure in pvscan_lvmetad_single(). |
| Use 64-bit calculations for reserved memory and stack. |
| Fix missing sync of filesystem when creating thin volume snapshot. |
| |
| Version 2.02.96 - 8th June 2012 |
| =============================== |
| Upstream source repo now fedorahosted.org git not sources.redhat.com CVS. |
| Fix error paths for regex filter initialization. |
| Re-enable partial activation of non-thin LVs until it can be fixed. (2.02.90) |
| Fix alloc cling to cling to PVs already found with contiguous policy. |
| Fix cling policy not to behave like normal policy if no previous LV seg. |
| Fix allocation loop not to use later policies when --alloc cling without tags. |
| Append _TO_LVSEG to names of internal A_CONTIGUOUS and A_CLING flags. |
| Add missing pkg init --with-systemdsystemunitdir in configure.in (2.02.92). |
| Fix division by zero if PV with zero PE count is used during vgcfgrestore. |
| Add initial support for thin pool lvconvert. |
| Fix lvrename for thin volumes (regression in for_each_sub_lv). (2.02.89) |
| Fix up-convert when mirror activation is controlled by volume_list and tags. |
| Warn of deadlock risk when using snapshots of mirror segment type. |
| Fix bug in cmirror that caused incorrect status info to print on some nodes. |
| Remove statement that snapshots cannot be tagged from lvm man page. |
| Disallow changing cluster attribute of VG while RAID LVs are active. |
| Fix lvconvert error message for non-mergeable volumes. |
| Allow subset of failed devices to be replaced in RAID LVs. |
| Prevent resume from creating error devices that already exist from suspend. |
| Improve clmvd singlenode locking for better testing. |
| Update and correct lvs man page with supported column names. |
| Handle replacement of an active device that goes missing with an error device. |
| Change change raid1 segtype always to request a flush when suspending. |
| Add udev info and context to lvmdump. |
| Add lvmetad man page. |
| Fix RAID device replacement code so that it works under snapshot. |
| Fix inability to split RAID1 image while specifying a particular PV. |
| Update man pages to give them all the same look&feel. |
| Fix lvresize of thin pool for striped devices. |
| For lvresize round upward when specifying number of extents. |
| For lvcreate with %FREE support rounding downward stripe alignment. |
| Change message severity to log_very_verbose for missing dev info in udev db. |
| Fix lvconvert when specifying removal of a RAID device other than last one. |
| Fix ability to handle failures in mirrored log in dmeventd plugin. (2.02.89) |
| Fix unlocking volume group in vgreduce in error path. |
| Cope when VG name is part of the supplied name in lvconvert --splitmirrors -n. |
| Fix exclusive lvchange running from other node. (2.02.89) |
| Add 'vgscan --cache' functionality for consistency with 'pvscan --cache'. |
| Keep exclusive activation in pvmove if LV is already active. |
| Disallow exclusive pvmove if some affected LVs are not exclusively activated. |
| Remove unused and wrongly set cluster VG flag from clvmd lock query command. |
| Fix pvmove for exclusively activated LV pvmove in clustered VG. (2.02.86) |
| Always free hash table on update_pvid_to_vgid() in lvmetad. |
| Update and fix monitoring of thin pool devices. |
| Check hash insert success in lock_vg in clvmd. |
| Check for buffer overwrite in get_cluster_type() in clvmd. |
| Fix global/detect_internal_vg_cache_corruption config check. |
| Update lcov Makefile target to support all dmeventd plugins. |
| Fix initializiation of thin monitoring. (2.02.92) |
| Cope with improperly formatted device numbers in /proc/devices. (2.02.91) |
| Exit if LISTEN_PID environment variable incorrect in lvmetad systemd handover. |
| Use pvscan --cache instead of vgscan in lvmetad scripts. |
| Fix fsadm propagation of -e option. |
| Fix fsadm parsing of /proc/mounts files (don't check for substrings). |
| Fix fsadm usage of arguments with space. |
| Fix arg_int_value alongside ARG_GROUPABLE --major/--minor for lvcreate/change. |
| Fix name conflicts that prevent down-converting RAID1 when specifying a device |
| Improve thin_check option passing and use configured path. |
| Add --with-thin-check configure option for path to thin_check. |
| Fix error message when pvmove LV activation fails with name already in use. |
| Better structure layout for device_info in dev_subsystem_name(). |
| Change message severity for creation of VG over uninitialised devices. |
| Fix error path for failed toolcontext creation. |
| Detect lvm binary path in lvmetad udev rules. |
| Don't unlink socket on lvmetad shutdown if instantiated from systemd. |
| Restart lvmetad automatically from systemd if it exits from uncaught signal. |
| Fix warn msg for thin pool chunk size and update man for chunksize. (2.02.89) |
| |
| Version 2.02.95 - 6th March 2012 |
| ================================ |
| If unspecified, adjust thin pool metadata and chunk size to fit into 128MB. |
| Print just warning on thin pool check callback path for failing check. |
| Always use 64bit arithmetic with VG extent_size expression. |
| Validate udev structures in _insert_udev_dir(). |
| Take repeatable --major --minor with pvscan --cache instead of major:minor. |
| Scan all devices for lvmetad if 'pvscan --cache' used without device list. |
| Populate lvmcache from lvmetad before displaying PVs in pvscan. (2.02.94) |
| Suppress incorrect -n pvscan warning now always displayed. (2.02.94) |
| |
| Version 2.02.94 - 3rd March 2012 |
| ================================ |
| Add support to execute thin_check with each de/active of thin pool. |
| Fix automatic estimation of metadata device size for thin pool. |
| Test for alloc fail from _alloc_pv_segment() in _extend_pv(). |
| Check for alloc fail from get_segtype_from_string() in _lvcreate_params(). |
| Add _rimage as reserved suffix to lvm.8 man page. |
| Improve error logging from mpath filter. |
| Check for allocation failure in hold_lock() in clvmd. |
| Use set_lv() (wipe initial 4KiB) for non zeroed thin volume. |
| Allow cluster mirrors to handle the absence of the checkpoint lib (libSaCkpt). |
| Revert free of allocated segtype in init segment error path (2.02.89). |
| Test dm_hash_insert() failures in filter-persistent.c and fid_add_mda(). |
| Ensure clvmd message is always NUL-terminated after read. |
| Add some close() and dev_close() error path backtraces. |
| Set stdin/stdout/stderr to /dev/null for polldaemon. |
| Limit the max size of processed clvmd message to ~8KB. |
| Do not send uninitialised bytes in cluster error reply messages. |
| Use unsigned type for bitmask instead of enum type for lvm properties. |
| Add missing cleanup of excl_uuid hash on some exit paths of clvmd. |
| Check for existence of vg_name in _format1/_pool_vg_read(). |
| Fix missing break in _format_pvsegs (2.02.92). |
| Test seg pointer for non-null it in raid_target_percent error path. |
| Check for errors in _init_tags() during config loading. |
| Always check result of _set_vg_name() in lvcreate. |
| Drop unused call to uname() during clvmd initialization. |
| Test allocation result in sysfs filter creation. |
| Limit sscanf parameters with buffer size in clvmd get_initial_state(). |
| Use const lv pointer for lv_is_active...() functions. |
| Use same signed numbers in _mirrored_transient_status(). |
| Support 'pvscan --cache' to update lvmetad state from specific PVs. |
| Provide new metadata daemon for testing with configure --enable-lvmetad . |
| Integrate client-side lvmetad into build. |
| |
| Version 2.02.93 - 23rd February 2012 |
| ==================================== |
| Require number of stripes to be greater than parity devices in higher RAID. |
| Fix allocation code to allow replacement of single RAID 4/5/6 device. |
| Check all tags and LV names are in a valid form in vg_validate. |
| Add tmpfiles.d style configuration for lvm2 lock and run directory. |
| Add configure --with-tmpfilesdir for dir holding volatile-file configuration. |
| Allow 'lvconvert --repair' to operate on RAID 4/5/6. |
| Fix build_parallel_areas_from_lv to account correctly for raid parity devices. |
| Print message when faulty raid devices have been replaced. |
| |
| Version 2.02.92 - 20th February 2012 |
| ==================================== |
| Read dmeventd monitoring config settings for every lvm command. |
| For thin devices, initialize monitoring only for thin pools not thin volumes. |
| Make conversion from a synced 'mirror' to 'raid1' not cause a full resync. |
| Properly test buffer for unit check in units_to_bytes(). |
| Add configure --with-systemdsystemunitdir. |
| Add check for allocation failure in _build_matcher(). |
| Add check for rimage name allocation failure in _raid_add_images(). |
| Add check for mda_copy failure in _text_pv_setup(). |
| Add check for _mirrored_init_target failure. |
| Add free_orphan_vg. |
| Skip pv/vg_set_fid processing if the fid is same. |
| Check for foreach loop errors in _vg_read_orphans() (2.02.91). |
| Clean error paths for format instance creation (2.02.91). |
| Release vg in error path of _format1_vg_read() instead of just free(). |
| Report allocation failure for allocation of PV structure. |
| Add clvmd init dependency on dlm service when running with new corosync. |
| |
| Version 2.02.91 - 12th February 2012 |
| ==================================== |
| Remove PV-based format instances (which are no longer needed). |
| Link all orphan PVs directly to a per-format global orphan VG. |
| Refactor lvmcache around an internal API. |
| Stop processing lvextend if trying to extend a mirror that is being recovered. |
| Add pool_below_threshold() function to check thin pool percent status. |
| Fix test for snap percent for failing merge when removing LV. |
| Switch int to void return for str_list_del(). |
| Fix error path handling in _build_desc(). |
| Add range test for device number in _scan_proc_dev(). |
| Use signed long for sysconf() call in cmirrord. |
| Do not write in front of log buffer in print_log(). |
| Add boundary test for number of mirror devs and logs. |
| Check that whole locking_dir fits _lock_dir buffer in init_file_locking(). |
| Use list functions for label_exit(). |
| Ensure strncpy() function always ends with '\0'. |
| Set status in _fsadm_cmd() for error path. |
| Add missing deps for lvm2api for rebuild when lvm-internal is changed. |
| Fix resource leaks for failing allocation of formats (lvm1/2,pool). |
| Release allocated resources in error path for composite_filter_create(). |
| Do not use lstat() results when failed in _rm_link(). |
| Remove a "waiting for another thread" log message from dmeventd plugins. |
| |
| Version 2.02.90 - 1st February 2012 |
| =================================== |
| sync_local_dev_names before (re)activating mirror log for initialisation. |
| Disable partial activation for thin LVs and LVs with all missing segments. |
| Do not print warning for pv_min_size between 512KB and 2MB. |
| Clean up systemd unit ordering and requirements. |
| Fix lcov reports when srcdir != builddir. |
| Allow ALLOC_NORMAL to track reserved extents for log and data on same PV. |
| Automatically detect whether corosync clvmd needs to use confdb or cmap. |
| Fix data% report for thin volume used as origin for non-thin snapshot. |
| |
| Version 2.02.89 - 26th January 2012 |
| =================================== |
| Add missing check for uname result in clvmd TEST processing. |
| Fix memleak in target_version() error path (unsupported LIST_VERSIONS). |
| Limit data_alignment and data_alignment_offset to 32bit values. |
| Check for correctness of uint64 dev_size value in format_text. |
| Thin pools have segment fields thin_count, zero, transaction_id. |
| Add data_percent and metadata_percent for thin pools to lvs -v. |
| Add data_lv & metadata_lv fields to lvs for thin pools. |
| Add data_percent & pool_lv fields to lvs for thin volumes. |
| Rename origin_only parm to use_layer for lv_info and use with thin LVs. |
| Add lv_thin_pool_transaction_id to read the transaction_id value. |
| Use {suspend,resume}_origin_only when up-converting RAID, as mirrors do. |
| Always add RAID metadata LVs to deptree (even when origin_only is set). |
| Change exclusive LV activation logic to try local node before remote nodes. |
| Add CLVMD_FLAG_REMOTE to skip processing on local node. |
| Prompt if request is made to remove a snapshot whose "Merge failed". |
| Allow removal of an invalid snapshot that was to be merged on next activation. |
| Don't allow a user to merge an invalid snapshot. |
| Use m and M lv_attr to indicate that a snapshot merge failed in lvs. |
| Differentiate between snapshot status of "Invalid" and "Merge failed". |
| Report snapshot usage percent of origin volume when a snapshot is merging. |
| Require global/lvdisplay_shows_full_device_path for (bogus) lvm1-style paths. |
| Do not report linear segtype for non-striped targets. |
| Record creation host & time for each LV and report as lv_time & lv_host. |
| Make error message hit when preallocated memlock memory exceeded clearer. |
| Use R lv_attr to indicate read-only activation of non-read-only device in lvs. |
| Show read-only activation override in lvdisplay & add 4 to perms in -c. |
| Add activation/read_only_volume_list to override LV permission in metadata. |
| Give priority to emcpower devices with duplicate PVIDs. |
| Add check for error in _adjust_policy_params() (lvextend --use-policies). |
| Round specified percentages upwards (%LV, %VG...) when resizing LVs. |
| Use dmeventd_lvm2_command in dmeventd plugins snapshot, raid, mirror. |
| Add helper dmeventd_lvm2_command() to libdevmapper-event-lvm2 library. |
| Update documentation for dmeventd. |
| Remove unnecessary stat before opening device in dev_open_flags. |
| Reduce number of lstat calls when selecting device alias. |
| Add _dev_init to initialize common struct device members. |
| Always zalloc struct device during initialization. |
| Fix missing thread list manipulation protection in dmeventd. |
| Do not derefence lv pointer in _percent_run() function before NULL check. |
| Allow empty strings for description and creation_host config fields. |
| Issue deprecation warning when removing last lvm1-format snapshot. |
| Reinstate support for snapshot removal with lvm1 format. (2.02.86) |
| Add policy-based automated repair of RAID logical volumes. |
| Don't allow two images to be split and tracked from a RAID LV at one time. |
| Don't allow size change of RAID LV that is tracking changes for a split image. |
| Don't allow size change of RAID sub-LVs independently. |
| Don't allow name change of RAID LV that is tracking changes for a split image. |
| Do not allow users to change the name of RAID sub-LVs independently. |
| Do not allow users to change permissions on RAID sub-LVs. |
| Allow lvconvert to replace specified devices in a RAID array. |
| Add activation/use_linear_target enabled by default. |
| Use gcc warning options only with .c to .o compilation. |
| Move y/n prompts to stderr and repeat if response has both 'n' and 'y'. |
| Replace the unit testing framework with CUnit (--enable-testing). |
| Fix dmeventd snapshot monitoring when multiple extensions were involved. |
| Don't ignore configure --mandir and --infodir. |
| Drop pool memory allocated within lv_has_target_type(). |
| Reduce stack allocation of some PATH_MAX sized char buffers. |
| Unlock memory before writing metadata. |
| Add query before removing snapshots when inactive snapshot origin is removed. |
| Allow changing availability state of snapshots. |
| Skip non-virtual snapshots for availability change for lvchange with vg name. |
| Skip adjusting mirror region size unless mirror or raid. |
| Reorder prompt conditions for removal of active volumes. |
| Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag.(2.02.86) |
| Fix --enable-static_link unless using --enable-dmeventd / --enable-udev_sync. |
| Move gentoo MAKEDEV to /sbin in lvm2create_initrd. |
| Add filter to avoid scan of device if it is part of active multipath. |
| Add missing default $LVM_VG_NAME usage for snapshots. |
| Avoid extent_count overflow with lvextend. |
| Add missing lvrename mirrored log recursion in for_each_sub_lv. |
| Improve lv_extend stack reporting. |
| Increase virtual segment size instead of creating multiple segment list. |
| Add last_seg(lv) internal function. |
| Support empty string for log/prefix. |
| Disallow mirrored logs for cluster mirrors. (2.02.72) |
| Don't print char type[8] as a plain string in pvck PV type. |
| Use vg memory pool implicitly for vg read. |
| Always use vg memory pool for allocated lv segment. |
| Remove extra 4kB buffer allocated on stack in print_log(). |
| Make move_lv_segment non-static function and use dm_list function. |
| Pass exclusive LV locks to all nodes in the cluster. |
| Improve lvcreate chunksize man page description. |
| Improve man page style for lvcreate & lvs. |
| Avoid recursive calls to dmeventd in its LVM plugins. |
| Log dev name now returned to kernel for registering during cmirror CTR. |
| Fix lv_info open_count test for disabled verify_udev_operations. (2.02.86) |
| Simplify code for lvm worker thread in clvmd. |
| Use pthread_barrier to synchronize clvmd threads at startup. |
| Limit clvmd's thread size to 128KiB and ignore activation/reserved_stack. |
| Reduce default preallocated stack size to 64KiB. |
| Add check for access through NULL pointer when refresh_filter() fails. |
| Use pthread condition for SINGLENODE lock implementation. |
| Improve backtrace reporting for some dev_manager_ functions. |
| Change message severity to log_warn when symlink creation fails. |
| Add ability to convert mirror segtype to RAID1 segtype. |
| Add ability to convert from linear to RAID1. |
| Add ability to extend mirrors with '--nosync' option. |
| Fix splitmirror LV names to maintain consistent state in a cluster. |
| Apply appropriate udev flags when suspending/resuming mirror sub-LVs. |
| Fix vgsplit to handle mirrored logs. |
| Clarify multi-name device filter pattern matching explanation in lvm.conf. |
| Introduce revert_lv for better pvmove cleanup. |
| Replace incomplete pvmove activation failure recovery code with a message. |
| Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely. |
| Change suspend_lvs to call vg_revert internally. |
| Change vg_revert to void and remove superfluous calls after failed vg_commit. |
| Use execvp for CLVMD restart to preserve environment settings. |
| Restart CLVMD with same cluster manager. |
| Fix log_error() usage in raid and unknown segtype initialisation. |
| Improve testing Makefile. |
| Fix install_ocf make target when srcdir != builddir. (2.02.80) |
| Support env vars LVM_CLVMD_BINARY and LVM_BINARY in clvmd. |
| Fix restart of clvmd (preserve exlusive locks). (2.02.64) |
| Add 'Volume Type' lv_attr characters for RAID and RAID_IMAGE. |
| Add activation/retry_deactivation to lvm.conf to retry deactivation of an LV. |
| Replace open_count check with holders/mounted_fs check on lvremove path. |
| Disallow the creation of mirrors (mirror or raid1 segtype) with only one leg. |
| Cleanup restart clvmd code (no memory allocation, debug print passed args). |
| Add all exclusive locks to clvmd restart option args. |
| Always send the whole clvmd packet header in refresh commands. |
| Add missing error checks for some system calls in cmirrord. |
| Add missing log_error() to lvresize command when fsadm tool fails. |
| Add support for DM_DEV_DIR device path into fsadm script. |
| Support different PATH setting for fsadm script testing. |
| Surround all executed commands with quotes in fsadm script. |
| Fix missing '$' in test for content of "$LVM" in fsadm script. |
| Move debug message in exec_cmd after sync_local_dev_names. |
| Fix clvmd processing of invalid request on local socket. |
| Fix command line option decoding. |
| Reset LV status when unlinking LV from VG. |
| Fix overly-strict extent-count divisibility requirements for striped mirrors. |
| Fix rounding direction in lvresize when reducing volume size. |
| Fix possible overflow of size if %FREE or %VG is used. |
| Fix vgchange activation of snapshot with virtual origin. |
| Activate virtual snapshot origin exclusively (only on local node in cluster). |
| Fix lv_mirror_count to handle mirrored stripes properly. |
| Fix failure to down-convert a mirror to linear due to udev "dev open" conflict |
| Fix mirrored log creation when PE size is small: use log_size >= region_size. |
| Fix log size calculation when only a log is being added to a mirror. |
| Add 7th lv_attr char to show the related kernel target. |
| Terminate pv_attr field correctly. (2.02.86) |
| Fix 'not not' typo in pvcreate man page. |
| Improve man page style for fsadm, lvreduce, lvremove, lvrename & lvresize. |
| Support break for vgchange and vgrefresh operation. |
| Switch int to unsigned type for pvmetadatacopies for pv_create(). |
| Replace :space: with [\t ] for awk in vgimportclone (not widely supported). |
| Begin using 64-bit status field flags. |
| Detect sscanf recovering_region input error in cmirrord pull_state(). |
| Fix error path bitmap leak in cmirrord import_checkpoint(). |
| Log unlink() error in cmirrord remove_lockfile(). |
| Remove incorrect requirement for -j or -m from lvchange error message. |
| Fix unsafe table load when splitting off smaller mirror from a larger one. |
| Use size_t return type for text_vg_export_raw() and export_vg_to_buffer(). |
| Add configure --enable-lvmetad for building the (experimental) LVMetaD. |
| Fix resource leak when strdup fails in _get_device_status() (2.02.85). |
| Directly allocate buffer memory in a pvck scan instead of using a mempool. |
| Add configure --with-thin for segtypes "thin" and "thin_pool". |
| Fix raid shared lib segtype registration (2.02.87). |
| |
| Version 2.02.88 - 19th August 2011 |
| ================================== |
| Remove incorrect 'Breaking' error message from allocation code. (2.02.87) |
| Add lvconvert --merge support for raid1 devices split with --trackchanges. |
| Support lvconvert of -m1 raid1 devices to a higher number. |
| Add --trackchanges support to lvconvert --splitmirrors option for raid1. |
| Support splitting off a single raid1 rimage in lvconvert --splitmirrors. |
| Use sync_local_dev_names when reducing number of raid rimages in lvconvert. |
| Add -V as short form of --virtualsize in lvcreate. |
| Fix make clean not to remove Makefile. (2.02.87) |
| |
| Version 2.02.87 - 12th August 2011 |
| ================================== |
| Fix make distclean to remove stray dmeventd and exported symbols files. |
| Add global/detect_internal_vg_cache_corruption to lvm.conf. |
| Use memory pool locking to check for corruption of internal VG structs. |
| Cache and share generated VG structs. |
| Fix possible format instance memory leaks and premature releases in _vg_read. |
| Suppress locking error messages in monitoring init scripts. |
| If pipe in clvmd fails return busy instead of using uninitialised descriptors. |
| Add ability to reduce the number of mirrors in raid1 arrays to lvconvert. |
| Add dmeventd plugin for raid. |
| Replace free_vg with release_vg and move it to vg.c. |
| Remove INCONSISTENT_VG flag from the code. |
| Remove lock from cache in _lock_vol even if unlock fails. |
| Initialise clvmd locks before lvm context to avoid open descriptor leaks. |
| Remove obsolete gulm clvmd cluster locking support. |
| Suppress low-level locking errors and warnings while using --sysinit. |
| Remove unused inconsistent_seqno variable in _vg_read(). |
| Remove meaningless const type qualifiers on cast type. |
| Add test for fcntl error in singlenode client code. |
| Remove --force option from lvrename manpage. |
| Add global/mirror_segtype_default to pick md raid or dm mirror as default. |
| Add configure --with-raid for new segtype 'raid' for MD RAID 1/4/5/6 support. |
| Change DEFAULT_UDEV_SYNC to 1 so udev_sync is used if there is no config file. |
| Add systemd unit file to provide lvm2 monitoring. |
| Compare file size (as well as timestamp) to detect changed config file. |
| |
| Version 2.02.86 - 8th July 2011 |
| =============================== |
| Remove unnecessary warning in pvcreate for MD linear devices. |
| Move snapshot removal activation logic into lib/activate. |
| Cope with a PV only discovered missing when creating deptree. |
| Abort operation if dm_tree_node_add_target_area fails. |
| Add activation/checks to lvm.conf to perform additional ioctl validation. |
| Always preload on suspend, even if no metadata changed (lvchange --refresh). |
| When suspending, automatically preload newly-visible existing LVs. |
| Teardown any stray devices with $COMMON_PREFIX during test runs. |
| Reinstate correct permissions when creating mirrors. [2.02.85] |
| Append 'm' attribute to pv_attr for missing PVs. |
| Annotate CLVMD_CMD_SYNC_NAMES in decode_cmd. |
| Remove enforcement of udev verification when using non-standard /dev location. |
| Keep an exclusive mirror non-clustered if reloaded e.g. during conversion. |
| Reject allocation if number of extents is not divisible by area count. |
| Fix cluster mirror creation to work with new mirror allocation algorithm. |
| Ignore activation/verify_udev_operations if dm kernel driver vsn < 4.18. |
| Add activation/verify_udev_operations to lvm.conf, disabled by default. |
| Call vg_mark_partial_lvs() before VG structure is returned from the cache. |
| Remove unused internal flag ACTIVATE_EXCL from the code. |
| Remove useless test of ACTIVATE_EXCL in lv_add_mirrors() clustered code path. |
| Add lv_activate_opts structure for activation (replacing activation flags). |
| Ignore inconsistent pre-commit metadata on MISSING_PV devs while activating. |
| Add proper udev library context initialization and finalization to liblvm. |
| Fix last snapshot removal to avoid table reload while a device is suspended. |
| Use dm_get_suspended_counter in replacement critical_section logic. |
| Downgrade critical_section errors to debug level until it is moved to libdm. |
| Fix ignored background polling default in vgchange -ay. |
| Fix pvmove activation sequences to avoid trapped I/O with multiple LVs. |
| Annotate critical section debug messages. |
| Fix reduction of mirrors with striped segments to always align to stripe size. |
| Validate mirror segments size. |
| Include lvmetad development code in tree. |
| Fix extent rounding for striped volumes never to reduce more than requested. |
| Fix create_temp_name to replace any '/' found in the hostname with '?'. |
| Always use append to file in lvmdump. selinux policy may ban file truncation. |
| Propagate test mode to clvmd to skip activation and changes to held locks. |
| Defer writing PV labels until vg_write. |
| Store label_sector only in struct physical_volume. |
| Permit --available with lvcreate so non-snapshot LVs need not be activated. |
| Report sector containing label in verbose message. |
| Clarify error message when unable to convert an LV into a snapshot of an LV. |
| Add and use dev_open_readonly and variations. |
| Do not log a superfluous stack message when the lv is properly processed. |
| Do not issue an error message when unable to remove .cache on read-only fs. |
| Avoid memlock size mismatch by preallocating stdio line buffers. |
| Rewrite vgreduce --removemissing --force to share lvconvert code. |
| Reorganize lvconvert --repair code to allow reuse. |
| |
| Version 2.02.85 - 29th April 2011 |
| ================================= |
| Add new obtain_device_list_from_udev setting to lvm.conf. |
| Obtain device list from udev by default if LVM2 is compiled with udev support. |
| Add test for vgimportclone and querying of vgnames with duplicate pvs. |
| Avoid use of released memory when duplicate PV is found. |
| Add "devices/issue_discards" to lvm.conf. |
| Issue discards on lvremove and lvreduce etc. if enabled and supported. |
| Add seg_pe_ranges and devices fields to liblvm. |
| Fix incorrect tests for dm_snprintf() failure. |
| Fix some unmatching sign comparation gcc warnings in the code. |
| Support lv_extend() on empty LVs. |
| Avoid regenerating cache content when exported VG buffer is unchanged. |
| Extend the set of memory regions that are not locked to memory. |
| Workaround some problems when compiled for valgrind memcheck. |
| Support controlled quit of the lvm_thread_fn function in clvmd. |
| Fix reading of unallocated memory in lvm1 format import function. |
| Replace several strncmp() calls with id_equal(). |
| Fix lvmcache_info transfer to orphan_vginfo in _lvmcache_update_vgname(). |
| Fix -Wold-style-definition gcc warnings. |
| Rename MIRROR_NOTSYNCED to LV_NOTSYNCED. |
| Fix _move_lv_segments to handle empty LVs. |
| Fixes for lvconvert (including --repair) of temporary mirror stacks. |
| Avoid potential loop when removing mirror images. |
| Fix mirror removal always to take account of preferences as to which. |
| Fix MIRRORED flag usage. |
| Remove error messages issued by device_is_usable when run as non-root. |
| Add missing \0 for grown debug object in _bitset_with_random_bits(). |
| Fix allocation of system_id buffer in volume_group structure. |
| Fix readlink usage inside get_primary_dev(). |
| Use format instance mempool where possible and adequate. |
| Call destroy_instance for any PVs found in VG structure during vg_free call. |
| Add new free_pv_fid fn and use it throughout to free all attached fids. |
| Use only vg_set_fid and new pv_set_fid fn to assign the format instance. |
| Make create_text_context fn static and move it inside create_instance fn. |
| Add mem and ref_count fields to struct format_instance for own mempool use. |
| Use new alloc_fid fn for common format instance initialisation. |
| Optimise _get_token() and _eat_space(). |
| Add _lv_postorder_vg() to improve efficiency for all LVs in VG. |
| Add gdbinit script for debugging. |
| Use hash tables to speedup string search in vg_validate(). |
| Refactor allocation of VG structure adding alloc_vg(). |
| Avoid possible endless loop in _free_vginfo when 4 or more VGs have same name. |
| Use empty string instead of /dev// for LV path when there's no VG. |
| Don't allocate unused VG mempool in _pvsegs_sub_single. |
| Do not send uninitialised bytes in local clvmd messages. |
| Support --help option for clvmd and return error for unknown option. |
| Avoid reading freed memory when printing LV segment type. |
| Fix syslog initialisation in clvmd to respect lvm.conf setting. |
| Fix possible overflow in maximum stripe size and physical extent size. |
| Improve pvremove error message when PV belongs to a VG. |
| Extend normal policy to allow mirror logs on same PVs as images if necessary. |
| Improve cling policy to recognise PVs already used during the transaction. |
| Improve normal allocation algorithm to include clinging to existing areas. |
| Add allocation/maximise_cling & mirror_logs_require_separate_pvs to lvm.conf. |
| Adapt metadata balancing code to work with metadata handling changes. |
| Add old_id field to physical_volume and fix pvchange -u for recent changes. |
| Allow pvresize on a PV with two metadata areas. |
| Change pvcreate to use new metadata handling interface. |
| Restructure existing pv_setup and pv_write and add pv_initialise. |
| Add internal interface to support adding and removing metadata areas. |
| Allow internal indexing of metadata areas (PV id + mda order). |
| Generalise internal format_instance infrastrusture for PV and VG use. |
| Handle decimal digits with --units instead of ignoring them silently. |
| Fix remaining warnings and compile with -Wpointer-arith. |
| Fix gcc warnings for unused variables and const casts. |
| Add stack backtraces for error paths in process_each_lv(). |
| Temporarily suppress error from calling yes_no_prompt while locks are held. |
| Replace void* with char* arithmetic in _text_write, _text_read & send_message. |
| Fix compilation without DEVMAPPER_SUPPORT. |
| Remove fs_unlock() from lv_suspend error path. |
| Allow memory to stay locked between leaving and re-entering critical sections. |
| Rename memlock to critical_section throughout. |
| Make pv_min_size configurable and increase to 2048KB to exclude floppy drives. |
| Add find_config_tree_int64 to read 64-bit ints from config. |
| Ensure resuming exclusive cluster mirror continues to use local mirror target. |
| Clear temporary postorder LV status flags to allow re-use with same LV struct. |
| Remove invalid snapshot umount mesg which floods syslog from dmeventd plugin. |
| Add extended examples to pvmove man page. |
| Support LVM_TEST_DEVDIR env var for private /dev during testing. |
| |
| Version 2.02.84 - 9th February 2011 |
| =================================== |
| Fix CRC32 calculation on big endian CPU (2.02.75). |
| |
| Version 2.02.83 - 4th February 2011 |
| =================================== |
| Allow exclusive activation of snapshots in a cluster. |
| Leave EX lock unchanged when suspending a device in clvmd. |
| Use sync_dev_names in unlock_vg macro for cluster-wide dev name sync. |
| Fix fs operation stack handling when multiple operations on same device. |
| Increase hash table size to 1024 lv names and 64 pv uuids. |
| Remove fs_unlock() from lv_resume path. |
| Fix wipe size when setting up mda. |
| Remove unneeded checks for open_count in lv_info(). |
| Synchronize with udev before checking open_count in lv_info(). |
| Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested. |
| Add "dmsetup ls --tree" output to lvmdump. |
| Fix udev synchronization with no-locking --sysinit (2.02.80). |
| Improve man page style consistency for pvcreate, pvremove, pvresize, pvscan. |
| Avoid rebuilding of uuid validation table. |
| Improve lvcreate error text from insufficient "extents" to "free space". |
| Always use O_DIRECT when opening block devices to check for partitioning. |
| |
| Version 2.02.82 - 24th January 2011 |
| =================================== |
| Bring lvscan man page up-to-date. |
| Fix lvchange --test to exit cleanly. |
| Add change_tag to toollib. |
| Allow multiple pvchange command line options to be specified together. |
| Do not fail pvmove polling if another process cleaned up first. |
| Avoid clvmd incrementing dlm lockspace reference count more than once. |
| Add -f (don't fork) option to clvmd and fix clvmd -d<num> description. |
| |
| Version 2.02.81 - 17th January 2011 |
| =================================== |
| Do not scan devices in dev_reset_error_count(). |
| Skip unnecessary LOCK_NULL unlock call during volume deactivation. |
| Skip fs_unlock when calling exec_cmd within activation code (for modprobe). |
| Extend exec_cmd params to specify when device sync (fs_unlock) is needed. |
| Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80) |
| Introduce sync_local_dev_names and CLVMD_CMD_SYNC_NAMES to issue fs_unlock. |
| Accept fusion fio in device type filter. |
| Add ability to convert mirror log type from disk to mirrored. |
| |
| Version 2.02.80 - 10th January 2011 |
| =================================== |
| Use same dm cookie for consecutive dm ops in same VG to reduce udev waits. |
| Speed up command processing by caching resolved config tree. |
| Pass config_tree to renamed function import_vg_from_config_tree(). |
| Detect NULL handle in get_property(). |
| Fix superfluous /usr in ocf_scriptdir instalation path. |
| Add --with-ocfdir configurable option. |
| Add aclocal.m4 (for pkgconfig). |
| Fix memory leak in persistent filter creation error path. |
| Check for errors setting up dm_task struct in _setup_task(). |
| Fail polldaemon creation when lvmcache_init() fails. |
| Return PERCENT_INVALID for errors in _copy_percent() and _snap_percent(). |
| Remove some unused variables. |
| Improve general lvconvert man page description. |
| Return 0 from cmirrord initscript 'start' if daemon is already running. |
| Fix wrongly paired unlocking of VG_GLOBAL in pvchange. (2.02.66) |
| Add backtraces for backup and backup_remove fail paths. |
| Detect errors from dm_task_set calls in _get_device_info (dmeventd). |
| Add backtraces for archive and backup_locally in check_current_backup(). |
| Fix memory leak in debug mode of restart_clvmd() error path. |
| Log error message for pthread_join() failure in clvmd. |
| |
| Version 2.02.79 - 20th December 2010 |
| ==================================== |
| Remove some unused variables. |
| Add missing test for reallocation error in _find_parallel_space(). |
| Add checks for allocation errors in config node cloning. |
| Fix error path if regex engine cannot be created in _build_matcher(). |
| Use char* arithmetic in target_version(), _process_all() & _targets(). |
| Fixing const cast gcc warnings in the code. |
| Check read() and close() results in _get_cmdline(). |
| Add const for struct config_node usage. |
| Fix NULL pointer check in error path in clvmd do_command(). (2.02.78) |
| Fix device.c #include to ensure 64-bit fopen64 use. (2.02.51) |
| Add copy_percent and snap_percent to liblvm. |
| Enhance vg_validate to ensure integrity of LV and PV structs referenced. |
| Enhance vg_validate to check composition of pvmove LVs. |
| Create /var/run/lvm directory during clvmd initialisation if missing. |
| Use new dm_prepare_selinux_context instead of dm_set_selinux_context. |
| Avoid revalidating the label cache immediately after scanning. |
| Support scanning for a single VG in independent mdas. |
| Don't skip full scan when independent mdas are present even if memlock is set. |
| Set cmd->independent_metadata_areas if metadata/dirs or disk_areas in use. |
| Cope better with an undefined target_percent operation in _percent_run. |
| Avoid writing to freed memory in vg_release and rename to free_vg. (2.02.78) |
| |
| Version 2.02.78 - 6th December 2010 |
| =================================== |
| Abort if segment tag allocation fails in pool format _add_stripe_seg. |
| Abort in _mirrored_transient_status if referenced log/image LV is not active. |
| Add backtraces for dev_set() and dev_close_immediate() errors in set_lv(). |
| Log any unlink() error in clvmd remove_lockfile(). |
| Log any pipe write() or close() errors in clvmd child_init_signal(). |
| Detect if orphan vginfo was lost from cache before _lvmcache_update_vgname(). |
| Do a full rescan if some device is missing in lvm1 format read_pvs_in_vg. |
| Add missing check that dm_pool_create succeeded in write_config_node(). |
| Use dm_snprintf in clvmd-command.c to ensure an overlong buffer is truncated. |
| Don't write to buffer if its reallocation failed in clvmd do_command(). |
| Switch from float to fixed point percentage handling. |
| Avoid misleading missing PV warnings in vgextend --restoremissing. |
| Fix memory leak when VG allocation policy in metadata is invalid. |
| Ignore unrecognised allocation policy found in metadata instead of aborting. |
| Factor out tag printing into _out_tags and avoid leaking string buffer. |
| Remove some unused variables & assignments. |
| Add missing vg_release calls in _vg_read_by_vgid. |
| Fix debug logging of derived flag LCK_CACHE in clvmd. |
| Fix test for no system_dir in _init_backup(). |
| Disallow lvconvert ops that both allocate & free supplied PEs in a single cmd. |
| Fix liblvm seg_size to give bytes not sectors. |
| Add functions to look up LV/PV by name/uuid to liblvm. |
| Free cmd_context if fallback to LVM1 fails in lvm2_main(). |
| Free device name buffer in dmsetup parse_loop_device_name() error paths. |
| Close format lib if init_format_fn fails in _init_formats(). |
| Don't leave /proc/mounts open after dmeventd snapshot event processing. |
| Fix out-of-scope arg_vgnames use in process_each_lv(). |
| Remove incorrect dm_task_destroy(NULL) from _node_clear_table() error path. |
| Add missing closedir in _rm_blks after removing stray LVM1 VG files. |
| Suppress 'No PV label' message when removing several PVs without mdas. |
| Fix default /etc/lvm permissions to be 0755. (2.02.66) |
| |
| Version 2.02.77 - 22nd November 2010 |
| ==================================== |
| Allocate a pool for dummy VG in _pvsegs_sub_single. |
| Add PV and LV segment types and functions to liblvm. |
| Add set_property functions to liblvm. |
| Remove tag length restriction and allow / = ! : # & characters. |
| Support repetition of --addtag and --deltag arguments. |
| Add infrastructure for specific cmdline arguments to be repeated in groups. |
| Split the_args cmdline arguments and values into arg_props and arg_values. |
| Fix fsadm no longer to require '-f' to resize an unmounted filesystem. |
| Fix fsadm to detect mounted filesystems on older systems. (2.0.75) |
| Extend cling allocation policy to recognise PV tags (cling_by_tags). |
| Add allocation/cling_tag_list to lvm.conf. |
| Regenerate configure with 'autoreconf' for --enable-ocf. (2.02.76) |
| |
| Version 2.02.76 - 8th November 2010 |
| =================================== |
| Clarify error messages when activation fails due to activation filter use. |
| Add pacemaker script VolumeGroup.ocf with configure --enable-ocf. |
| Import make.tmpl into include/ Makefile. |
| Fix handling of online filesystem resize (using new fsadm return code). |
| Add DIAGNOSTICS section to fsadm man page. |
| Modify fsadm to return different status code for check of mounted filesystem. |
| Update VG metadata only once in vgchange when making multiple changes. |
| Allow independent vgchange arguments to be used together. |
| Automatically unmount invalidated snapshots in dmeventd. |
| Suppress some superfluous messages from clang static analysis. |
| Fix a deadlock caused by double close in clvmd. |
| Fix NULL pointer dereference on too-large MDA error path in _vg_read_raw_area. |
| Use static for internal _align_chunk() and _new_chunk() from pool-fast.c. |
| Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange. |
| Add lvm2app functions to query any pv, vg, or lv property / report field. |
| |
| Version 2.02.75 - 25th October 2010 |
| =================================== |
| Annotate more variables and parameters as const. |
| Fix missing variable initialization in cluster_send() function from cmirrord. |
| Fix pointer for VG name in _pv_resize_single error code path. |
| Fix warning for changed alignment requirements for dmeventd read/write func. |
| Add global/metadata_read_only to use unrepaired metadata in read-only cmds. |
| Don't take write lock in vgchange --refresh, --poll or --monitor. |
| Skip dm devices in scan if they contain only error targets or are empty. |
| Fix strict-aliasing compile warning in partition table scanning. |
| Fix pthread mutex usage deadlock in clvmd. |
| Automatically extend snapshots with dmeventd according to policy in lvm.conf. |
| Add activation/snapshot_autoextend_threshold/percent to lvm.conf. |
| Fix liblvm2cmd link order to support --as-needed. |
| Remove dependency on libm by replacing floor() by an integer-based algorithm. |
| Fix hang when repairing a mirrored-log that had both devs fail. |
| Convey need for snapshot-merge target in lvconvert error message and man page. |
| Add devices/disable_after_error_count config to limit access to failing devs. |
| Give correct error message when creating a too-small snapshot. |
| Implement vgextend --restoremissing to reinstate missing devs that return. |
| Make lvconvert respect --yes and --force when converting an inactive log. |
| Refactor and add 'get' functions for lv properties/fields. |
| Update script for fsadm testing. |
| Better support of noninteractive shell execution of fsadm. |
| Fix usage of --yes flag for ReiserFS resize in fsadm. |
| Fix detection of mounted filesystems for fsadm when udev is used. |
| Fix assignment of default value to LVM variable in fsadm. |
| Fix support for --yes flag for fsadm. |
| Do not execute lvresize from fsadm --dry-run. |
| Fix fsadm return error code from user's break action. |
| Allow CC to be overridden at build time (for 'scan-build make'). |
| Rename 'flags' to 'status' in struct metadata_area. |
| Avoid segfault by limiting partial mode for lvm1 metadata. (2.02.74) |
| Use dm_zalloc and dm_pool_zalloc throughout. |
| Add pv_get_property and create generic internal _get_property function. |
| Add 'get' functions for pv and vg properties/fields. |
| Make generic GET_*_PROPERTY_FN macros with secondary macro for vg, pv & lv. |
| Add tags_format_and_copy() common function and call from _tags_disp. |
| Add id_format_and_copy() common function and call from _uuid_disp. |
| Refactor report.c '*_disp' functions to call supporting functions. |
| Move parts of metadata*.[ch] into new {pv|vg|lv}.[ch] files. |
| Fix vg_read memory leak with directory-based metadata. |
| Fix memory leak of config_tree in reinitialization code path. |
| Fix pool destruction order in dmeventd_lvm2_exit() to avoid leak debug mesg. |
| Read whole /proc/self/maps file before working with maps entries. |
| Speed up unquoting of quoted double quotes and backslashes. |
| Speed up CRC32 calculations by using a larger lookup table. |
| |
| Version 2.02.74 - 24th September 2010 |
| ===================================== |
| Allow : and @ to be escaped with \ in device names of PVs. |
| Replace alloca with dm_malloc in _aligned_io to avoid stack corruption. |
| Fix partial mode operations for lvm1 metadata format. |
| Track recursive filter iteration to avoid refreshing while in use. (2.02.56) |
| Revert to old glibc vsnprintf behaviour in emit_to_buffer() to catch overflow. |
| Allocate buffer for metadata tags dynamically to remove 4k limit. |
| Add random suffix to archive file names to prevent races when being created. |
| Reinitialize archive and backup handling on toolcontext refresh. |
| Make poll_mirror_progress report PROGRESS_CHECK_FAILED if LV is not a mirror. |
| Like mirrors, don't scan origins if ignore_suspended_devices() is set. |
| Fix return type qualifier to avoid compiler warning. (2.02.69) |
| Automatically generate LSB Requires-Start for clvmd init script. |
| Fix return code of pvmove --abort PV. |
| Fix pvmove --abort to remove even for empty pvmove LV. |
| Add configure --with-default-data-alignment. |
| Update heuristic used for default and detected data alignment. |
| Add "devices/default_data_alignment" to lvm.conf. |
| Add implementation for simple numeric 'get' property functions. |
| Define GET_NUM_PROPERTY_FN macro to simplify numeric property 'get' function |
| Add properties.[ch] to lib/report using columns.h. |
| Add macro definitions to report infrastructure for character array length. |
| Remove explicit double quotes from columns.h 'id' entries. |
| Add 'flags' field to columns.h and define FIELD_MODIFIABLE. |
| Add vg_mda_size and vg_mda_free functions. |
| Simplify MD/swap signature detection in pvcreate and allow aborting. |
| Allow --yes to be used without --force mode. |
| Fix file descriptor leak in swap signature detection error path. |
| Detect and allow abort in pvcreate if LUKS signature is detected. |
| Always mask lock flags correctly when checking for LCK_WRITE. |
| |
| Version 2.02.73 - 18th August 2010 |
| ================================== |
| Fix potential for corruption during cluster mirror device failure. |
| Use 'SINGLENODE' instead of 'dead' in clvmd singlenode messages. |
| Ignore snapshots when performing mirror recovery beneath an origin. |
| Pass LCK_ORIGIN_ONLY flag around cluster. |
| Add suspend_lv_origin and resume_lv_origin using LCK_ORIGIN_ONLY. |
| Allow internal suspend and resume of origin without its snapshots. |
| Fix dev_manager_transient to access -real device not snapshot-origin. |
| Monitor origin -real device below snapshot instead of overlay device. |
| Don't really change monitoring status when in test mode. |
| Fix some exit statuses when starting/stopping monitoring fails. |
| Enable snapshot monitoring by default when dmeventd is enabled. |
| Move cloned libdevmapper-event client code from segments into lib/activate. |
| Fix 'lvconvert --splitmirrors' in cluster operation. |
| Fix clvmd init script exit code to return 4 when executed as non-root user. |
| Change default alignment of pe_start to 1MB. |
| Add --norestorefile option to pvcreate. |
| Require --restorefile when using pvcreate --uuid. |
| Recognise and give preference to md device partitions (blkext major). |
| Never scan internal LVM devices. |
| Don't ignore user-specified PVs in split-mirror operations. (2.02.71) |
| Fix data corruption bug in cluster mirrors. |
| Require logical volume(s) to be explicitly named for lvconvert --merge. |
| Avoid changing aligned pe_start as a side-effect of very verbose logging. |
| Use built-in rule for device aliases: block/ < dm- < disk/ < mapper/ < other. |
| Fix const warning in dev_manager_info() and _dev_manager_lv_rmnodes(). |
| Fix const warning in archive_file structure from archive.c. |
| Clean generated files .exported_symbols_generated, example.conf for distclean. |
| Handle failure of all mirrored log devices and all but one mirror leg. |
| Disallow 'mirrored' log type for cluster mirrors. |
| Do not use VPATH in include/Makefile. |
| Fix exported_symbols generation to use standard compiler arguments. |
| Use #include <> not "" in lvm2app.h which gets installed on the system. |
| Make lib and liblvm.device-mapper wait for include file generation. |
| Fix configure to supply DEFAULT_RUN_DIR to Makefiles. |
| Fix allocation of wrong number of mirror logs with 'remove' fault policy. |
| |
| Version 2.02.72 - 28th July 2010 [CVE-2010-2526] |
| ================================================= |
| Change clvmd to communicate with lvm2 via a socket in /var/run/lvm. |
| Return controlled error if clvmd is run by non-root user. |
| Add configure --default-run-dir for /var/run/lvm. |
| Never use clvmd singlenode unless explicitly requested with -Isinglenode. |
| |
| Version 2.02.71 - 28th July 2010 |
| ================================ |
| Document LVM fault handling in doc/lvm_fault_handling.txt. |
| Make vgck warn about missing PVs. |
| Clarify help text for vg_mda_count. |
| Check if cluster log daemon is running before allowing cmirror create. |
| Add unit-tests dir. |
| Add configure --enable-testing and reports and report-generators dirs. |
| Correct LV list order used by lvconvert when splitting a mirror. |
| Check if LV with specified name already exists when splitting a mirror. |
| Fix suspend/resume logic for LVs resulting from splitting a mirror. |
| Update pvcreate, {pv|vg}change, and lvm.conf man pages about metadataignore. |
| Switch cmirrord and clvmd to use dm_create_lockfile. |
| Allow clvmd pidfile to be configurable. |
| Update comments about memory handling in lvm2app.h. |
| Add more verbose messages while checking volume_list and hosttags settings. |
| Add log_error when strdup fails in {vg|lv}_change_tag(). |
| Remove unnecessary includes in liblvm files. |
| Use __attribute__ consistently throughout. |
| Fix redundant declarations and always compile with -Wredundant-decls. |
| Fix possible hang when all mirror images of a mirrored log fail. |
| Pass metadataignore to pv_create, pv_setup, _mda_setup, and add_mda. |
| Init mda->list in mda_copy. |
| Do not log backtrace in valid _lv_resume() code path. |
| Cleanup help strings in configure.in. |
| Prompt if metadataignore with vgextend or pvchange would adjust vg_mda_copies. |
| Adjust vg_mda_copies if metadataignore given with vgextend or pvchange. |
| Adjust auto-metadata repair and caching logic to try to cope with empty mdas. |
| |
| Version 2.02.70 - 6th July 2010 |
| =============================== |
| Remove log directly if all mirror images of a mirrored log fail. |
| Randomly select which mdas to use or ignore. |
| Add some missing standard configure.in checks. |
| Add printf format attributes to yes_no_prompt and fix a caller. |
| Always pass unsuspended dm devices through persistent filter to other filters. |
| Move test for suspended dm devices ahead of other filters. |
| Fix another segfault in clvmd -R if no response from daemon. (2.02.68) |
| Remove superfluous suspended device counter from clvmd. |
| Fix lvm shell crash when input is entirely whitespace. |
| Update partial mode warning message. |
| Preserve memlock balance in clvmd when activation triggers a resume. |
| Restore the removemissing behaviour of lvconvert --repair --use-policies. |
| |
| Version 2.02.69 - 30th June 2010 |
| ================================ |
| Fix vgremove to allow removal of VG with missing PVs. (2.02.52) |
| Add metadata/vgmetadatacopies to lvm.conf. |
| Add --metadataignore to pvcreate and vgextend. |
| Add vg_mda_copies, pv_mda_used_count and vg_mda_used_count to reports. |
| Describe --vgmetadatacopies in lvm.conf and other man pages. |
| Add --[vg]metadatacopies to select number of mdas to use in a VG. |
| Make the metadata ignore bit control read/write metadata areas in a PV. |
| Add pvchange --metadataignore to set or clear a metadata ignore bit. |
| Refactor metadata code to prepare for --metadataignore / --vgmetadatacopies. |
| Ensure region_size of mirrored log does not exceed its full size. |
| Generate liblvm2app exported symbols from header file. |
| Preload libc locale messages to prevent reading it in memory locked state. |
| Fix handling of simultaneous mirror image and mirrored log image failure. |
| |
| Version 2.02.68 - 23rd June 2010 |
| ================================ |
| Fix clvmd initscript status to print only active clustered LVs. |
| Add lv_path to reports to offer full /dev pathname. |
| Fix typo in warning message about missing device with allocated data areas. |
| Add device name and offset to raw_read_mda_header error messages. |
| Honour log argument when down-converting stacked mirror. |
| Sleep to workaround clvmd -S race: socket closed early and server drops cmd. |
| Use early udev synchronisation and update of dev nodes for clustered mirrors. |
| Remove incorrect inclusion of kdev_t.h from cmirrord/functions.h. |
| Add man pages for lvmconf and non-existent lvmsadc and lvmsar tools. |
| Exit successfully when using -o help (but not -o +help) with LVM reports. |
| Do not use internal DLM lock definitions in generic LVM2 clvmd code. |
| Add --force, --nofsck and --resizefs to lvresize/extend/reduce man pages. |
| Fix lvm2cmd example in documentation. |
| Allow use of lvm2app and lvm2cmd headers in C++ code. |
| Remove unused #includes from clvmd files and introduce clvmd-common.h. |
| Move common inclusions to clvmd-common.h. |
| Use #include "" for libdevmapper.h and configure.h throughout tree. |
| Fix LVM_PATH expansion when exec_prefix=NONE. (2.02.67) |
| Fix segfault in clvmd -R if no response from daemon received. |
| |
| Version 2.02.67 - 4th June 2010 |
| =============================== |
| Handle failed restart of clvmd using -S switch properly. |
| Fix clvmd initscript restart command to start clvmd if not yet running. |
| Use built-in absolute paths in clvmd (clvmd restart and PV and LV queries). |
| Require partial option in lvchange --refresh for partial LVs. |
| Do not fail lvm_init() if init_logging() or _init_rand() generates an errno. |
| Don't merge unchanged persistent cache file before dumping if tool scanned. |
| Fix incorrect memory pool deallocation while using vg_read for files. |
| Add --type parameter description to the lvcreate man page. |
| Replace strncmp kernel version number checks with proper ones. |
| Avoid selecting names under /dev/block if there is an alternative. |
| Update clustered log kernel module name to log-userspace for 2.6.31 onwards. |
| Add replicators' LVs to dtree for activation. |
| Supress activation message if there is a missing replicator VG. |
| Fix scripts/relpath.awk to work in mawk |
| Extend lock_vol to check for missing replicator VGs first. |
| Update _process_one_vg and process_each_lv_in_vg to populate cmd_vg. |
| Add cmd_vg structure and associated functions for replicator. |
| Extend _lv_each_dependency() to handle replicator dependencies. |
| Add check_replicator_segment() to catch internal replicator errors. |
| Initial support for replicator metadata. |
| Extend process_each_lv_in_vg() to provide list of failed lvnames. |
| Consistently return ECMD_FAILED if process_each_*lv() is interrupted. |
| |
| Version 2.02.66 - 20th May 2010 |
| =============================== |
| If unable to obtain snapshot percentage leave value blank on reports. |
| Add install_system_dirs and install_initscripts makefile targets. |
| Add configure options for system and locking directories. |
| Generate example.conf so default lvm.conf contents can be configured. |
| Install lvmconf script by default. |
| Remove unnecessary versioned dmeventd plugin symlinks. |
| Add tests for lvm_vgname_from_{pvid|device}. |
| Add lvm2app interfaces to lookup a vgname from a pvid and pvname. |
| Update pvchange to always obtain a vg handle for each pv to process. |
| Add find_vgname_from_{pvname|pvid} functions. |
| Add pvid_from_devname and lvmcache_vgname_from_pvid lvmcache functions. |
| Validate orphan and VG_GLOBAL lock order too. |
| Accept orphan VG names as parameters to lock_vol() and related functions. |
| Use is_orphan_vg in place of hard-coded prefix tests and add is_global_vg. |
| |
| Version 2.02.65 - 17th May 2010 |
| =============================== |
| Fix clvmd init script never to deactivate non-clustered volume groups. |
| Disallow vgchange --clustered if there are active mirrors or snapshots. |
| Introduce lv_is_mirrored. |
| Use /bin/bash for scripts with bashisms. |
| Skip internal lvm devices in scan if ignore_suspended_devices is set. |
| Do not merge old device cache after we run full scan. (2.02.56) |
| Add pkgconfigdir Makefile variable for make install override. |
| Configure pkgconfig udev and selinux dependencies. |
| Switch Libs.private to Requires.private in devmapper.pc and lvm2app.pc. |
| Use pkgconfig Requires.private for devmapper-event.pc. |
| Add libdevmapper to linked libdevmapper-event.so. |
| Link liblvm2cmd.so with libdevmapper-event and libdevmapper. |
| Fix truncated total size displayed by pvscan. |
| Add new --sysinit compound option to vgchange and lvchange. |
| Drop duplicate errors for read failures and missing devices to verbose level. |
| Use $(libdir)/lvm2 with make install_lvm2_plugin. |
| Use $(libdir)/device-mapper with make install_dm_plugin. |
| Add dm_list_splice() function to join two lists together. |
| |
| Version 2.02.64 - 30th April 2010 |
| ================================= |
| Avoid pointless initialisation when the 'version' command is run directly. |
| Fix memory leak for invalid regex pattern input. |
| Display invalid regex pattern for filter configuration in case of error. |
| Remove no-longer-used arg_ptr_value. |
| Fix -M and --type to use strings, not pointers that change on config refresh. |
| Fix lvconvert error message when existing mirrored LV is not found. |
| Set appropriate udev flags for reserved LVs. |
| Disallow the direct removal of a merging snapshot. |
| Don't preload the origin when removing a snapshot whose merge is pending. |
| Disallow the addition of mirror images while a conversion is happening. |
| Disallow primary mirror image removal when mirror is not in-sync. |
| Remove obsolete --name parameter from vgcfgrestore. |
| Add -S command to clvmd to restart the daemon preserving exclusive locks. |
| Increment lvm2app version from 1 to 2 (memory allocation changes). |
| Change lvm2app memory alloc/free for pv/vg/lv properties. |
| Change daemon lock filename from lvm2_monitor to lvm2-monitor for consistency. |
| Install symbolic .so links with relative paths between usrlibdir and libdir. |
| Add awk script relpath.awk to calculate paths for relative symlinks. |
| Use @AWK@ in makefiles. |
| Fix double DESTDIR usage for infodir and mandir. |
| |
| Version 2.02.63 - 14th April 2010 |
| ================================= |
| Rename lvm_dump.sh to lvmdump.sh. |
| Allow incomplete mirror restore in lvconvert --repair upon insufficient space. |
| Do not reset position in metadata ring buffer on vgrename and vgcfgrestore. |
| Allow VGs with active LVs to be renamed. |
| Use UUIDs instead of names while processing event handlers. |
| Only pass visible LVs to tools in cmdline VG name/tag expansions without -a. |
| Use typedefs for toollib process_each functions. |
| Use C locales and use_mlockall for clvmd. |
| Refactor code related to vg->pvs list and add pv->vg link. |
| Mask LCK_HOLD flag in cluster VG locks for backwards compatibility. |
| Add activation/polling_interval to lvm.conf as --interval default. |
| Don't ignore error if resuming any LV fails in resume_lvs. |
| Skip closing persistent filter cache file if open failed. |
| Install .a and .so links into $(usrlibdir). |
| Add --enable-write_install options to install user-writable files. |
| Use INSTALL_PROGRAM/DATA/WDATA target. |
| Switch from using VPATH to vpath in Makefiles. |
| Permit mimage LVs to be striped in lvcreate, lvresize and lvconvert. |
| Fix pvmove allocation to take existing parallel stripes into account. |
| Add pvmove_source_seg to struct lv_segment. |
| Fix incorrect removal of symlinks after LV deactivation fails. |
| Fix is_partitioned_dev not to attempt to reopen device. |
| Fix another thread race in clvmd. |
| Refactor management of vg->pvs list. |
| Fix lcov rules and generate better coverage report. |
| Improve vg_validate to detect some loops in lists. |
| Change most remaining log_error WARNING messages to log_warn. |
| Always use blocking lock for VGs and orphan locks. |
| Allocate all memory for segments from private VG mempool. |
| Return newly allocated PV segment after segment split. |
| Optimise searching PV segments for seeking the most recently-added. |
| Remove vg_validate call when parsing cached metadata. |
| Use hash table of LVs to speed up parsing of text metadata with many LVs. |
| Fix two vg_validate messages, adding whitespace and parentheses. |
| When dmeventd is not forking because of -d flag, don't kill parent process. |
| Fix 'make install' when $(builddir) is different from $(srcdir). |
| Fix dso resource leak in error path of dmeventd. |
| Use C locales and use_mlockall for dmeventd. |
| Fix --alloc contiguous policy only to allocate one set of parallel areas. |
| Do not allow {vg|lv}change --ignoremonitoring if on clustered VG. |
| Improved dependency tracking for dmeventd and liblvm2cmd sources. |
| Improved Makefile rules for distclean and cflow targets. |
| Add ability to create mirrored logs for mirror LVs. |
| Fix clvmd cluster propagation of dmeventd monitoring mode. |
| Allow ALLOC_ANYWHERE to split contiguous areas. |
| Use INTERNAL_ERROR for internal errors throughout tree. |
| Add some assertions to allocation code. |
| Introduce pv_area_used into allocation algorithm and add debug messages. |
| Add activation/monitoring to lvm.conf. |
| Add --monitor and --ignoremonitoring to lvcreate. |
| Allow dynamic extension of array of areas selected as allocation candidates. |
| Export and use only valid cookie value in test suite. |
| Remove const modifier for struct volume_group* from process_each_lv_in_vg(). |
| Don't allow resizing of internal logical volumes. |
| Fix libdevmapper-event pkgconfig version string to match libdevmapper. |
| Avoid scanning all pvs in the system if operating on a device with mdas. |
| Add configure --with-clvmd=singlenode to use clvmd w/o cluster infrastructure. |
| Get stacktrace if testsuite test drops core and lvm was built with debugging. |
| Disable long living process flag in lvm2app. |
| Fix pvcreate device md filter check. |
| Suppress repeated errors about the same missing PV uuids. |
| Bypass full device scans when using internally-cached VG metadata. |
| Only do one full device scan during each read of text format metadata. |
| Remove unnecessary full_scan parameter from get_vgids and get_vgnames calls. |
| Look up missing PVs by uuid not dev_name in _pvs_single to avoid invalid stat. |
| Make find_pv_in_vg_by_uuid() return same type as related functions. |
| Introduce is_missing_pv(). |
| Fix clvmd Makefile to not overwrite LIBS from template definition. |
| |
| Version 2.02.62 - 9th March 2010 |
| ================================ |
| Add use_mlockall and mlock_filter to activation section of lvm.conf. |
| Add default alternative to mlockall using mlock to reduce pinned memory size. |
| Remove -rdynamic from static builds. |
| Update checks for pthread, readline & selinux libs and link only when needed. |
| Introduce makefile vars UDEV_LIBS, DL_LIBS, SELINUX_LIBS, STATIC_LIBS. |
| Introduce makefile vars LVMINTERNAL_LIBS, READLINE_LIBS, PTHREAD_LIBS. |
| Toggle configure help to print --disable-fsadm. |
| Use $() instead of ${} consistently for all Makefile variables. |
| Replace CFLOW_CMD only in make.tmpl and use it as variable elsewhere. |
| Use $(top_builddir) for inclusion of make.tmpl in Makefiles. |
| Fix autoconf warning about ignored datarootdir. |
| Increase AC_PREREQ version to 2.61 (for AC_PROC_SED, AC_PROG_MKDIR_P). |
| Handle misaligned devices that report alignment_offset of -1. |
| Extend core allocation code in preparation for mirrored log areas. |
| Rewrite clvmd init script. |
| Remove lvs_in_vg_activated_by_uuid_only call. |
| No longer fall back to looking up active devices by name if uuid not found. |
| Don't touch /dev in vgmknodes if activation is disabled. |
| Update lvm2app.h Doxygen comments and add lvm2app Doxygen config file. |
| Update nightly tests and lvm2app unit tests to cover tags. |
| Add lvm2app functions lvm_{vg|lv}_{get|add|remove}_tag() functions. |
| Add dm_pool_strdup to allocate and copy memory in tag library function. |
| Refactor vgcreate, vgchange, and lvchange for tag library function. |
| Refactor snapshot-merge deptree and device removal to support info-by-uuid. |
| |
| Version 2.02.61 - 15th February 2010 |
| ==================================== |
| Fix some consts and floating point gcc warnings. |
| Fix dm_report_field_uint64 function to accept 64-bit ints. |
| Change readhead display to use 32-bit -1 const instead of 64-bit. |
| Add LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable. |
| Remove hard-coding that skipped _mimage devices from 11-dm-lvm.rules. |
| Use udev transactions in test suite. |
| Set udev state automatically instead of using LVM_UDEV_DISABLE_CHECKING. |
| Add lvm_pv_get_size, lvm_pv_get_free and lvm_pv_get_dev_size to lvm2app. |
| Change lvm2app to return all sizes in bytes as documented (not sectors). |
| Add 'fail_if_percent_unsupported' arg to _percent and _percent_run. |
| Remove false "failed to find tree node" error when activating merging origin. |
| Exit with success when lvconvert --repair --use-policies performs no action. |
| Accept a list of LVs with 'lvconvert --merge @tag' using process_each_lv. |
| Avoid unnecessary second resync when adding mimage to core-logged mirror. |
| Exclude internal VG names and uuids from lists returned through lvm2app. |
| Add %ORIGIN support to lv{create,extend,reduce,resize} --extents. |
| Add _mda_copy to clone a struct metadata_area. |
| Remove pointless versioned symlinks to dmeventd plugin libraries. |
| Fix dmeventd snapshot plugin build dependency. |
| Make clvmd -V return status zero. |
| Remove unnecessary 'dmsetup resume' following 'dmsetup create' in tests. |
| Fix cmirrord segfault in clog_cpg list processing when converting mirror log. |
| Deactivate temporary pvmove mirror cluster-wide when activating it fails. |
| Always query device by uuid and not name in clvmd. |
| Add missing metadata vg_reverts in pvmove error paths. |
| Unlock shared lock in clvmd if activation calls fail. |
| Return success from dev_manager_info with non-existent uuid if ioctl succeeds. |
| |
| Version 2.02.60 - 23rd January 2010 |
| =================================== |
| Extend cmirrord man page. |
| Sleep before first progress check if pvmove/lvconvert interval has prefix '+'. |
| Default to checking progress before waiting in _wait_for_single_lv. |
| Fix cmirror initscript (including syntax error). |
| Eliminate avoidable ioctls for checking open_count in _add_new_lv_to_dtree. |
| Disable memory debugging if dmeventd is configured. (Not thread-safe.) |
| Fix first log message prefix in syslog for dmeventd plugins. |
| Fix exported symbols names for dmeventd lvm2 wrapper plugin. |
| Make failed locking initialisation messages more descriptive. |
| |
| Version 2.02.59 - 21st January 2010 |
| =================================== |
| Add libdevmapper-event-lvm2.so to serialise dmeventd plugin liblvm2cmd use. |
| Cleanup memory initialization and freeing in pv_read() and pv_create(). |
| Clear pointer and counters after their release in _fin_commands(). |
| Stop dmeventd trying to access already-removed snapshots. |
| Remove (fallback) /dev mknod from cmirrord. |
| Add t-topology-support.sh and t-snapshot-merge.sh tests. |
| Fix clvmd to never scan suspended devices. |
| Fix dmeventd build outside source tree. |
| Assorted cmirror code changes to remove various compiler warnings. |
| Fix detection of completed snapshot merge. |
| Add Red Hat cmirror initscript (unfinished). |
| Add cmirrord man page (incomplete). |
| Make cluster log communication structures architecture independant. |
| Fix cluster log in-memory bitmap handling. |
| Improve snapshot merge metadata import validation. |
| Improve target type compatibility checking in _percent_run(). |
| Add 'target_status_compatible' method to 'struct segtype_handler'. |
| Change underscore to hyphen in table line for clustered log type. |
| |
| Version 2.02.58 - 14th January 2010 |
| =================================== |
| Cleanup some minor gcc warnings. |
| Add --merge to lvconvert to merge a snapshot into its origin. |
| Fix clvmd automatic target module loading crash (no reset_locking fn). |
| Fix allocation code not to stop at the first area of a PV that fits. |
| |
| Version 2.02.57 - 12th January 2010 |
| =================================== |
| Ensure exactly one process returns from poll_daemon(), never two. |
| Reset _vgs_locked in lvmcache_init() in child after forking. |
| Define {DM, LVM}_UDEV_DISABLE_CHECKING=1 environment variables during tests. |
| Enable udev_sync and udev_rules in lvm.conf by default while running tests. |
| If LVM_UDEV_DISABLE_CHECKING in set in environment, disable udev warnings. |
| Add --splitmirrors to lvconvert to split off part of a mirror. |
| Change background polldaemon's process name to "(lvm2)". |
| Allow vgremove to remove a VG with PVs missing after a prompt. |
| Return success in lvconvert --repair --use-policies on failed allocation. |
| Keep log type consistent when changing mirror image count. |
| Always set environment variables for an LVM2 device in 11-dm-lvm.rules. |
| Add activation/udev_rules config option in lvm.conf. |
| Add consts to text metadata flag structs. |
| Add macros outfc, outsize, outhint and function out_text_with_comment. |
| Reimplement report FIELD macro using offsetof instead of static structs. |
| Fix fsadm man page typo (fsdam). |
| Rename mirror_device_fault_policy to mirror_image_fault policy. |
| Remove empty PV devices if lvconvert --repair is using defined policies. |
| Use fixed buffer to prevent stack overflow in persistent filter dump. |
| Use extended status of new kernel snapshot target 1.8.0 to detect when empty. |
| Insert stack macros in suspend_lv, resume_lv & (de)activate_lv callers. |
| Add --poll flag to vgchange and lvchange to control background daemon launch. |
| Propagate metadata commit and revert notifications to other cluster nodes. |
| Use proper mask for VG lock mode in clvmd. |
| Allow precommitted metadata to be dropped from lvmcache. |
| Move processing of VG locks to separate function in clvmd. |
| Properly decode all flags in clvmd messages including VG locks. |
| Properly handle precommitted cache flag when only committed metadata present. |
| Resume renamed volumes in reverse order to preserve memlock pairing. |
| Drop cached metadata after device was auto-repaired and removed from VG. |
| Clear MISSING_PV flag if PV reappeared and is empty. |
| Fix removal of multiple devices from a mirror. |
| Also clean up PVs flagged as missing in vgreduce --removemissing --force. |
| Introduce INTERNAL_ERROR macro for error messages and use throughout. |
| Remove superfluous returns from void functions. |
| Destroy allocated mempool in _vg_read_orphans() error path. |
| Fix some pvresize and toollib error paths with missing VG releases/unlocks. |
| Explicitly call suspend for temporary mirror layer. |
| Allow use of precommitted metadata when a PV is missing. |
| Add memlock information to do_lock_lv debug output. |
| Always bypass calls to remote cluster nodes for non-clustered VGs. |
| Permit implicit cluster lock conversion in pre/post callbacks on local node. |
| Permit implicit cluster lock conversion to the lock mode already held. |
| Fix lock flag masking in clvmd so intended code paths get invoked. |
| Replace magic masks in cluster locking code by defined masks. |
| Remove newly-created mirror log from metadata if initial deactivation fails. |
| Correct activated or deactivated text in vgchange summary message. |
| Improve pvmove error message when all source LVs are skipped. |
| Fix memlock imbalance in lv_suspend if already suspended. |
| Fix pvmove test mode not to poll (and fail). |
| Fix vgcreate error message if VG already exists. |
| Fix tools to use log_error when aborted due to user response to prompt. |
| Fix ignored readahead setting in lvcreate --readahead. |
| Fix clvmd memory leak in lv_info_by_lvid by calling release_vg. |
| If aborting due to internal error, always send that message to stderr. |
| Add global/abort_on_internal_errors to lvm.conf to assist testing. |
| Fix test Makefiles when builddir and srcdir differ. |
| Impose limit of 8 mirror images to match the in-kernel kcopyd restriction. |
| Use locking_type 3 (compiled in) for lvmconf --enable-cluster. |
| Remove list.c and list.h with no-longer-used dm_list macros and functions. |
| Log failure type and recognise type 'F' (flush) in dmeventd mirror plugin. |
| Extend internal PV/VG/LV/segment status variables from 32-bit to 64-bit. |
| |
| Version 2.02.56 - 24th November 2009 |
| ==================================== |
| Add missing vg_release to pvs and pvdisplay to fix memory leak. |
| Do not try to unlock VG which is not locked in _process_one_vg. |
| Move is_long_lived persistent_filter_dump to happen after every full scan. |
| Refresh device filters before full device rescan in lvmcache. |
| Return error status if vgchange fails to activate some volume. |
| Fix suspend/resume lock type test causing unbalanced memory locking. |
| Revert vg_read_internal change as clvmd was not ready for vg_read. (2.02.55) |
| |
| Version 2.02.55 - 19th November 2009 |
| ==================================== |
| Fix deadlock when changing mirrors due to unpaired memlock refcount changes. |
| Use separate memlock counter for dmeventd handlers to permit device scanning. |
| Directly restrict vgchange to activating visible LVs. |
| Fix pvmove region_size overflow for very large PVs. |
| Fix lvcreate and lvresize %PVS argument always to use sensible total size. |
| Tidy some uses of arg_count and introduce arg_is_set. |
| Export outnl and indent functions for modules. |
| Flush stdout after yes/no prompt. |
| Update vgsplit and vgcreate to use vg_set_clustered. |
| Add vg_mda_count and vg_set_clustered library functions. |
| Add more vgcreate and vgsplit nightly tests. |
| Insert some missing stack macros into activation code. |
| Recognise DRBD devices and handle them like md devices. |
| |
| Version 2.02.54 - 26th October 2009 |
| =================================== |
| Update lvcreate/lvconvert man pages to explain PhysicalVolume parameter. |
| Document --all option in man pages, cleanup {pv|vg|lv}{s|display} man pages. |
| Permit snapshots of mirrors. |
| Cleanup mimagetmp LV if allocation fails for new lvconvert mimage. |
| Fix clvmd segfault when refresh_toolcontext fails. |
| Remember to clear 'global lock held during cache refresh' state after use. |
| Use udev flags support in LVM and apply various fixes to udev rules. |
| Delay announcing mirror monitoring to syslog until initialisation succeeded. |
| Handle metadata with unknown segment types more gracefully. |
| Set default owner and group to null. |
| Add dmeventd.static to the build. |
| Disable realtime support code by default. |
| Make clvmd return 0 on success rather than 1. |
| Add --pvmetadatacopies for pvcreate, vgcreate, vgextend, vgconvert. |
| Add implict pvcreate support to vgcreate and vgextend. |
| Correct example.conf to indicate that lvm2 not lvm1 is the default format. |
| Remove an unused stray LVM1_SUPPORT ifdef. |
| Only include selinux libs in libdevmapper.pc when selinux build enabled. |
| Allow for a build directory separate from the source. |
| Update distclean target for rename clogd to cmirrord. (2.02.52) |
| Only do lock conversions in clvmd if we are explicitly asked for one. |
| Introduce percent_range_t and centralise snapshot full/mirror in-sync checks. |
| Factor out poll_mirror_progress and introduce progress_t. |
| Distinguish between powers of 1000 and powers of 1024 in unit suffixes. |
| Restart lvconverts in vgchange by sharing lv_spawn_background_polling. |
| Generalise polldaemon code by changing mirror-specific variable names. |
| Don't attempt to deactivate an LV if any of its snapshots are in use. |
| Return error if lv_deactivate fails to remove device from kernel. |
| Provide alternative implementation of obsolete siginterrupt(). |
| Consolidate LV allocation into alloc_lv(). |
| Treat input units of both 's' and 'S' as 512-byte sectors. (2.02.49) |
| Use standard output units for 'PE Size' and 'Stripe size' in pv/lvdisplay. |
| Add configure --enable-units-compat to set si_unit_consistency off by default. |
| Add global/si_unit_consistency to enable cleaned-up use of units in output. |
| |
| Version 2.02.53 - 25th September 2009 |
| ===================================== |
| Create any directories in /dev with DM_DEV_DIR_UMASK (022). |
| Enable dmeventd monitoring section of config file by default. |
| Update lvm2 monitoring script to lvm2_monitoring_init_red_hat.in. |
| Fix lvm2app test to run under test/api subdirectory only when configured. |
| Add vg_is_resizeable() and cleanup reference to VG_RESIZEABLE. |
| |
| Version 2.02.52 - 15th September 2009 |
| ===================================== |
| Update _process_one_vg to cleanup properly after vg_read_error. |
| Add lots of missing stack debug messages to tools. |
| Make readonly locking available as locking type 4. |
| Fix readonly locking to permit writeable global locks (for vgscan). (2.02.49) |
| Add DM_UDEV_RULES_VSN environment variable to udev rules. |
| Update vgsplit, vgmerge, and vgrename to obey new vgname ordering rules. |
| Make lvm2app pv_t, lv_t, vg_t handle definitions consistent with lvm_t. |
| Enforce an alphabetical lock ordering on vgname locking. |
| Prioritise write locks over read locks by default for file locking. |
| Add local lock files with suffix ':aux' to serialise locking requests. |
| Fix global locking in PV reporting commands (2.02.49). |
| Fix pvcreate string termination in duplicate uuid warning message. |
| Don't loop reading sysfs with pvcreate on a non-blkext partition (2.02.51). |
| Fix vgcfgrestore error paths when locking fails (2.02.49). |
| Update Makefile distclean target. |
| Add libudev configuration check. |
| Make clvmd check corosync to see what cluster interface it should use. |
| Add clvmd autodetection check and cleanup related configure messages. |
| Rewrite clvmd configuration code to cope with all combinations of libs. |
| Added configure --enable-cmirrord to build the cluster mirror log daemon. |
| Rename clogd to cmirrord. |
| Make lvchange --refresh only take a read lock on volume group. |
| Fix race where non-blocking file locks could be granted in error. |
| Fix vgextend error path - if ORPHAN lock fails, unlock / release vg (2.02.49). |
| Fix compile warning in clvmd. |
| Clarify use of PE ranges in lv{convert|create|extend|resize} man pages. |
| Remove useless _pv_write wrapper. |
| Add lvm2app.sh to tests conditional upon configure --enable-applib. |
| Add lvm_vg_is_clustered, lvm_vg_is_exported, and lvm_vg_is_partial. |
| Update lvm_vg_remove to require lvm_vg_write to commit remove to disk. |
| Update test/api/test.c to call lvm_vg_create and lvm_vg_remove. |
| |
| Version 2.02.51 - 6th August 2009 |
| ================================= |
| Fix locking in clvmd (2.02.50). |
| Add --noudevsync option for relevant LVM tools. |
| Add activation/udev_sync to lvm.conf. |
| Only change LV symlinks on ACTIVATE not PRELOAD. |
| Make lvconvert honour log mirror options combined with downconversion. |
| Allow LV suspend while --ignorelockingfailure is in force. |
| Update synopsis in lvconvert manpage to mention --repair. |
| Set cookies in activation code and wait for udev to complete processing. |
| Added configure --enable-udev_rules --enable-udev_sync. |
| Added configure --with-udev-prefix --with-udevdir. |
| Added udev dir to hold udev rules. |
| Add devices/data_alignment_detection to lvm.conf. |
| Add devices/data_alignment_offset_detection to lvm.conf. |
| Add --dataalignmentoffset to pvcreate to shift start of aligned data area. |
| Fix _mda_setup() to not check first mda's size before pe_align rounding. |
| Document -I option of clvmd in the man page. |
| Fix configure script to handle multiple clvmd selections. |
| Fix lvm2app.pc installation filename. |
| Remove pv_t, vg_t & lv_t handles from lib. Only liblvm uses them. |
| Rename lvm.h to lvm2app.h for now. |
| |
| Version 2.02.50 - 28th July 2009 |
| ================================ |
| Change test/api/test.c prompt so it's not confused with the main lvm prompt. |
| Update liblvm unit tests in test/api to cover latest liblvm changes. |
| Add unimplemented lvm_lv_resize and lvm_pv_resize skeletons to liblvm. |
| Add lvm_library_get_version to liblvm. |
| Add lvm_config_override to liblvm to allow caller to override LVM config. |
| Add lvm_lv_is_active and lvm_lv_is_suspended to liblvm. |
| Add lvm_lv_activate and lvm_lv_deactivate to liblvm. |
| Add lvm_scan, lvm_vg_reduce and lvm_vg_remove_lv to liblvm. |
| Add functions to get numeric properties to liblvm. |
| Add lvm_{pv|vg|lv}_get_{name|uuid} to liblvm. |
| Add lvm_vg_list_pvs and lvm_vg_list_lvs to liblvm. |
| Add lvm_vg_open and lvm_vg_create_lv_linear to liblvm. |
| Add lvm_list_vg_names/uuids to liblvm. |
| Add lvm_errno and lvm_errmsg to liblvm to obtain failure information. |
| Rename lvm_create/destroy to lvm_init/quit. |
| Rename lvm_reload_config to lvm_config_reload. |
| Refactor _override_settings to use new override_config_tree_from_string. |
| Add vg_reduce to metadata.c and metadata-exported.h. |
| Update lvm.h to clarify API behavior and return codes. |
| Update lvm_vg_extend to do an implicit pvcreate on the device. |
| Update display.c to use vg_free(vg) instead of duplicating the calculation. |
| Refactor vg_size, vg_free, and pv_mda_count field calculations for liblvm. |
| Refactor pvcreate and lvcreate for liblvm. |
| Add global/wait_for_locks to lvm.conf so blocking for locks can be disabled. |
| All LV locks are non-blocking so remove LCK_NONBLOCK from separate macros. |
| Fix race condition with vgcreate and vgextend on same device (2.02.49). |
| Remove redundant validate_name call from vgreduce. |
| Remove unused handles lvseg, pvseg inside liblvm/lvm.h. |
| Add liblvm2app Makefile installation targets. |
| Add liblvm pkgconfig file. |
| Use newly-independent LVM_LIBAPI in liblvm soname. E.g. liblvm2app.so.2.1. |
| Add an API version number, LVM_LIBAPI, to the VERSION string for liblvm. |
| Pass a pointer to struct cmd_context to init_multiple_segtypes |
| Return EINVALID_CMD_LINE not success when invalid VG name format is used. |
| Remove unnecessary messages after vgcreate/vgsplit refactor (2.02.49). |
| Add log_errno to set a specific errno and replace log_error in due course. |
| Change create_toolcontext to still return an object if it fails part-way. |
| Add EUNCLASSIFIED (-1) as the default LVM errno code. |
| Store any errno and error messages issued while processing each command. |
| Use log_error macro consistently throughout in place of log_err. |
| |
| Version 2.02.49 - 15th July 2009 |
| ================================ |
| Add readonly locking type to replace implementation of --ignorelockingfailure. |
| Exclude VG_GLOBAL from vg_write_lock_held so scans open devs read-only again. |
| Add unit test case for liblvm VG create/delete APIs. |
| Add liblvm APIs to implement creation and deletion of VGs. |
| Initialize cmd->cmd_line to "liblvm" in new liblvm library. |
| Place handles to liblvm objects for pv, vg, lv, lvseg, pvseg inside lvm.h. |
| Refactor vgsplit and vgextend to remove READ_REQUIRE_RESIZEABLE flag. |
| Use _exit() not exit() after forking to avoid flushing libc buffers twice. |
| Add cast to log_info arg in _find_labeller to avoid Sparc64 warning. |
| Make cmd->cmd_line const. |
| Fix dev name mismatch in vgcreate man page example. |
| Refactor vg_remove_single for use in liblvm. |
| Make all tools use consistent lock ordering obtaining VG_ORPHAN lock second. |
| Check md devices for a partition table during device scan. |
| Add extended device (blkext) and md partition (mdp) types to filters. |
| Make text metadata read errors for segment areas more precise. |
| Fix text segment metadata read errors to mention correct segment name. |
| Include segment and LV names in text segment import error messages. |
| Add parent node to config_node structure. |
| Update vgsplit and vgcreate to call new vg_create and 'set' functions. |
| Change vg_create to take minimal parameters, obtain a lock, and return vg_t. |
| Refactor vgchange extent_size, max_lv, max_pv, and alloc_policy for liblvm. |
| Update t-vgcreate-usage.sh to test for default vg properties. |
| Fix memory leak in vgsplit when re-reading the vg. |
| Make various exit/cleanup paths more robust after lvm init failures. |
| Use LCK_NONBLOCK implicitly instead of explicit vg_read() flag. |
| Remove unnecessary locking and existence tests from new vg_read() interface. |
| Permit several segment types to be registered by a single shared object. |
| Update the man pages to document size units uniformly. |
| Allow commandline sizes to be specified in terms of bytes and sectors. |
| Update 'md_chunk_alignment' to use stripe-width to align PV data area. |
| Update test/t-inconsistent-metadata.sh to match new vg_read interface. |
| Add lvmcache_init() to polldaemon initialization. |
| Convert tools to use new vg_read / vg_read_for_update. |
| Fix segfault in vg_release when vg->cmd is NULL. |
| |
| Version 2.02.48 - 30th June 2009 |
| ================================ |
| Abort if automatic metadata correction fails when reading VG to update it. |
| Explicitly request fallback to default major number in device mapper. |
| Ignore suspended devices during repair. |
| Call vgreduce --removemissing automatically to fix missing PVs in dmeventd. |
| Suggest using lvchange --resync when adding leg to not-yet-synced mirror. |
| Destroy toolcontext on clvmd exit to avoid memory pool leaks. |
| Fix lvconvert not to poll mirror if no conversion in progress. |
| Fix memory leaks in toolcontext error path. |
| Reinstate partial activation support in clustered mode. (2.02.40) |
| Allow metadata correction even when PVs are missing. |
| Use 'lvm lvresize' instead of 'lvresize' in fsadm. |
| Do not use '-n' realine option in fsadm for busybox compatiblity. |
| Add vg_lock_newname() library function for vgrename, vgsplit and vgcreate. |
| Round up requested readahead to at least one page and print warning. |
| Try to repair vg before actual vgremove when force flag provided. |
| Fix possible double release of VG after recovery. |
| Add parameter to process_each_vg specifying what to do with inconsistent VG. |
| Unify error messages when processing inconsistent volume group. |
| Use lvconvert --repair instead of vgreduce in mirror dmeventd DSO. |
| Introduce lvconvert --use_policies (repair policy according to lvm.conf). |
| Update clvmd-corosync to match new corosync API. |
| Fix lib Makefile to include any shared libraries in default target. |
| Fix rename of active snapshot with virtual origin. |
| Fix convert polling to ignore LV with different UUID. |
| Cache underlying device readahead only before activation calls. |
| Fix segfault when calculating readahead on missing device in vgreduce. |
| Remove verbose 'visited' messages. |
| Handle multi-extent mirror log allocation when smallest PV has only 1 extent. |
| Add LSB standard headers and functions (incl. reload) to clvmd initscript. |
| When creating new LV, double-check that name is not already in use. |
| Remove /dev/vgname/lvname symlink automatically if LV is no longer visible. |
| Rename internal vorigin LV to match visible LV. |
| Suppress 'removed' messages displayed when internal LVs are removed. |
| Fix lvchange -a and -p for sparse LVs. |
| Fix lvcreate --virtualsize to activate the new device immediately. |
| Make --snapshot optional with lvcreate --virtualsize. |
| Generalise --virtualoriginsize to --virtualsize. |
| Skip virtual origins in process_each_lv_in_vg() without --all. |
| Fix counting of virtual origin LVs in vg_validate. |
| Attempt to load dm-zero module if zero target needed but not present. |
| |
| Version 2.02.47 - 22nd May 2009 |
| =============================== |
| Rename liblvm.so to liblvm2app.so and use configure --enable-applib. |
| Reinstate version in liblvm2cmd.so soname. (2.02.44) |
| |
| Version 2.02.46 - 21st May 2009 |
| =============================== |
| Inherit readahead setting from underlying devices during activation. |
| Detect LVs active on remote nodes by querying locks if supported. |
| Enable online resizing of mirrors. |
| Use suspend with flush when device size was changed during table preload. |
| Implement query_resource_fn for cluster_locking. |
| Support query_resource_fn in locking modules. |
| Introduce CLVMD_CMD_LOCK_QUERY command for clvmd. |
| Fix pvmove to revert operation if temporary mirror creation fails. |
| Fix metadata export for VG with missing PVs. |
| Add vgimportclone and install it and the man page by default. |
| Force max_lv restriction only for newly created LV. |
| Remove unneeded import parameter from lv_create_empty. |
| Merge lv_is_displayable and lv_is_visible functions. |
| Introduce lv_set_visible & lv_set_hidden functions. |
| Fix lv_is_visible to handle virtual origin. |
| Introduce link_lv_to_vg and unlink_lv_from_vg functions. |
| Remove lv_count from VG and use counter function instead. |
| Fix snapshot segment import to not use duplicate segments & replace. |
| Do not query nonexistent devices for readahead. |
| Remove NON_BLOCKING lock flag from tools and set a policy to auto-set. |
| Remove snapshot_count from VG and use function instead. |
| Fix first_seg() call for empty segment list. |
| Add install_lvm2 makefile target to install only the LVM2 components. |
| Reject missing PVs from allocation in toollib. |
| Fix PV datalignment for values starting prior to MDA area. (2.02.45) |
| Add sparse devices: lvcreate -s --virtualoriginsize (hidden zero origin). |
| Fix minimum width of devices column in reports. |
| Add lvs origin_size field. |
| Fix linux configure --enable-debug to exclude -O2. |
| Implement lvconvert --repair for repairing partially-failed mirrors. |
| Fix vgreduce --removemissing failure exit code. |
| Fix remote metadata backup for clvmd. |
| Introduce unlock_and_release_vg macro. |
| Introduce vg_release() to be called to free every struct volume_group. |
| Alloc PV internal structure from VG mempool if possible. |
| Fix metadata backup to run after vg_commit always. |
| Tidy clvmd volume lock cache functions. |
| Fix pvs report for orphan PVs when segment attributes are requested. |
| Fix pvs -a output to not read volume groups from non-PV devices. |
| Add MMC (mmcblk) device type to filters. |
| Introduce memory pools per volume group (to reduce memory for large VGs). |
| Use copy of PV structure when manipulating global PV lists. |
| Always return exit error status when locking of volume group fails. |
| Fix mirror log convert validation question. |
| Avoid referencing files from DESTDIR during build process. |
| Avoid creating some static libraries unless configured --enable-static_link. |
| Enable use of cached metadata for pvs and pvdisplay commands. |
| Add missing 'device-mapper' internal subdir build dependency. |
| Fix memory leak in mirror allocation code. |
| Save and restore the previous logging level when log level is changed. |
| Fix error message when archive initialization fails. |
| Make sure clvmd-corosync releases the lockspace when it exits. |
| Fix segfault for vgcfgrestore on VG with missing PVs. |
| Block SIGTERM & SIGINT in clvmd subthreads. |
| Detect and conditionally wipe swapspace signatures in pvcreate. |
| Fix maximal volume count check for snapshots if max_lv set for volume group. |
| Fix lvcreate to remove unused cow volume if the snapshot creation fails. |
| Fix error messages when PV uuid or pe_start reading fails. |
| Build new liblvm application-level library. |
| Rename liblvm.a to liblvm-internal.a. |
| Flush memory pool and fix locking in clvmd refresh and backup command. |
| Fix unlocks in clvmd-corosync. (2.02.45) |
| Fix error message when adding metadata directory to internal list fails. |
| Fix size and error message of memory allocation at backup initialization. |
| Remove old metadata backup file after renaming VG. |
| Restore log_suppress state when metadata backup file is up-to-date. |
| |
| Version 2.02.45 - 3rd March 2009 |
| ================================ |
| Avoid scanning empty metadata areas for VG names. |
| Attempt proper clean up in child before executing new binary in exec_cmd(). |
| Do not scan devices if reporting only attributes from PV label. |
| Use pkgconfig to obtain corosync library details during configuration. |
| Fix error returns in clvmd-corosync interface to DLM. |
| Add --refresh to vgchange and vgmknodes man pages. |
| Pass --test from lvresize to fsadm as --dry-run. |
| Supply argv[] list to exec_cmd() to allow for variable number of parameters. |
| Prevent fsadm from checking mounted filesystems. |
| No longer treats any other key as 'no' when prompting in fsadm. |
| Tidy fsadm command line processing. |
| Add lib/lvm.h and lib/lvm_base.c for the new library interface. |
| Move tools/version.h to lib/misc/lvm-version.h. |
| Split LVM_VERSION into MAJOR, MINOR, PATCHLEVEL, RELEASE and RELEASE_DATE. |
| Add system_dir parameter to create_toolcontext(). |
| Add --dataalignment to pvcreate to specify alignment of data area. |
| Exclude LCK_CACHE locks from _vg_lock_count, fixing interrupt unblocking. |
| Provide da and mda locations in debug message when writing text format label. |
| Mention the restriction on file descriptors at invocation on the lvm man page. |
| Index cached vgmetadata by vgid not vgname to cope with duplicate vgnames. |
| No longer require kernel and metadata major numbers to match. |
| Add a fully-functional get_cluster_name() to clvmd corosync interface. |
| Remove duplicate cpg_initialize from clvmd startup. |
| Add option to /etc/sysconfig/cluster to select cluster type for clvmd. |
| Allow clvmd to start up if its lockspace already exists. |
| Separate PV label attributes which do not need parse metadata when reporting. |
| Remove external dependency on the 'cut' command from fsadm. |
| Fix pvs segfault when pv mda attributes requested for not available PV. |
| Add fsadm support for reszing ext4 filesysystems. |
| Move locking_type reading inside init_locking(). |
| Rename get_vgs() to get_vgnames() and clarify related error messages. |
| Allow clvmd to be built with all cluster managers & select one on cmdline. |
| Mention --with-clvmd=corosync in ./configure. |
| Replace internal vg_check_status() implementation. |
| Rename vg_read() to vg_read_internal(). |
| |
| Version 2.02.44 - 26th January 2009 |
| =================================== |
| Fix --enable-static_link after the recent repository changes. |
| Add corosync/DLM cluster interface to clvmd. |
| Add --nameprefixes, --unquoted, --rows to pvs, vgs, lvs man pages. |
| Fix lvresize size conversion for fsadm when block size is not 1K. |
| Fix pvs segfault when run with orphan PV and some VG fields. |
| Display a 'dev_size' of zero for missing devices in reports. |
| Add pv_mda_size to pvs and vg_mda_size to vgs. |
| Fix lvmdump /sys listing to include virtual devices directory. |
| Add "--refresh" functionality to vgchange and vgmknodes. |
| Avoid exceeding LV size when wiping device. |
| Calculate mirror log size instead of using 1 extent. |
| Ensure requested device number is available before activating with it. |
| Fix incorrect exit status from 'help <command>'. |
| Fix vgrename using UUID if there are VGs with identical names. |
| Fix segfault when invalid field given in reporting commands. |
| Move is_static from cmd to global is_static(). |
| Refactor init_lvm() for lvmcmdline and clvmd. |
| Add liblvm interactive test infrastructure to build. |
| Add skeleton lvm2.h file in preparation for a shared library interface. |
| Use better random seed value in temp file creation. |
| Add read_urandom to read /dev/urandom. Use in uuid calculation. |
| Use displayable_lvs_in_vg and lv_is_displayable for consistency throughout. |
| Fix race in vgcreate that would result in second caller overwriting first. |
| Fix uninitialised lv_count in vgdisplay -c. |
| Don't skip updating pvid hash when lvmcache_info struct got swapped. |
| Add tinfo to termcap search path for pld-linux. |
| Fix startup race in clvmd. |
| Generate Red Hat clvmd startup script at config time with correct paths. |
| Fix clvmd & dmeventd builds after tree restructuring. |
| Cope with snapshot dependencies when removing a whole VG with lvremove. |
| Make man pages and tool help text consistent using | for alternative options. |
| |
| Version 2.02.43 - 10th November 2008 |
| ==================================== |
| Merge device-mapper into the lvm2 tree. |
| Correct prototype for --permission on lvchange and lvcreate man pages. |
| Exit with non-zero status from vgdisplay if couldn't show any requested VG. |
| Move list.c into libdevmapper and rename functions. |
| Rename a couple of variables that matched function names. |
| Use simplified x.y.z version number in libdevmapper.pc. |
| Remove ancient debian directory. |
| Split out lvm-logging.h from log.h and lvm-globals.[ch] from log.[ch]. |
| |
| Version 2.02.42 - 26th October 2008 |
| =================================== |
| Accept locking fallback_to_* options in the global section as documented. |
| Fix temp table activation in mirror conversions not to happen in other cmds. |
| Fix temp table in mirror conversions to use always-present error not zero. |
| |
| Version 2.02.41 - 17th October 2008 |
| =================================== |
| Use temp table to set device size when converting mirrors. |
| In resume_mirror_images replace activate_lv with resume_lv as workaround. |
| Avoid overwriting in-use on-disk text metadata by forgetting MDA_HEADER_SIZE. |
| Fix snapshot monitoring library to not cancel monitoring invalid snapshot. |
| Generate man pages from templates and include version. |
| Add usrlibdir and usrsbindir to configure. |
| Fix conversion of md chunk size into sectors. |
| Free text metadata buffer after a failure writing it. |
| Fix misleading error message when there are no allocatable extents in VG. |
| Fix handling of PVs which reappeared with old metadata version. |
| Fix mirror DSO to call vgreduce with proper parameters. |
| Fix validation of --minor and --major in lvcreate to require -My always. |
| Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning. |
| |
| Version 2.02.40 - 19th September 2008 |
| ===================================== |
| Allow lvremove to remove LVs from VGs with missing PVs. |
| In VG with PVs missing, by default allow activation of LVs that are complete. |
| Track PARTIAL_LV and MISSING_PV flags internally. |
| Require --force with --removemissing in vgreduce to remove partial LVs. |
| No longer write out PARTIAL flag into metadata backups. |
| Treat new default activation/missing_stripe_filler "error" as an error target. |
| Remove internal partial_mode. |
| Add devices/md_chunk_alignment to lvm.conf. |
| Pass struct physical_volume to pe_align and adjust for md chunk size. |
| Store sysfs location in struct cmd_context. |
| Avoid shuffling remaining mirror images when removing one, retaining primary. |
| Add missing LV error target activation in _remove_mirror_images. |
| Prevent resizing an LV while lvconvert is using it. |
| Avoid repeatedly wiping cache while VG_GLOBAL is held in vgscan & pvscan. |
| Fix pvresize to not allow resize if PV has two metadata areas. |
| Fix setting of volume limit count if converting to lvm1 format. |
| Fix vgconvert logical volume id metadata validation. |
| Fix lvmdump metadata gather option (-m) to work correctly. |
| Fix allocation bug in text metadata format write error path. |
| Fix vgcfgbackup to properly check filename if template is used. |
| configure aborts if lcov or genhtml are missing with --enable-profiling |
| vgremove tries to remove lv snapshot first. |
| Added function lv_remove_with_dependencies(). |
| Improve file descriptor leak detection to display likely culprit and filename. |
| Change clustered mirror kernel module name from cmirror to dm-log-clustered. |
| Avoid looping forever in _pv_analyze_mda_raw used by pvck. |
| Change lvchange exit status to indicate if any part of the operation failed. |
| Fix pvchange and pvremove to handle PVs without mdas. |
| Refactor _text_pv_read and always return mda list if requested. |
| Fix configure to work w/o readline unless --enable-readline used. (2.02.39) |
| Remove is_lvm_partition template which has not yet been coded. |
| Refactor pvcreate to separate parameter parsing from validation logic. |
| Check for label_write() failure in _text_pv_write(). |
| Add pvcreate tests and update vgsplit tests to handle lvm1 and lvm2 metadata. |
| Fix pvchange -M1 -u to preserve existing extent locations when there's a VG. |
| Cease recognising snapshot-in-use percentages returned by early devt kernels. |
| Add backward-compatible flags field to on-disk format_text metadata. |
| Fix dmeventd monitoring libraries to link against liblvm2cmd again. (2.02.39) |
| |
| Version 2.02.39 - 27th June 2008 |
| ================================ |
| Enable readline by default if available. |
| Update autoconf to 2008-01-16. |
| Add $DISTCLEAN_DIRS to make.tmpl.in. |
| Create coverage reports with --enable-profiling and make lcov or lcov-dated. |
| Fix up cache for PVs without mdas after consistent VG metadata is processed. |
| Update validation of safe mirror log type conversions in lvconvert. |
| Fix lvconvert to disallow snapshot and mirror combinations. |
| Fix reporting of LV fields alongside unallocated PV segments. |
| Add --unquoted and --rows to reporting tools. |
| Add and use uninitialized_var() macro to suppress invalid compiler warnings. |
| Introduce enum for md minor sb version to suppress compiler warning. |
| Avoid undefined return value after _memlock manipulation in lvm2_run. |
| Avoid link failure if configured without --enable-cmdlib or --enable-readline. |
| Make clvmd return at once if other nodes down in a gulm or openais cluster. |
| Fix and improve readahead 'auto' calculation for stripe_size. |
| Fix lvchange output for -r auto setting if auto is already set. |
| Add test case for readahead. |
| Avoid ambiguous use of identifier error_message_produced. |
| Begin syncing configure.in for merge/unification with device-mapper. |
| Fix add_mirror_images not to dereference uninitialized log_lv upon failure. |
| Don't call openlog for every debug line output by clvmd. |
| Add --force to lvextend and lvresize. |
| Fix vgchange not to activate component mirror volumes directly. |
| Fix test directory clean up in make distclean. |
| |
| Version 2.02.38 - 11th June 2008 |
| ================================ |
| Fix tracking of validity of PVs with no mdas in lvmcache. |
| Fix return values for reporting commands when run with no PVs, LVs, or VGs. |
| Add omitted unlock_vg() call when sigint_caught() during vg processing. |
| Fix free_count when reading pool metadata. |
| Fix segfault when using pvcreate on a device containing pool metadata. |
| Fix segfault after _free_vginfo by remembering to remove vginfo from list. |
| Tweak detection of invalid fid after changes to PVs in VG in _vg_read. |
| Revert assuming precommitted metadata is live when activating (unnecessary). |
| Drop cached metadata for disappearing VG in vgmerge. |
| In script-processing mode, stop if any command fails. |
| Warn if command exits with non-zero status code without a prior log_error. |
| Check lv_count in vg_validate. |
| Add --nameprefixes to reporting tools for field name prefix output format. |
| |
| Version 2.02.37 - 6th June 2008 |
| =============================== |
| Make clvmd-cman use a hash rather than an array for node updown info. |
| Correct config file line numbers in messages when parsing comments. |
| Drop cached metadata when renaming a VG. |
| Allow for vginfo changing during _vg_read. |
| Decode numbers in clvmd debugging output. |
| Add missing deactivation after activation failure in lvcreate -Zy. |
| When activating, if precommitted metadata is still cached, assume it's live. |
| When removing LV symlinks, skip any where the VG name is not determined. |
| Drop metadata cache if update fails in vg_revert or vg_commit. |
| Avoid spurious duplicate VG messages referring to VGs that are gone. |
| Drop dev_name_confirmed error message to debug level. |
| Fix setpriority error message to signed int. |
| Temporarily disable dmeventd mirror monitoring during lvchange --resync. |
| Refactor some vginfo manipulation code. |
| Add assertions to trap deprecated P_ and V_ lock usage. |
| Add missing mutex around clvmd lvmcache_drop_metadata library call. |
| Fix uninitialised mutex in clvmd if all daemons are not running at startup. |
| Avoid using DLM locks with LCK_CACHE type P_ lock requests. |
| When asked to drop cached committed VG metadata, invalidate cached PV labels. |
| Drop metadata cache before writing precommitted metadata instead of after. |
| Don't touch /dev in vgrename if activation is disabled. |
| |
| Version 2.02.36 - 29th April 2008 |
| ================================= |
| Fix fsadm.sh to work with older blockdev, blkid & readlink binaries. |
| Fix lvresize to pass new size to fsadm when extending device. |
| Remove unused struct in clvmd-openais, and use correct node count. |
| Fix nodes list in clvmd-openais, and allow for broadcast messages. |
| Exclude VG_GLOBAL from internal concurrent VG lock counter. |
| Fix vgsplit internal counting of snapshot LVs. |
| Fix vgmerge snapshot_count when source VG contains snapshots. |
| Simplify clvmd-openais by using non-async saLckResourceLock. |
| Fix internal LV counter when a snapshot is removed. |
| Fix metadata corruption writing lvm1-formatted metadata with snapshots. |
| Fix lvconvert -m0 allocatable space check. |
| |
| Version 2.02.35 - 15th April 2008 |
| ================================= |
| Drop cached VG metadata before and after committing changes to it. |
| Rename P_global to P_#global. |
| Don't attempt remote metadata backups of non-clustered VGs. (2.02.29) |
| Don't store fid in VG metadata cache to avoid clvmd segfault. (2.02.34) |
| Update vgsplit tests to verify loosening of active LV restriction. |
| Update vgsplit to only restrict split with active LVs involved in split. |
| Add lv_is_active() to determine whether an lv is active. |
| |
| Version 2.02.34 - 10th April 2008 |
| ================================= |
| Improve preferred_names lvm.conf example. |
| Fix vgdisplay 'Cur LV' field to match lvdisplay output. |
| Fix lv_count report field to exclude hidden LVs. |
| Add vg_is_clustered() helper function. |
| Fix vgsplit to only move hidden 'snapshotN' LVs when necessary. |
| Update vgsplit tests for lvnames on the cmdline. |
| Update vgsplit man page to reflect lvnames on the cmdline. |
| Update vgsplit to take "-n LogicalVolumeName" on the cmdline. |
| Use clustered mirror log with pvmove in clustered VGs, if available. |
| Fix some pvmove error status codes. |
| Fix vgsplit error paths to release vg_to lock. |
| Indicate whether or not VG is clustered in vgcreate log message. |
| Mention default --clustered setting in vgcreate man page. |
| Add config file overrides to clvmd when it reads the active LVs list. |
| Fix vgreduce to use vg_split_mdas to check sufficient mdas remain. |
| Add (empty) orphan VGs to lvmcache during initialisation. |
| Fix orphan VG name used for format_pool. |
| Create a fid for internal orphan VGs. |
| Update lvmcache VG lock state for all locking types now. |
| Fix output if overriding command_names on cmdline. |
| Add detection of clustered mirror log capability. |
| Add check to vg_commit() ensuring VG lock held before writing new VG metadata. |
| Add validation of LV name to pvmove -n. |
| Make clvmd refresh the context correctly when lvm.conf is updated. |
| Add some basic internal VG lock validation. |
| Add per-command flags to control which commands use the VG metadata cache. |
| Fix vgsplit locking of new VG (2.02.30). |
| Avoid erroneous vgsplit error message for new VG. (2.02.29) |
| Suppress duplicate message when lvresize fails because of invalid vgname. |
| Cache VG metadata internally while VG lock is held. |
| Fix redundant lvresize message if vg doesn't exist. |
| Fix another allocation bug with clvmd and large node IDs. |
| Add find_lv_in_lv_list() and find_pv_in_pv_list(). |
| Fix uninitialised variable in clvmd that could cause odd hangs. |
| Add vgmerge tests. |
| Add pvseg_is_allocated() for identifying a PV segment allocated to a LV. |
| Add list_move() for moving elements from one list to another. |
| Add 'is_reserved_lvname()' for identifying hidden LVs. |
| Correct command name in lvmdiskscan man page. |
| clvmd no longer crashes if it sees nodeids over 50. |
| Fix potential deadlock in clvmd thread handling. |
| Refactor text format initialisation into _init_text_import. |
| Escape double quotes and backslashes in external metadata and config data. |
| Add functions for escaping double quotes in strings. |
| Rename count_chars_len to count_chars. |
| Use return_0 in a couple more places. |
| Correct a function name typo in _line_append error message. |
| Include limits.h in clvmd so it compiles with newer headers. |
| Add VirtIO disks (virtblk) to filters. |
| Fix resetting of MIRROR_IMAGE and VISIBLE_LV after removal of LV. (2.02.30) |
| Fix remove_layer_from_lv to empty the LV before removing it. (2.02.30) |
| Add missing no-longer-used segs_using_this_lv test to check_lv_segments. |
| Remove redundant non-NULL tests before calling free in clvmd.c. |
| Avoid a compiler warning: make is_orphan's parameter const. |
| Fix lvconvert detection of mirror conversion in progress. (2.02.30) |
| Avoid automatic lvconvert polldaemon invocation when -R specified. (2.02.30) |
| Fix 'pvs -a' to detect VGs of PVs without metadata areas. |
| Divide up internal orphan volume group by format type. |
| Update usage message for clvmd. |
| Fix clvmd man page not to print <br> and clarified debug options. |
| Fix lvresize to support /dev/mapper prefix in the LV name. |
| Fix unfilled parameter passed to fsadm from lvresize. |
| Update fsadm to call lvresize if the partition size differs (with option -l). |
| Fix fsadm to support VG/LV names. |
| |
| Version 2.02.33 - 31st January 2008 |
| =================================== |
| Fix mirror log name construction during lvconvert. (2.02.30) |
| Make monitor_dev_for_events recurse through the stack of LVs. |
| Clean up some more compiler warnings. |
| Some whitespace tidy-ups. |
| Use stack return macros throughout. |
| Rely upon internally-cached PV labels while corresponding VG lock is held. |
| |
| Version 2.02.32 - 29th January 2008 |
| =================================== |
| Fix two check_lv_segments error messages to show whole segment. |
| Refactor mirror log attachment code. |
| Fix internal metadata corruption in lvchange --resync. (2.02.30) |
| Fix new parameter validation in vgsplit and test mode. (2.02.30) |
| Remove redundant cnxman-socket.h file from clvmd directory. |
| Fix pvs, vgs, lvs error exit status on some error paths. |
| |
| Version 2.02.31 - 19th January 2008 |
| =================================== |
| Fix lvcreate --nosync not to wait for non-happening sync. (2.02.30) |
| Add very_verbose lvconvert messages. |
| Avoid readahead error message with default setting of lvcreate -M1. (2.02.29) |
| |
| Version 2.02.30 - 17th January 2008 |
| =================================== |
| Set default readahead to twice maximium stripe size. |
| Reinstate VG extent size and stripe size defaults (halved). (2.02.29) |
| Add lists of stacked LV segments using each LV to the internal metadata. |
| Change vgsplit -l (for unimplemented --list) into --maxlogicalvolumes. |
| Fix process_all_pvs to detect non-orphans with no MDAs correctly. |
| Don't use block_on_error with mirror targets version 1.12 and above. |
| Update vgsplit to accept vgcreate options when new VG is destination. |
| Update vgsplit to accept existing VG as destination. |
| lvconvert waits for completion of initial sync by default. |
| Refactor vgcreate for parameter validation and add tests. |
| Add new convert_lv field to lvs output. |
| Print warning when lvm tools are running as non-root. |
| Add snapshot dmeventd library (enables dmeventd snapshot monitoring). |
| Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs. |
| Fix a segfault if using pvs with --all argument. (2.02.29) |
| Update --uuid argument description in man pages. |
| Fix vgreduce PV list processing not to process every PV in the VG. (2.02.29) |
| Extend lvconvert to use polldaemon. |
| Add support for stacked mirrors. |
| Major restructuring of pvmove and lvconvert layer manipulation code. |
| Replace tools/fsadm with scripts/fsadm.sh. |
| Append fields to report/pvsegs_cols_verbose. |
| Permit LV segment fields with PV segment reports. |
| Add seg_start_pe and seg_pe_ranges to reports. |
| |
| Version 2.02.29 - 5th December 2007 |
| =================================== |
| Make clvmd backup vg metadata on remote nodes. |
| Refactor pvmove allocation code. |
| Decode cluster locking state in log message. |
| Change file locking state messages from debug to very verbose. |
| Fix --addtag to drop @ prefix from name. |
| Stop clvmd going haywire if a pre_function fails. |
| Convert some vg_reads into vg_lock_and_reads. |
| Avoid nested vg_reads when processing PVs in VGs and fix associated locking. |
| Accept sizes with --readahead argument. |
| Store size arguments as sectors internally. |
| Attempt to remove incomplete LVs with lvcreate zeroing/activation problems. |
| Add read_ahead activation code. |
| Add activation/readahead configuration option and FMT_RESTRICTED_READAHEAD. |
| Extend readahead arg to accept "auto" and "none". |
| Add lv_read_ahead and lv_kernel_read_ahead fields to reports and lvdisplay. |
| Prevent lvconvert -s from using same LV as origin and snapshot. |
| Fix human-readable output of odd numbers of sectors. |
| Add pv_mda_free and vg_mda_free fields to reports for raw text format. |
| Add LVM2 version to 'Generated by' comment in metadata. |
| Show 'not usable' space when PV is too large for device in pvdisplay. |
| Ignore and fix up any excessive device size found in metadata. |
| Fix error message when fixing up PV size in lvm2 metadata (2.02.11). |
| Fix orphan-related locking in pvdisplay and pvs. |
| Fix missing VG unlocks in some pvchange error paths. |
| Add some missing validation of VG names. |
| Rename validate_vg_name() to validate_new_vg_name(). |
| Change orphan lock to VG_ORPHANS. |
| Change format1 to use ORPHAN as orphan VG name. |
| Convert pvchange, pvdisplay, pvscan to use is_orphan() |
| Add is_orphan_vg() and change all hard-coded checks to use it. |
| Detect md superblocks version 1.0, 1.1 and 1.2. |
| Add _alloc_pv() and _free_pv() from _pv_create() code and fix error paths. |
| Add pv_dev_name() to access PV device name. |
| Add const attributes to pv accessor functions. |
| Refactor vg_add_snapshot() and lv_create_empty(). |
| Handle new sysfs subsystem/block/devices directory structure. |
| Run test with LVM_SYSTEM_DIR pointing to private root and /dev dirs. |
| Fix a bug in lvm_dump.sh checks for lvm/dmsetup binaries. |
| Fix underquotations in lvm_dump.sh. |
| Refactor lvcreate stripe and mirror parameter validation. |
| Print --help output to stdout, not stderr. |
| After a cmdline processing error, don't print help text but suggest --help. |
| Add %PVS extents option to lvresize, lvextend, and lvcreate. |
| Add 'make check' to run tests in new subdirectory 'test'. |
| Moved the obsolete test subdirectory to old-tests. |
| Cope with relative paths in configure --with-dmdir. |
| Remove no-longer-correct restrictions on PV arg count with stripes/mirrors. |
| Fix strdup memory leak in str_list_dup(). |
| Link with -lpthread when static SELinux libraries require that. |
| Detect command line PE values that exceed their 32-bit range. |
| Include strerror string in dev_open_flags' stat failure message. |
| Move guts of pvresize into library. |
| Avoid error when --corelog is provided without --mirrorlog. (2.02.28) |
| Correct --mirrorlog argument name in man pages (not --log). |
| Clear MIRROR_NOTSYNCED LV flag when converting from mirror to linear. |
| Modify lvremove to prompt for removal if LV active on other cluster nodes. |
| Add '-f' to vgremove to force removal of VG even if LVs exist. |
| |
| Version 2.02.28 - 24th August 2007 |
| ================================== |
| Fix clvmd logging so you can get lvm-level debugging out of it. |
| Introduce VG_GLOBAL lock type for vgscan/pvscan to trigger clvmd -R. |
| Change locking_flags from int to uint32_t. |
| Fix clvmd -R, so it fully refreshes the caches. |
| Change lvconvert_mirrors to use mirror segtype not striped. |
| Fix lvconvert_mirrors detection of number of existing mirrors. |
| Clean up numerous compiler warnings that appeared in recent releases. |
| Remove several unused parameters from _allocate(). |
| Only permit --force, --verbose and --debug arguments to be repeated. |
| Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. |
| Move guts of vgremove and lvremove into library, including yes_no_prompt. |
| Allow clvmd debug to be turned on in a running daemon using clvmd -d [-C]. |
| Update to use autoconf 2.61, while still supporting 2.57. |
| Add more cluster info to lvmdump. |
| Add further const attributes throughout. |
| Add support for renaming mirrored LVs. |
| Factor out core of lvrename() to library function. |
| Add --mirrorlog argument to specify log type for mirrors. |
| Don't attempt to monitor devices if their creation failed in _lv_activate. |
| Don't leak a file descriptor in fcntl_lock_file() when fcntl fails. |
| Replace create_dir with dm_create_dir. |
| Detect stream write failure reliably with lvm_fclose using dm_fclose. |
| Fix clvmd if compiled with gulm support. (2.02.26) |
| Fix lvdisplay man page to say LV size is reported in sectors, not KB. |
| Add vg_lock_and_read() external library function. |
| Fix loading of persistent cache if cache_dir is used. (2.02.23) |
| Reduce _compare_paths lstat error message from log_error to log_very_verbose. |
| Create util.h with last_path_component replacing strdup + basename. |
| Use gcc's printf attribute wherever possible. |
| In _line_append, use "sizeof buf - 1" rather than equivalent "4095". |
| Introduce is_same_inode macro, now including a comparison of st_dev. |
| Don't leak a file descriptor in _lock_file() when flock fails. |
| Add SUN's LDOM virtual block device (vdisk) and ps3disk to filters. |
| Split metadata-external.h out from metadata.h for the tools to use. |
| |
| Version 2.02.27 - 17th July 2007 |
| ================================ |
| Fix snapshot cow area deactivation if origin is not active. (2.02.13) |
| Fix configure libdevmapper.h check when --with-dmdir is used. |
| Turn _add_pv_to_vg() into external library function add_pv_to_vg(). |
| Add pv_by_path() external library function. |
| Tidy clvmd-openais of redundant bits, and improve an error report. |
| Cope with find_seg_by_le() failure in check_lv_segments(). |
| Call dev_iter_destroy() if _process_all_devs() is interrupted by sigint. |
| Add vg_mda_count and pv_mda_count columns to reports. |
| Fix dumpconfig to use log_print instead of stdout directly. |
| Remove unused parameter 'fid' from _add_pv_to_vg. |
| Add kernel and device-mapper targets versions to lvmdump. |
| Replace BSD (r)index with C89 str(r)chr. |
| Handle vgsplit of an entire VG as a vgrename. |
| Reinitialise internal lvmdiskscan variables when called repeatedly. |
| Fix missing lvm_shell symbol in lvm2cmd library. (2.02.23) |
| Add vg_status function and clean up vg->status in tools directory. |
| Add --ignoremonitoring to disable all dmeventd interaction. |
| Remove get_ prefix from get_pv_* functions. |
| clvmd-openais now uses cpg_local_get() to get nodeid, rather than Clm. |
| Print warnings to stderr instead of stdout. |
| |
| Version 2.02.26 - 15th June 2007 |
| ================================ |
| Update vgcfgrestore man page. |
| Allow keyboard interrupt during user prompts when appropriate. |
| Remove unused clvmd system-lv code. |
| Replace many physical_volume struct dereferences with new get_pv_* functions. |
| Suppress a benign compile-time warning. |
| Convert find_pv_in_vg_by_uuid and pv_create to use PV handles. |
| Add wrappers to some functions in preparation for external LVM library. |
| Add -f to vgcfgrestore to list metadata backup files. |
| Add vg_check_status to consolidate vg status checks and error messages. |
| Add pvdisplay --maps implementation. |
| Remove unsupported LVM1 options from vgcfgrestore man page. |
| Update vgcfgrestore man page to show mandatory VG name. |
| Update vgrename man page to include UUID and be consistent with lvrename. |
| Add (experimental) OpenAIS support to clvmd. |
| Fix deactivation code to follow dependencies and remove symlinks. |
| Fix and clarify vgsplit error messages. |
| Fix a segfault in device_is_usable() if a device has no table. |
| Add some more debug messages to clvmd startup. |
| Misc clvmd cleanups. |
| |
| Version 2.02.25 - 27th April 2007 |
| ================================= |
| Fix get_config_uint64() to read a 64-bit value not a 32-bit one. |
| Add -Wformat-security and change one fprintf() to fputs(). |
| Move regex functions into libdevmapper. |
| Change some #include lines to search only standard system directories. |
| Add devices/preferred_names config regex list for displayed device names. |
| Free a temporary dir string in fcntl_lock_file() after use. |
| Fix a dm_pool_destroy() in matcher_create(). |
| Introduce goto_bad macro. |
| Fix warnings on x86_64 involving ptrdiff_t in log_error messages. |
| Update pvck to include text metadata area and record detection. |
| Add support functions for token counting in config file extracts. |
| Update pvck to read labels on disk, with --labelsector parameter. |
| Add count_chars and count_chars_len functions. |
| Add /sys/block listings to lvm_dump.sh. |
| Make lvm_dump.sh list /dev recursively. |
| Fix thread race in clvmd. |
| Add scan_sector param to label_read and _find_labeller. |
| Make clvmd cope with quorum devices. |
| Add extra internal error checking to clvmd. |
| Add dev_read_circular. |
| Add pvck command stub. |
| Update lists of attribute characters in man pages. |
| Change cling alloc policy attribute character from 'C' to l'. |
| Fix creation and conversion of mirrors with tags. |
| Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata). |
| Split metadata areas in vgsplit properly. |
| |
| Version 2.02.24 - 19th March 2007 |
| ================================= |
| Fix processing of exit status in init scripts |
| Fix vgremove to require at least one vg argument. |
| Fix reading of striped LVs in LVM1 format. |
| Flag nolocking as clustered so clvmd startup sees clustered LVs. (2.02.10) |
| Add a few missing pieces of vgname command line validation. |
| Support the /dev/mapper prefix on most command lines. |
| |
| Version 2.02.23 - 8th March 2007 |
| ================================ |
| Fix vgrename active LV check to ignore differing vgids. |
| Remove no-longer-used uuid_out parameter from activation info functions. |
| Fix two more segfaults if an empty config file section encountered. |
| Move .cache file into a new /etc/lvm/cache directory by default. |
| Add devices/cache_dir & devices/cache_file_prefix, deprecating devices/cache. |
| Create directory in fcntl_lock_file() if required. |
| Exclude readline support from lvm.static. |
| Fix a leak in a reporting error path (2.02.19). |
| |
| Version 2.02.22 - 13th February 2007 |
| ==================================== |
| Correct -b and -P on a couple of man pages. |
| Add global/units to example.conf. |
| Fix loading of segment_libraries. |
| If a PV reappears after it was removed from its VG, make it an orphan. |
| Don't update metadata automatically if VGIDs don't match. |
| Fix some vgreduce --removemissing command line validation. |
| |
| Version 2.02.21 - 30th January 2007 |
| =================================== |
| Add warning to lvm2_monitoring_init_rhel4 if attempting to stop monitoring. |
| Fix vgsplit to handle mirrors. |
| Reorder fields in reporting field definitions. |
| Fix vgs to treat args as VGs even when PV fields are displayed. |
| Fix md signature check to handle both endiannesses. |
| |
| Version 2.02.20 - 25th January 2007 |
| =================================== |
| dmeventd mirror sets ignore_suspended_devices and avoids scanning mirrors. |
| Add devices/ignore_suspended_devices to ignore suspended dm devices. |
| Add some missing close() and fclose() return code checks. |
| Fix exit statuses of reporting tools (2.02.19). |
| Add init script for dmeventd monitoring. |
| lvm.static no longer interacts with dmeventd unless explicitly asked to. |
| Add field definitions to report help text. |
| Remove unnecessary cmd arg from target_*monitor_events(). |
| Add private variable to dmeventd shared library interface. |
| Long-lived processes write out persistent dev cache in refresh_toolcontext(). |
| Fix refresh_toolcontext() always to wipe persistent device filter cache. |
| Add is_long_lived to toolcontext. |
| Add --clustered to man pages. |
| Streamline dm_report_field_* interface. |
| Change remaining dmeventd terminology 'register' to 'monitor'. |
| Update reporting man pages. |
| No longer necessary to specify alignment type for report fields. |
| |
| Version 2.02.19 - 17th January 2007 |
| =================================== |
| Fix a segfault if an empty config file section encountered. |
| Move basic reporting functions into libdevmapper. |
| Fix partition table processing after sparc changes (2.02.16). |
| Fix cmdline PE range processing segfault (2.02.13). |
| Some libdevmapper-event interface changes. |
| Report dmeventd mirror monitoring status. |
| Fix dmeventd mirror status line processing. |
| |
| Version 2.02.18 - 11th January 2007 |
| =================================== |
| Revised libdevmapper-event interface for dmeventd. |
| Remove dmeventd mirror status line word limit. |
| Use CFLAGS when linking so mixed sparc builds can supply -m64. |
| Prevent permission changes on active mirrors. |
| Print warning instead of error message if lvconvert cannot zero volume. |
| Add snapshot options to lvconvert man page. |
| dumpconfig accepts a list of configuration variables to display. |
| Change dumpconfig to use --file to redirect output to a file. |
| Avoid vgreduce error when mirror code removes the log LV. |
| Remove 3 redundant AC_MSG_RESULTs from configure.in. |
| Free memory in _raw_read_mda_header() error paths. |
| Fix ambiguous vgsplit error message for split LV. |
| Fix lvextend man page typo. |
| Add configure --with-dmdir to compile against a device-mapper source tree. |
| Use no flush suspending for mirrors. |
| Add dmeventd_mirror register_mutex, tidy initialisation & add memlock. |
| Fix create mirror with name longer than 22 chars. |
| Fix some activate.c prototypes when compiled without devmapper. |
| Fix dmeventd mirror to cope if monitored device disappears. |
| |
| Version 2.02.17 - 14th December 2006 |
| ==================================== |
| Add missing pvremove error message when device doesn't exist. |
| When lvconvert allocates a mirror log, respect parallel area constraints. |
| Use loop to iterate through the now-ordered policy list in _allocate(). |
| Check for failure to allocate just the mirror log. |
| Introduce calc_area_multiple(). |
| Support mirror log allocation when there is only one PV: area_count now 0. |
| Fix detection of smallest area in _alloc_parallel_area() for cling policy. |
| Add manpage entry for clvmd -T |
| Fix gulm operation of clvmd, including a hang when doing lvchange -aey |
| Fix hang in clvmd if a pre-command failed. |
| |
| Version 2.02.16 - 1st December 2006 |
| =================================== |
| Fix VG clustered read locks to use PR not CR. |
| Adjust some alignments for ia64/sparc. |
| Fix mirror segment removal to use temporary error segment. |
| Always compile debug logging into clvmd. |
| Add startup timeout to RHEL4 clvmd startup script. |
| Add -T (startup timeout) switch to clvmd. |
| Improve lvm_dump.sh robustness. |
| Update lvm2create_initrd to support gentoo. |
| |
| Version 2.02.15 - 21st November 2006 |
| ==================================== |
| Fix clvmd_init_rhel4 line truncation (2.02.14). |
| Install lvmdump by default. |
| Fix check for snapshot module when activating snapshot. |
| Fix pvremove error path for case when PV is in use. |
| Warn if certain duplicate config file entries are seen. |
| Enhance lvm_dump.sh for sysreport integration and add man page. |
| Fix --autobackup argument which could never disable backups. |
| Fix a label_verify error path. |
| |
| Version 2.02.14 - 10th November 2006 |
| ==================================== |
| Fix adjusted_mirror_region_size() to handle 64-bit size. |
| Add some missing bounds checks on 32-bit extent counters. |
| Add Petabyte and Exabyte support. |
| Fix lvcreate error message when 0 extents requested. |
| lvremove man page: volumes must be cluster inactive before being removed. |
| Protect .cache manipulations with fcntl locking. |
| Change .cache timestamp comparisons to use ctime. |
| Fix mirror log LV writing to set all bits in whole LV. |
| Fix clustered VG detection and default runlevels in clvmd_init_rhel4. |
| Fix high-level free space check for partial allocations. |
| |
| Version 2.02.13 - 27th October 2006 |
| =================================== |
| Add couple of missing files to tools/Makefile CLEAN_TARGETS. |
| When adding snapshot leave cow LV mapped device active after zeroing. |
| Fix a clvmd debug message. |
| Add dev_flush() to set_lv(). |
| Add lvchange --resync. |
| Perform high-level free space check before each allocation attempt. |
| Don't allow a node to remove an LV that's exclusively active on anther node. |
| Cope if same PV is included more than once in cmdline PE range list. |
| Set PV size to current device size if it is found to be zero. |
| Add segment parameter to target_present functions. |
| |
| Version 2.02.12 - 16th October 2006 |
| =================================== |
| Fix pvdisplay to use vg_read() for non-orphans. |
| Fall back to internal locking if external locking lib is missing or fails. |
| Retain activation state after changing LV minor number with --force. |
| Propagate clustered flag in vgsplit and require resizeable flag. |
| |
| Version 2.02.11 - 12th October 2006 |
| =================================== |
| Add clvmd function to return the cluster name. not used by LVM yet. |
| Add cling allocation policy. |
| Change _check_contiguous() to use _for_each_pv(). |
| Extend _for_each_pv() to allow termination without error. |
| Abstract _is_contiguous(). |
| Remove duplicated pv arg from _check_contiguous(). |
| Accept regionsize with lvconvert. |
| Add report columns with underscore before field names ending 'size'. |
| Correct regionsize default on lvcreate man page (MB). |
| Fix clvmd bug that could cause it to die when a node with a long name crashed. |
| Add device size to text metadata. |
| Fix format_text mda_setup pv->size and pv_setup pe_count calculations. |
| Fix _for_each_pv() for mirror with core log. |
| Add lvm_dump.sh script to create a tarball of debugging info from a system. |
| Capture error messages in clvmd and pass them back to the user. |
| Remove unused #defines from filter-md.c. |
| Make clvmd restart init script wait until clvmd has died before starting it. |
| Add -R to clvmd which tells running clvmds to reload their device cache. |
| Add LV column to reports listing kernel modules needed for activation. |
| Show available fields if report given invalid field. (e.g. lvs -o list) |
| Add timestamp functions with --disable-realtime configure option. |
| Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg. |
| Fix two potential NULL pointer derefs in error cases in vg_read(). |
| Separate --enable-cluster from locking lib options in lvmconf.sh. |
| Add a missing comma in lvcreate man page. |
| |
| Version 2.02.10 - 19th September 2006 |
| ===================================== |
| Fix lvconvert mirror change case detection logic. |
| Fix mirror log detachment so it correctly becomes a standalone LV. |
| Extend _check_contiguous() to detect single-area LVs. |
| Include mirror log (untested) in _for_each_pv() processing. |
| Use MIRROR_LOG_SIZE constant. |
| Remove struct seg_pvs from _for_each_pv() to generalise. |
| Avoid adding duplicates to list of parallel PVs to avoid. |
| Fix several incorrect comparisons in parallel area avoidance code. |
| Fix segment lengths when flattening existing parallel areas. |
| Log existing parallel areas prior to allocation. |
| Fix mirror log creation when activation disabled. |
| Don't attempt automatic recovery without proper locking. |
| When using local file locking, skip clustered VGs. |
| Add fallback_to_clustered_locking and fallback_to_local_locking parameters. |
| lvm.static uses built-in cluster locking instead of external locking. |
| Don't attempt to load shared libraries if built statically. |
| Change default locking_lib to liblvm2clusterlock.so. |
| Add skip_dev_dir() to process command line VGs. |
| Stop clvmd complaining about nodes that have left the cluster. |
| Move lvm_snprintf(), split_words() and split_dm_name() into libdevmapper. |
| Add lvconvert man page. |
| Add mirror options to man pages. |
| Prevent mirror renames. |
| Move CMDLIB code into separate file and record whether static build. |
| |
| Version 2.02.09 - 17th August 2006 |
| ================================== |
| Fix PE_ALIGN for pagesize over 32KB. |
| Separate out LVM1_PE_ALIGN and pe_align(). |
| Add lvm_getpagesize wrapper. |
| Add --maxphysicalvolumes to vgchange. |
| |
| Version 2.02.08 - 15th August 2006 |
| ================================== |
| Add checks for duplicate LV name, lvid and PV id before writing metadata. |
| Report all sanity check failures, not just the first. |
| Fix missing lockfs on first snapshot creation. |
| Add unreliable --trustcache option to reporting commands. |
| Fix locking for mimage removal. |
| Fix clvmd_init_rhel4 'status' exit code. |
| |
| Version 2.02.07 - 17th July 2006 |
| ================================ |
| Fix activation logic in lvchange --persistent. |
| Don't ignore persistent minor numbers when activating. |
| Use RTLD_GLOBAL when loading shared libraries. |
| Add some forgotten memlock checks to _vg_read to protect against full scans. |
| Add mutex to dmeventd_mirror to avoid concurrent execution. |
| Fix vgreduce --removemissing to return success if VG is already consistent. |
| Fix return code if VG specified on command line is not found. |
| Fix PV tools to include orphaned PVs in default output again. |
| Fixed unaligned access when using clvm. |
| Fix an extra dev_close in a label_read error path. |
| Append patches to commit emails. |
| Fix target_register_events args. |
| Prevent snapshots of mirrors. |
| Add DISTCLEAN_TARGETS to make template for configure.h. |
| More fixes to error paths. |
| Fix lvcreate corelog validation. |
| Add --config for overriding most config file settings from cmdline. |
| Quote arguments when printing command line. |
| Remove linefeed from 'initialising logging' message. |
| Add 'Completed' debug message. |
| Don't attempt library exit after reloading config files. |
| Always compile with libdevmapper, even if device-mapper is disabled. |
| |
| Version 2.02.06 - 12th May 2006 |
| =============================== |
| Propagate --monitor around cluster. |
| Add --monitor to vgcreate and lvcreate to control dmeventd registration. |
| Filter LCK_NONBLOCK in clvmd lock_vg. |
| Add --nosync to lvcreate with LV flag NOTSYNCED. |
| Use mirror's uuid for a core log. |
| Add mirror log fault-handling policy. |
| Improve mirror warning messages and tidy dmeventd syslog output. |
| Propagate nosync flag around cluster. |
| Allow vgreduce to handle mirror log failures. |
| Add --corelog to lvcreate and lvconvert. |
| Create a log header for replacement in-sync mirror log. |
| Use set_lv() and dev_set() to wipe sections of devices. |
| Add mirror_in_sync() flag to avoid unnecessary resync on activation. |
| Add mirror_library description to example.conf. |
| Fix uuid_from_num() buffer overrun. |
| Make SIZE_SHORT the default for display_size(). |
| Fix some memory leaks in error paths found by coverity. |
| Use C99 struct initialisers. |
| Move DEFS into configure.h. |
| Clean-ups to remove miscellaneous compiler warnings. |
| Improve stripe size validation. |
| Increase maximum stripe size limit to physical extent size for lvm2 metadata. |
| Fix activation code to check for pre-existing mirror logs. |
| Tighten region size validation. |
| Ignore empty strings in config files. |
| Require non-zero regionsize and document parameter on lvcreate man page. |
| Invalidate cache if composition of VG changed externally. |
| |
| Version 2.02.05 - 21st April 2006 |
| ================================= |
| Fix vgid string termination in recent cache code. |
| |
| Version 2.02.04 - 19th April 2006 |
| ================================= |
| Check for libsepol. |
| Add some cflow & scope support. |
| Separate out DEFS from CFLAGS. |
| Remove inlines and use unique function names. |
| |
| Version 2.02.03 - 14th April 2006 |
| ================================= |
| vgrename accepts vgid and exported VG. |
| Add --partial to pvs. |
| When choosing between identically-named VGs, also consider creation_host. |
| Provide total log suppression with 2. |
| Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct. |
| Add vgid to struct physical_volume and pass with vg_name to some functions. |
| If two or more VGs are found with the same name, use one that is not exported. |
| Whenever vgname is captured, also capture vgid and whether exported. |
| Remove an incorrect unlock_vg() from process_each_lv(). |
| Update extent size information in vgchange and vgcreate man pages. |
| Introduce origin_from_cow() and lv_is_visible(). |
| pvremove without -f now fails if there's no PV label. |
| Support lvconvert -s. |
| Suppress locking library load failure message if --ignorelockingfailure. |
| Propagate partial mode around cluster. |
| Fix archive file expiration. |
| Fix dmeventd build. |
| clvmd now uses libcman rather than cman ioctls. |
| clvmd will allow new cman to shutdown on request. |
| |
| Version 2.02.02 - 7th February 2006 |
| =================================== |
| Add %.so: %.a make template rule. |
| Switchover library building to use LIB_SUFFIX. |
| Only do lockfs filesystem sync when suspending snapshots. |
| Always print warning if activation is disabled. |
| vgreduce removes mirror images. |
| Add --mirrorsonly to vgreduce. |
| vgreduce replaces active LVs with error segment before removing them. |
| Set block_on_error parameter if available. |
| Add target_version. |
| Add details to format1 'Invalid LV in extent map' error message. |
| Fix lvscan snapshot full display. |
| Bring lvdisplay man page example into line. |
| Add mirror dmeventd library. |
| Add some activation logic to remove_mirror_images(). |
| lvconvert can remove specified PVs from a mirror. |
| lvconvert turns an existing LV into a mirror. |
| Allow signed mirrors arguments. |
| Move create_mirror_log() into toollib. |
| Determine parallel PVs to avoid with ALLOC_NORMAL allocation. |
| Fix lv_empty. |
| |
| Version 2.02.01 - 23rd November 2005 |
| ==================================== |
| Fix lvdisplay cmdline to accept snapshots. |
| Fix open RO->RW promotion. |
| Fix missing vg_revert in lvcreate error path. |
| |
| Version 2.02.00 - 10th November 2005 |
| ==================================== |
| Extend allocation areas to avoid overflow with contiguous with other PVs. |
| Stop lvcreate attempting to wipe zero or error segments. |
| Added new lvs table attributes. |
| Separated out activation preload. |
| Moved activation functions into libdevmapper. |
| Fixed build_dm_name. |
| Add return macros. |
| Added xen xvd devices. |
| Clear up precommitted metadata better. |
| A pvresize implementation. |
| Fix contiguous allocation when there are no preceding segments. |
| Add mirror_seg pointer to lv_segment struct. |
| Only keep a device open if it's known to belong to a locked VG. |
| Fix lvdisplay to show all mirror destinations. |
| Replacement suspend code using libdevmapper dependency tree. |
| Add DEFS to make.tmpl. |
| Use dm_is_dm_major instead of local copy. |
| Allow mapped devices to be used as PVs. |
| Move set_selinux_context into libdevmapper. |
| Fix automatic text metadata buffer expansion (using macro). |
| Cache formatted text metadata buffer between metadata area writes. |
| Add pe_start field to pvs. |
| Add 'LVM-' prefix to uuids. |
| Split lv_segment_area from lv_segment to permit extension. |
| Replacement deactivation code using libdevmapper dependency tree. |
| Simplify dev_manager_info(). |
| Attempt to load missing targets using modprobe. |
| Add -a to lvscan. |
| Move mknodes into libdevmapper. |
| Move bitset, hash, pool and dbg_malloc into libdevmapper. |
| |
| Version 2.01.15 - 16th October 2005 |
| =================================== |
| Refuse to run pvcreate/pvremove on devices we can't open exclusively. |
| Use ORPHAN lock definition throughout. |
| Validate chunksize in lvcreate. |
| Reduce chunksize limit to 512k. |
| Fix chunksize field in reports. |
| Don't hide snapshots from default 'lvs' output. |
| Add is_dm_major() for use in duplicate device detection in lvmcache_add(). |
| Really switch device number in lvmcache when it says it is doing so. |
| Option for bitset memory allocation using malloc as well as pool. |
| Don't assume exactly two mirrors when parsing mirror status. |
| Suppress fsync() error message on filesystems that don't support it. |
| Fix yes_no_prompt() error handling. |
| Add lvm.conf comment warning against multiple filter lines. |
| Tidy lvmconf.sh. |
| Add format1 dev_write debug messages. |
| Add clustered VG attribute to report. |
| Move lvconvert parameters into struct lvconvert_params. |
| Add clustered VG flag to LV lock requests. |
| Change LV locking macros to take lv instead of lvid. |
| Prepend 'cluster' activation parameter to mirror log when appropriate. |
| Pass exclusive flag to lv_activate and on to target activation code. |
| Prevent snapshot creation in a clustered VG for now. |
| Factor out adjusted_mirror_region_size() and generate_log_name_format(). |
| Move compose_log_line() into mirror directory. |
| Factor out _get_library_path(). |
| Don't kill idling clvmd threads. |
| clvmd no longer takes out locks for non-clustered LVs. |
| Recognise ATA over Ethernet (aoe) devices. |
| |
| Version 2.01.14 - 4th August 2005 |
| ================================= |
| Fix lvconvert PV parameter in help string. |
| Prevent snapshots getting activated in a clustered VG. |
| Separate out _build_dev_string. |
| Move zero_lv to toollib. |
| Fix pool format handler to work with pv segment code. |
| |
| Version 2.01.13 - 13th July 2005 |
| ================================ |
| Fix pvmove segment splitting. |
| Abstract vg_validate. |
| Only make one attempt at contiguous allocation. |
| Fix lvm1 format metadata read. |
| Fix lvm1 format non-mirror lvcreate. |
| |
| Version 2.01.12 - 14th June 2005 |
| ================================ |
| Various allocation-related pvmove fixes. |
| Log an error if clvmd can't resolve a host name got from CCS. |
| Fix potential spin loop in clvmd. |
| |
| Version 2.01.11 - 13th June 2005 |
| ================================ |
| Added lvmconf.sh. |
| Use matchpathcon mode parameter. |
| Don't defer closing dead FDs in clvmd. |
| Remove hard-coded 64k text metadata writing restriction. |
| Make VG name restrictions consistent. |
| Introduce lvconvert. So far only removes mirror images. |
| Allow mirror images to be resized. |
| Allow mirror images to have more than one segment. |
| Centralise restrictions on LV names. |
| Always insert an intermediate layer for mirrors. |
| Suppress hidden LVs from reports unless --all is given. |
| Use square brackets for hidden LVs in reports. |
| Allow the creation of mirrors with contiguous extents. |
| Always perform sanity checks against metadata before committing it to disk. |
| Split lv_extend into two steps: choosing extents + allocation to LV(s). |
| Add mirror log region size to metadata. |
| Use list_iterate_items throughout and add list*back macros. |
| Introduce seg_ macros to access areas. |
| Add segtype_is_ macros. |
| Support tiny metadata areas for pool conversions. |
| Mirror activation handles disk log as well as core. |
| Activation code recognises mirror log dependency. |
| Add mirror_log and regionsize fields to report. |
| Fix non-orphan pvchange -u. |
| Fix vgmerge to handle duplicate LVIDs. |
| Move archiver code from tools into library. |
| vgscan/change/display/vgs automatically create metadata backups if needed. |
| Merge cloned allocation functions. |
| Fix contiguous allocation policy with linear. |
| Cope with missing format1 PVs again. |
| Remove lists of free PV segments. |
| Simplify pv_maps code and remove slow bitset algorithm. |
| Red-Hat-ify the clvmd rhel4 initscript. |
| %Zu->%zu |
| Fix loopfiles alias alloc & mem debugging. |
| Un-inline dbg_strdup. |
| lv_reduce tidying. |
| Remove some unnecessary parameters. |
| Introduce seg_is macros. |
| |
| Version 2.01.10 - 3rd May 2005 |
| ============================== |
| Don't create backup and archive dirs till needed. |
| Reinstate full PV size when removing from VG. |
| Support loopfiles for testing. |
| Tidy lv_segment interface. |
| pv_segment support. |
| vgchange --physicalextentsize |
| Internal snapshot restructuring. |
| Remove unused internal non-persistent snapshot option. |
| Allow offline extension of snapshot volumes. |
| Move from 2-step to 3-step on-disk metadata commit. |
| Scan ramdisks too and allow non-O_DIRECT fallback. |
| Annotate, tidy and extend list.h. |
| Alignment tidying. |
| Make clvmd work around some "bugs" in gulm's node state notifications. |
| Tidy clvmd's SIGHUP handler |
| |
| Version 2.01.09 - 4th April 2005 |
| ================================ |
| Add --ignorelockingfailure to vgmknodes. |
| clvmd: Don't allow user operations to start until the lvm thread is fully up. |
| clvmd-gulm: set KEEPALIVE on sockets. |
| |
| Version 2.01.08 - 22nd March 2005 |
| ================================= |
| Add clustered attribute so vgchange can identify clustered VGs w/o locking. |
| Improve detection of external changes affecting internal cache. |
| Add 'already in device cache' debug message. |
| Add -a to pvdisplay -C. |
| Avoid rmdir opendir error messsages when dir was already removed. |
| Tighten signal handlers. |
| Avoid some compiler warnings. |
| Additional rename failure error message. |
| read/write may be macros. |
| clvmd: don't take out lvm thread lock at startup, it only protects jobs list. |
| |
| Version 2.01.07 - 8th March 2005 |
| ================================ |
| Cope with new devices appearing by rescanning /dev if a uuid can't be found. |
| Remove DESTDIR from LVM_SHARED_PATH. |
| clvmd fixes: make FDs close-on-exec |
| gulm unlocks VG & orphan locks at startup in case they are stale |
| gulm now unlocks VG & orphan locks if client dies. |
| |
| Version 2.01.06 - 1st March 2005 |
| ================================ |
| Suppress 'open failed' error messages during scanning. |
| Option to suppress warnings of file descriptors left open. |
| Fix default value of metadatacopies in documentation (2->1). |
| Fix clvmd-gulm locking. |
| ./configure --enable-debug now enables debugging code in clvmd. |
| Fix clvmd-gulm node up/down code so it actually works. |
| clvmd-gulm now releases locks when shut down. |
| |
| Version 2.01.05 - 18th February 2005 |
| ==================================== |
| Static binary invokes dynamic binary if appropriate. |
| Make clvmd config check a little more tolerant. |
| gulm clvmd can now cope with >1 message arriving in a TCP message. |
| |
| Version 2.01.04 - 9th February 2005 |
| =================================== |
| Add fixed offset to imported pool minor numbers. |
| Update binary pathnames in clvmd_init_rhel4. |
| lvm2cmd.so should skip the check for open fds. |
| Remove unused -f from pvmove. |
| Gulm clvmd doesn't report "connection refused" errors. |
| clvmd does a basic config file sanity check at startup. |
| Fix potential thread shutdown race in clvmd. |
| |
| Version 2.01.03 - 1st February 2005 |
| =================================== |
| More 64-bit display/report fixes. |
| More informative startup mesg if can't create /etc/lvm. |
| Fix snapshot device size bug (since 2.01.01). |
| clvmd announces startup and cluster connection in syslog. |
| Gulm clvmd doesn't hang trying to talk to a rebooted node. |
| Gulm clvmd doesn't print cman error on startup. |
| |
| Version 2.01.02 - 21st January 2005 |
| =================================== |
| Update clvmd_init_rhel4: use lvm.static and don't load dlm. |
| Fix some size_t printing. |
| Fix 64 bit xlate consts. |
| Split out pool sptype_names to avoid unused const. |
| Always fail if random id generation fails. |
| Recognise gnbd devices. |
| Fix clvmd startup bug introduced in cman/gulm amalgamation. |
| Improve reporting of node-specific locking errors. |
| |
| Version 2.01.01 - 19th January 2005 |
| =================================== |
| Fix clvmd lv_info_by_lvid open_count. |
| Store snapshot and origin sizes separately. |
| Update vgcreate man page. |
| |
| Version 2.01.00 - 17th January 2005 |
| =================================== |
| Fix vgscan metadata auto-correction. |
| Only ask libdevmapper for open_count when we need it. |
| Adjust RHEL4 clvmd init script priority. |
| Enable building of CMAN & GULM versions of clvmd into a single binary |
| |
| Version 2.00.33 - 7th January 2005 |
| ================================== |
| pvcreate wipes first 4 sectors unless given --zero n. |
| gulm clvmd now uses new ccsd key names. |
| gulm clvmd now doesn't ignore the first node in cluster.conf |
| Improve clvmd failure message if it's already running. |
| Allow user to kill clvmd during initialisation. |
| Fix off-by-one error in cluster_locking that could cause read hangs. |
| |
| Version 2.00.32 - 22nd December 2004 |
| ==================================== |
| Drop static/dl restriction for now. |
| Fix an error fprintf. |
| Fix vgdisplay -s. Breaks (undocumented) lvs/pvs/vgs -s instead for now. |
| Fix device reference counting on re-opens. |
| Ignore sysfs symlinks when DT_UNKNOWN. |
| Add clvmd init script for RHEL4. |
| Skip devices that are too small to be PVs. |
| Fix pvchange -x segfault with lvm2-format orphan. |
| Cope with empty msdos partition tables. |
| Add CONTRIBUTORS file. |
| |
| Version 2.00.31 - 12th December 2004 |
| ==================================== |
| Reopen RO file descriptors RW if necessary. |
| |
| Version 2.00.30 - 10th December 2004 |
| ==================================== |
| Additional device-handling debug messages. |
| Additional verbosity level -vvvv includes line numbers and backtraces. |
| Verbose messages now go to stderr not stdout. |
| Close any stray file descriptors before starting. |
| Refine partitionable checks for certain device types. |
| Allow devices/types to override built-ins. |
| Fix lvreduce man page .i->.I |
| Fix vgsplit man page title. |
| Fix clvmd man makefile. |
| Extend dev_open logging. |
| Make clvmd_fix_conf.sh UNDOable. |
| |
| Version 2.00.29 - 27th November 2004 |
| ==================================== |
| xlate compilation fix. |
| |
| Version 2.00.28 - 27th November 2004 |
| ==================================== |
| Fix partition table & md signature detection. |
| Minor configure/makefile tidy. |
| Export version.h from tools for clvmd. |
| |
| Version 2.00.27 - 24th November 2004 |
| ==================================== |
| Trap large memory allocation requests. |
| Fix to partition table detection code. |
| Improve filter debug mesgs. |
| Make clvmd_fix_conf.sh UNDOable |
| |
| Version 2.00.26 - 23rd November 2004 |
| ==================================== |
| Improve pool debugging stats. |
| Detect partition table signature. |
| pvcreate wipes md superblocks. (With --uuid or --restorefile it prompts.) |
| Separate out md superblock detection code. |
| Prevent snapshot origin resizing. |
| Improve a vgremove error message. |
| Update some man pages. |
| Allow y/n with -ae args (exclusive activation). |
| Fixes to lvcreate vgname parsing. |
| Fix dm_name string size calculation. |
| Improve clvmd error reporting during startup. |
| Make clvmd cope with large gaps in node numbers IDs. |
| Make clvmd initialisation cope better with debugging output. |
| Tidy clvmd socket callbacks so all work happens outside main loop. |
| clvmd -V now displays lvm version too. |
| Add optional gulm build for clvmd |
| |
| Version 2.00.25 - 29th September 2004 |
| ===================================== |
| Fix return code from rm_link for vgmknodes. |
| Make clvmd LV hash table thread-safe. |
| Fix clvmd locking so it will lock out multiple users on the same node. |
| Fix clvmd VG locking to it can cope with multiple VG locks. |
| Remove spurious trailing dot in lvreduce man page. |
| Fix vgremove locking. |
| |
| Version 2.00.24 - 16th September 2004 |
| ===================================== |
| Fix pool_empty so it really does empty the memory pool. |
| Rename old segtypes files to segtype. |
| Some fixes to memory debugging code. |
| Exclude internal commands formats & segtypes from install. |
| |
| Version 2.00.23 - 15th September 2004 |
| ===================================== |
| Export dm name build & split functions. |
| Use O_NOATIME on devices if available. |
| Write log message when each segtype/format gets initialised. |
| New commands 'segtypes' and 'formats'. |
| Suppress pvmove abort message in test mode. |
| Improve pvcreate/remove device not found error message. |
| Allow pvmove to move data within the same PV. |
| Describe how pvmove works on man page. |
| Test for incompatible format/segtype combinations in lv_extend. |
| Fix lvchange example on man page. |
| |
| Version 2.00.22 - 3rd September 2004 |
| ==================================== |
| Fix /dev/vgname perms. |
| Restructure xlate.h. |
| Add clvmd man page. |
| |
| Version 2.00.21 - 19th August 2004 |
| ================================== |
| Update cnxman-socket.h from cman. |
| Recognise iseries/vd devices. |
| Use 'make install_cluster' to install cluster extensions only. |
| Cope with DT_UNKNOWN in sysfs. |
| Fix extents_moved metadata size comment. |
| Remove duplicate line in pvremove help text. |
| Support variable mirror region size. |
| Support PE ranges in pvmove source PV. |
| Fixes to as-yet-unused LV segment splitting code. |
| Change alloc_areas to pe_ranges and allow suppression of availability checks. |
| Add dev_size column to pvs. |
| Add report columns for in-kernel device number. |
| |
| Version 2.00.20 - 3 July 2004 |
| ============================= |
| More autoconf fixes. |
| Fix device number handling for 2.6 kernels. |
| |
| Version 2.00.19 - 29 June 2004 |
| ============================== |
| Reduce severity of setlocale failure message. |
| Recognise argv[0] "initrd-lvm" (pld-linux). |
| Make -O2 configurable. |
| Added --disable-selinux to configure script. |
| LD_FLAGS->LDFLAGS & LD_DEPS->LDDEPS in configure script. |
| Add init_debug to clvmd. |
| |
| Version 2.00.18 - 24 June 2004 |
| ============================== |
| Fix vgchange activation. |
| Add cluster support. |
| |
| Version 2.00.17 - 20 June 2004 |
| ============================== |
| configure --enable-fsadm to try out fsadm. fsadm is not tested yet. |
| Display all filtered devices, not just PVs, with pvs -a. |
| Fix sync_dir() when no / in filename |
| vgcfgbackup -f accepts template with %s for VG name. |
| Extend hash functions to handle non-null-terminated data. |
| Add local activation support. |
| Tidy relative paths in makefile includes. |
| fsadm support for fsck and resizing - needs testing. |
| Add read-only GFS pool support. |
| Add lvm2create_initrd script from http://poochiereds.net/svn/lvm2/ |
| Fix rounding of large diplayed sizes. |
| Suppress decimal point when using units of sectors/bytes. |
| Additional kernel target checks before pvmove & snapshot creation. |
| Add i2o_block. |
| |
| Version 2.00.16 - 24 May 2004 |
| ============================= |
| Set area_count within alloc_lv_segment. |
| Remove error labels from lvresize. |
| Fix a pvs error path. |
| xxchange -ae for exclusive activation. |
| Don't return non-zero status if there aren't any volume groups. |
| Add --alloc argument to tools. |
| Rename allocation policies to contiguous, normal, anywhere, inherit. |
| nextfree becomes normal; anywhere isn't implemented yet. |
| LV inherits allocation policy from VG. Defaults: LV - inherit; VG - normal |
| Additional status character added to vgs to indicate allocation policy. |
| Add reset_fn to external_locking. |
| Ensure presence of virtual targets before attempting activating. |
| Attempt to fix resizing of snapshot origins. |
| Restructure lvresize, bringing it closer to lvcreate. |
| A quick sanity check on vg_disk struct when read in. More checks needed. |
| Only include visible LVs in active/open counts. |
| Add virtual segment types, zero and error. A large sparse device can be |
| constructed as a writeable snapshot of a large zero segment. |
| Add --type to lvcreate/resize. |
| Push lv_create & alloc policy up to tool level. |
| Fix pvdisplay return code. |
| Detect invalid LV names in arg lists. |
| Reporting uses line-at-a-time output. |
| lvm2 format sets unlimited_vols format flag. |
| Internal-only metadata flag support. |
| Basic checking for presence of device-mapper targets. |
| Separate out polldaemon. |
| Revise internal locking semantics. |
| Move find_pv_by_name to library. |
| Rename move->copy. |
| Add devices to segments report. |
| Begin separating out segment code. There's a lot of change here. |
| Compress any (obsolete) long LVM1 pvids encountered. |
| Support for tagged config files. |
| Don't abort operations if selinux present but disabled. |
| Fix typo in configure which left HAVE_LIBDL unset. |
| |
| Version 2.00.15 - 19 Apr 2004 |
| ============================= |
| configure --with-owner= --with-group= to avoid -o and -g args to 'install' |
| |
| Version 2.00.14 - 16 Apr 2004 |
| ============================= |
| Use 64-bit file functions by default. |
| |
| Version 2.00.13 - 16 Apr 2004 |
| ============================= |
| Set devices/md_component_detection = 1 to ignore devices containing md |
| superblocks. [Luca Berra] |
| Ignore error setting selinux file context if fs doesn't support it. |
| |
| Version 2.00.12 - 14 Apr 2004 |
| ============================= |
| Install a default lvm.conf into /etc/lvm if there isn't one already. |
| Allow different installation dir for lvm.static (configure --staticdir=) |
| Fix inverted selinux error check. |
| Recognise power2 in /proc/devices. |
| Fix counting in lvs_in_vg_opened. [It ignored devices open more than once.] |
| |
| Version 2.00.11 - 8 Apr 2004 |
| ============================ |
| Set fallback_to_lvm1 in lvm.conf (or configure --enable-lvm1_fallback) |
| to run lvm1 binaries if running a 2.4 kernel without device-mapper. |
| |
| Version 2.00.10 - 7 Apr 2004 |
| ============================ |
| More fixes for static build. |
| Add basic selinux support. |
| Fix sysfs detection. |
| |
| Version 2.00.09 - 31 Mar 2004 |
| ============================= |
| Update copyright notices for Red Hat. |
| Fix vgmknodes to remove dud /dev/mapper entries. (libdevmapper update reqd). |
| Add LVM1-style colon output to vgdisplay. |
| lvchange --refresh to reload active LVs. |
| Add string display to memory leak dump. |
| Add locking flags & memlock option. |
| Add list_versions to library. |
| Ignore open hidden LVs when checking if deactivation is OK. |
| Suppress move percentage when device inactive. |
| Add lv_info_by_lvid. |
| Various tidy-ups to the build process. |
| Rebaseline internal verbose level. |
| Add --nolocking option for read operations if locking is failing. |
| Add option to compile into a library. |
| When compiled without libdevmapper, only print warning message once. |
| Fix lvreduce PV extent calculations. |
| Fix DESTDIR to work with configure path overrides. |
| Always use / as config file separator & rename internal config file variables. |
| Add support for tagging PV/VG/LVs and hosts. |
| Fix rare bug in recognition of long cmdline argument forms. |
| Add basic internationalisation infrastructure. |
| Don't recurse symlinked dirs such as /dev/fd on 2.6 kernels. |
| Update autoconf files. |
| Add sysfs block device filtering for 2.6 kernels. |
| Update refs for move to sources.redhat.com. |
| |
| Friday 14th November 2003 |
| ========================= |
| Some bug fixes & minor enhancements, including: |
| Backwards compatibility with LVM1 metadata improved. |
| Missing man pages written. |
| Tool error codes made more consistent. |
| vgmknodes written. |
| O_DIRECT can be turned off if it doesn't work in your kernel. |
| dumpconfig to display the active configuration file |
| |
| You need to update libdevmapper before using 'vgmknodes' or 'vgscan --mknodes'. |
| If your root filesystem is on an LV, you should run one of those two |
| commands to fix up the special files in /dev in your real root filesystem |
| after finishing with your initrd. Also, remember you can use |
| 'vgchange --ignorelockingfailure' on your initrd if the tool fails because |
| it can't write a lock file to a read-only filesystem. |
| |
| Wednesday 30th April 2003 |
| ========================= |
| A pvmove implementation is now available for the new metadata format. |
| |
| When running a command that allocates space (e.g. lvcreate), you can now |
| restrict not only which disk(s) may be used but also the Physical Extents |
| on those disks. e.g. lvcreate -L 10 vg1 /dev/hda6:1000-2000:3000-4000 |
| |
| |
| Monday 18th November 2002 |
| ======================== |
| |
| The new format of LVM metadata is ready for you to test! |
| We expect it to be more efficient and more robust than the original format. |
| It's more compact and supports transactional changes and replication. |
| Should things go wrong on a system, it's human-readable (and editable). |
| |
| Please report any problems you find to the mailing list, |
| [email protected]. The software has NOT yet been thoroughly |
| tested and so quite possibly there'll still be some bugs in it. |
| Be aware of the disclaimer in the COPYING file. |
| |
| While testing, we recommend turning logging on in the configuration file |
| to provide us with diagnostic information: |
| log { |
| file="/tmp/lvm2.log" |
| level=7 |
| activation=1 |
| } |
| |
| You should schedule regular backups of your configuration file and |
| metadata backups and archives (normally kept under /etc/lvm). |
| |
| Please read docs/example.conf and "man lvm.conf" to find out more about |
| the configuration file. |
| |
| To convert an existing volume group called vg1 to the new format using |
| the default settings, use "vgconvert -M2 vg1". See "man vgconvert". |
| |
| -M (or --metadatatype in its long form) is a new flag to indicate which |
| format of metadata the command should use for anything it creates. |
| Currently, the valid types are "lvm1" and "lvm2" and they can be |
| abbreviated to "1" and "2" respectively. The default value for this |
| flag can be changed in the global section in the config file. |
| |
| Backwards-compatible support for the original LVM1 metadata format is |
| maintained, but it can be moved into a shared library or removed |
| completely with configure's --with-lvm1 option. |
| |
| Under LVM2, the basic unit of metadata is the volume group. Different |
| volume groups can use different formats of metadata - vg1 could use |
| the original LVM1 format while vg2 used the new format - but you can't |
| mix formats within a volume group. So to add a PV to an LVM2-format |
| volume group you must run "pvcreate -M2" on it, followed by "vgextend". |
| |
| With LVM2-format metadata, lvextend will let you specify striping |
| parameters. So an LV could consist of two or more "segments" - the |
| first segment could have 3 stripes while the second segment has just 2. |
| |
| LVM2 maintains a backup of the current metadata for each volume group |
| in /etc/lvm/backup, and puts copies of previous versions in |
| /etc/lvm/archive. "vgcfgbackup" and "vgcfgrestore" can be used to |
| create and restore from these files. If you fully understand what |
| you're doing, metadata can be changed by editing a copy of a current |
| backup file and using vgcfgrestore to reload it. |
| |
| Please read the pvcreate man page for more information on the new |
| format for metadata. |
| |
| All tools that can change things have a --test flag which can be used |
| to check the effect of a set of cmdline args without really making the |
| changes. |
| |
| |
| What's not finished? |
| ==================== |
| The internal cache. If you turn on debugging output you'll see lots of |
| repeated messages, many of which will eventually get optimised out. |
| |
| --test sometimes causes a command to fail (e.g. vgconvert --test) even |
| though the real command would work: again, fixing this is waiting for |
| the work on the cache. |
| |
| Several of the tools do not yet contain the logic to handle full |
| recovery: combinations of pvcreate and vgcfgrestore may sometimes be |
| needed to restore metadata if a tool gets interrupted or crashes or |
| finds something unexpected. This applies particularly to tools that |
| work on more than one volume group at once (e.g. vgsplit). |
| |
| Display output. Some metadata information cannot yet be displayed. |
| |
| Recovery tools to salvage "lost" metadata directly from the disks: |
| but we hope the new format will mean such tools are hardly ever needed! |