| Version 2.02.163 - | |
| ================================= | |
| Version 2.02.162 - 28th July 2016 | |
| ================================= | |
| Extend vg_validate also to check raid configurations thoroughly. | |
| Support lvconvert -Zn also when doing full cache pool conversion. | |
| Suppress not zeroing warn when converting to thin LV for non-zeroing tpool. | |
| Fix automatic updates of PV extension headers to newest version. | |
| Improve lvconvert --trackchanges validation to require --splitmirrors 1. | |
| Add note about lastlog built-in command to lvm man page. | |
| Fix unrecognised segtype flag message. | |
| lvconvert not clears cache pool metadata ONLY with -Zn. | |
| Add allocation/raid_stripe_all_devices to reinstate previous behaviour. | |
| Create raid stripes across fixed small numbers of PVs instead of all PVs. | |
| Enabled lvconvert --uncache to work with partial VG. | |
| Disallow lvconvert --replace with raid0* LVs. | |
| Fix some lvmetad changed VG metadata notifications that sent uncommitted data. | |
| Version 2.02.161 - 15th July 2016 | |
| ================================= | |
| Prohibit some lvchange/lvresize that were failing on raid0 volumes. | |
| Fix segfaults in complex vgsplits. (2.02.159) | |
| Reformat unwieldy lvconvert man page. | |
| Allow --force to be passed through to pvcreate from vgcreate. (2.02.144) | |
| Fix lvresize of filesystem when LV has already right size (2.02.141) | |
| New LVM_LOG_FILE_MAX_LINES env var to limit max size of created logs. | |
| Version 2.02.160 - 6th July 2016 | |
| ================================ | |
| Minor fixes from coverity. | |
| Version 2.02.159 - 6th July 2016 | |
| ================================ | |
| Add raid0_meta segment type that provides metadata space for raid conversions. | |
| Fix created link for a used pool for vgmknode. | |
| Introduce and use is_power_of_2 macro. | |
| Support conversions between striped and raid0 segment types. | |
| Add infrastructure for raid takeover lvconvert options. | |
| Version 2.02.158 - 25th June 2016 | |
| ================================= | |
| Add a more efficient native vgimportclone command to replace the script. | |
| Make lvmlockd always attempt to connect to lvmetad if no connection exists. | |
| Let lvmetad handle new connections after shutdown signal. | |
| Disable lvmetad when vgcfgrestore begins and enable it again after. | |
| Make pvscan do activation if lvmetad is configured but not running. | |
| Fix rescanning the PVs for a single VG when using lvmetad. | |
| Pool metadata lvresize uses now same code as resize of normal volume. | |
| Preserve monitoring status when updating thin-pool metadata. | |
| Return 0 (inactive) when status cannot be queried in _lv_active(). | |
| Switch to log_warn() for failing activation status query. | |
| Replace vgimportclone script with binary. | |
| While lvmetad is shutting down, continue handling all connections cleanly. | |
| Refactor lvconvert argument handling code. | |
| Notify lvmetad when vgcfgrestore changes VG metadata. | |
| Add --logonly option to report only cmd log for a command, not other reports. | |
| Add log/command_log_selection to configure default selection used on cmd log. | |
| Use 'orphan' object type in cmd log for groups to collect PVs not yet in VGs. | |
| Add lvm lastlog command for query and display of last cmd's log in lvm shell. | |
| Report per-object return codes via cmd log while processing multiple objects. | |
| Annotate processing code with log report hooks for per-object command log. | |
| Also pass common printed messages (besides warnings and errors) to log report. | |
| Log warnings and errors via report during cmd processing if this is enabled. | |
| Make it possible to iterate over internal 'orphan' VGs in process_each_vg fn. | |
| Make -S|--select option groupable that allows this option to be repeated. | |
| Make -O|--sort option groupable that allows this option to be repeated. | |
| Add --configreport option to select report for which next options are applied. | |
| Add support for priorities on grouping command arguments. | |
| Add report/{pvs,vgs,lvs,pvsegs,segs}_{cols,sort}_full to lvm.conf. | |
| Add lvm fullreport command for joined PV, VG, LV and segment report per VG. | |
| Integrate report group handling and cmd log report into cmd processing code. | |
| Add log/report_command_log to lvm.conf to enable or disable cmd log report. | |
| Add log/report_output_format to lvm.conf for default report output format. | |
| Recognize --reportformat {basic|json} option to select report output format. | |
| Add log/command_log_{sort,cols} to lvm.conf to configure command log report. | |
| Add log_object_{type,name,id,group,group_id} fields to cmd log. | |
| Add log_{seq_num,type,context,message,errno,ret_code} fields to cmd log. | |
| Add CMDLOG report type - a separate report type for command logging. | |
| Version 2.02.157 - 17th June 2016 | |
| ================================= | |
| Change pvscan --cache -aay to scan locally if lvmetad fails. | |
| Version 2.02.156 - 11th June 2016 | |
| ================================= | |
| Don't allow duplicate orphan PVs to be used with vgcreate/vgextend/pvcreate. | |
| Improve handling of lvmetad update failures. | |
| Yes/No prompt accepts '^[ ^t]*([Yy]([Ee]([Ss]|)|)|[Nn]([Oo]|))[ ^t]*$'. | |
| If available, also collect output from lsblk command when running lvmdump -s. | |
| Version 2.02.155 - 3rd June 2016 | |
| ================================ | |
| Reject PV tags on pvmove cmdline because only 1 PV is supported. (2.02.141) | |
| Fix compilation error when building with configure --disable-devmapper. | |
| Fix lvmconfig --type diff to display complete diff if config cascade used. | |
| Automatically filter out partitioned loop devices with partscan (losetup -P). | |
| Fix lvm devtypes internal error if -S used with field name from pvs/vgs/lvs. | |
| When reporting Data%,Snap%,Meta%,Cpy%Sync use single ioctl per LV. | |
| Add lvseg_percent_with_info_and_seg_status() for percent retrieval. | |
| Enhance internal seg_status handling to understand snapshots better. | |
| When refresh failed in suspend, call resume upon error path. | |
| Support passthrough cache mode when waiting for clean cache. | |
| Check cache status only for 'in-use' cache pools. | |
| Extend setup_task() to preset flushing for dm_task object. | |
| When checking LV is a merging COW, validate its a COW LV first. | |
| Correcting value in copy_percent() for 100%. | |
| Update vgreduce to use process_each_vg. | |
| Update lvconvert to use process_each_lv. | |
| Update pvscan to use process_each_vg for autoactivation. | |
| Add basic support for --type raid0 using md. | |
| Add support for lvchange --cachemode for cached LV. | |
| Fix liblvm2app error handling when setting up context. | |
| Delay liblvm2app init in python code until it is needed. | |
| Simplify thread locking in lvmetad to fix locking problems. | |
| Allow pvremove -ff to remove a duplicate PV. | |
| Fix lvm2-activation-generator to read lvm.conf without full command setup. | |
| Allow a minimal context to be used in lvm2app for reading lvm.conf. | |
| Version 2.02.154 - 14th May 2016 | |
| ================================ | |
| Fix liblvm segfault after failure initialising lvmetad connection. | |
| Retry open without O_NOATIME if it fails (not file owner/CAP_FOWNER). | |
| Split _report into one fn for options and arguments and one for processing. | |
| Version 2.02.153 - 7th May 2016 | |
| =============================== | |
| Change warning messages related to duplicate PVs. | |
| A named device is always processed itself, not switched for a duplicate. | |
| Add PV attr "d" and report field "duplicate" for duplicate PVs. | |
| Add config setting to disallow VG changes when duplicate PVs exist. | |
| Use device size and active LVs to choose the preferred duplicate PV. | |
| Disable lvmetad when duplicate PVs are seen. | |
| Support --chunksize option also when caching LV when possible. | |
| Add function to check for target presence and version via 1 ioctl. | |
| Version 2.02.152 - 30th April 2016 | |
| ================================== | |
| Use any inherited tags when wiping metadata sub LVs to ensure activation. | |
| Add str_list_wipe. | |
| Improve support for interrupting procesing of volumes during lvchange. | |
| Use failed command return code when lvchanging read-only volume. | |
| Show creation transaction_id and zeroing state of pool with thin volume. | |
| Stop checking for dm_cache_mq policy with cache target 1.9 (alias to smq). | |
| Check first /sys/module/dm_* dir existance before using modprobe. | |
| Remove mpath from 10-dm.rules, superseded by 11-dm-mpath.rules (mpath>=0.6.0). | |
| Version 2.02.151 - 23rd April 2016 | |
| ================================== | |
| Fix error path after reusing of _setup_task (2.02.150). | |
| Fix memory access for empty sysfs values (2.02.149). | |
| Disable lvmetad when lvm1 metadata is seen, so commands revert to scanning. | |
| Suppress errors when snapshot merge gets delayed because volume is in use. | |
| Avoid internal snapshot LV names in messages. | |
| Autodetect and use /run/lock dir when available instead of /var/lock. | |
| lvchange --refresh for merging thin origin will retry to deactivate snapshot. | |
| Recognize in-progress snapshot merge for thin volumes from dm table. | |
| Avoid deciding to initiate a pending snapshot merge during resume. | |
| Improve retrying lvmetad requests while lvmetad is being updated. | |
| Read devices instead of using the lvmetad cache if rescan fails. | |
| Move lvmetad token/filter check and device rescan to the start of commands. | |
| Don't try deactivating fictional internal LV before snapshot merge. (2.02.105) | |
| When not obtaining devs from udev, check they exist before caching them. | |
| Detect device mismatch also when compiling without udev support. | |
| Version 2.02.150 - 9th April 2016 | |
| ================================= | |
| Avoid using flushing dm status ioctl when checking for usable DM device. | |
| Check for devices without LVM- uuid prefix only with kernels < 3.X. | |
| Reuse %FREE size aproximation with lvcreate -l%PVS thin-pool. | |
| Allow the lvmdump directory to exist already provided it is empty. | |
| Show lvconverted percentage with 2 decimal digits. | |
| Fix regression in suspend when repairing --type mirror (2.02.133). | |
| Version 2.02.149 - 1st April 2016 | |
| ================================= | |
| Do not flush thin-pool when checking metadata fullness. | |
| Remove spurious error about no value in /sys/dev/block/major:minor/dm/uuid. | |
| Fix device mismatch detection for LV if persistent .cache file is used. | |
| Fix holder device not being found in /dev while sysfs has it during dev scan. | |
| Version 2.02.148 - 26th March 2016 | |
| ================================== | |
| Introduce TARGET_NAME and MODULE NAME macros. | |
| Replace hard-coded module and target names with macros. | |
| Add pv_major and pv_minor report fields. | |
| Detect and warn about mismatch between devices used and assumed for an LV. | |
| Version 2.02.147 - 19th March 2016 | |
| ================================== | |
| If available, use /proc/self/mountinfo to detect mounted volume in fsadm. | |
| Fix resize of stacked raid thin data volume (2.02.141). | |
| Fix test for lvremove failure in lvconvert --uncache (2.02.146). | |
| Version 2.02.146 - 11th March 2016 | |
| ================================== | |
| More man page cleanups in lvconvert. | |
| Fix makefile vpath in /udev when generating udev rules files. | |
| Another attempt to improve VG name parsing for lvconvert (2.02.144). | |
| Use new cache status info and skip flushing for failed cache. | |
| Support --uncache with missing PVs. | |
| Tidy report field names, headings and widths. | |
| Add vgscan --notifydbus to send a dbus notification. | |
| Add dbus notification from commands after a PV/VG/LV changes state. | |
| Version 2.02.145 - 4th March 2016 | |
| ================================= | |
| Make it possible to use lvremove and lvrename on historical LVs. | |
| For historical LVs, report 'none' for lv_layout and 'history' for lv_role. | |
| Add full_{ancestors,descendants} fields to report LV ancestry with history. | |
| Report (h)istorical state within 5th bit (State) of the lv_attr field. | |
| Add lv_historical reporting field to report if LV is historical or not. | |
| Add lv_time_removed reporting field to display removal time for hist. LVs. | |
| Report lv_name, lv_uuid, vg_name, lv_time for historical LVs. | |
| Add --nohistory switch to lvremove to disable history recording on demand. | |
| Add -H|--history switch to lvs and lvdisplay to include historical LVs. | |
| Create historical LVs out of removed thin snapshot LVs and record in history. | |
| Add metadata/lvs_history_retention_time for automatic removal of hist. LVs. | |
| Add metadata/record_lvs_history config for switching LV history recording. | |
| Add support and infrastructure for tracking historical LVs. | |
| Improve lvconvert man page. | |
| Add kernel_cache_policy lvs field. | |
| Display [unknown] instead of 'unknown device' in pvs output. | |
| Fix error path when pvcreate allocation fails (2.02.144). | |
| Display [unknown] instead of blank for unknown VG names in pvs output. | |
| Version 2.02.144 - 26th February 2016 | |
| ===================================== | |
| Use new PV processing code in pvcreate/vgcreate/vgextend/pvremove. | |
| Add new PV processing code that prompts user without locks held. | |
| Prevent lvmlockd blocking with new flag requiring sanlock 3.3.0. | |
| Only show (u)sed pv_attr char when PV is not (a)llocatable. (2.02.143) | |
| Update makefile to generate lcov output also for lvmpolld and lvmlockd. | |
| Fix SystemdService lvm2-lvmdbusd.service name. | |
| Improve support for env LVM_VG_NAME for reference VG name in lvconvert. | |
| Fix regression when lvresize accepted zero sizes. (2.02.141) | |
| Always warn user about PV in use even when pvremove uses --force --force. | |
| Use uninitialized pool header detection in all cases. | |
| Fix read error detection when checking for uninitialized thin-pool header. | |
| Fix error path for internal error in lvmetad VG lookup code. | |
| Version 2.02.143 - 21st February 2016 | |
| ===================================== | |
| Fix error path when sending thin-pool message fails in update_pool_lv(). | |
| Support reporting CheckNeeded and Fail state for thin-pool and thin LV. | |
| For failing thin-pool and thin volume correctly report percentage as INVALID. | |
| Report -1, not 'unkown' for lv_{snapshot_invalid,merge_failed} with --binary. | |
| Add configure --enable-dbus-service for an LVM D-Bus service. | |
| Replace configure --enable-python_bindings with python2 and python3 versions. | |
| If PV belongs to some VG and metadata missing, skip it if system ID is used. | |
| Automatically change PV header extension to latest version if writing PV/VG. | |
| Identify used PVs in pv_attr field by new 'u' character. | |
| Add pv_in_use reporting field to report if PV is used or not. | |
| Add pv_ext_vsn reporting field to report PV header extension version. | |
| Add protective flag marking PVs as used even if no metadata available. | |
| Version 2.02.142 - 15th February 2016 | |
| ===================================== | |
| Fix memory pool corruption in pvmove (2.02.141). | |
| Support control of spare metadata creation when repairing thin-pool. | |
| Fix config type of 'log/verbose' from bool to int (2.02.99). | |
| Fix inverted data LV thinp watermark calc for dmeventd response (2.02.133). | |
| Use use_blkid_wiping=0 if not defined in lvm.conf and support not compiled in. | |
| Do not check for suspended devices if scanning for lvmetad update. | |
| Clear cached bootloader areas when PV format changed. | |
| Fix partn table filter with external_device_info_source="udev" and blkid<2.20. | |
| Version 2.02.141 - 25th January 2016 | |
| ==================================== | |
| Add metadata/check_pv_device_sizes switch to lvm.conf for device size checks. | |
| Warn if device size is less than corresponding PV size in metadata. | |
| Cache device sizes internally. | |
| Restore support for command breaking in process_each_lv_in_vg() (2.02.118). | |
| Use correct mempool when process_each_lv_in_vg() (2.02.118). | |
| Fix lvm.8 man to show again prohibited suffixes. | |
| Fix configure to set proper use_blkid_wiping if autodetected as disabled. | |
| Initialise udev in clvmd for use in device scanning. (2.02.116) | |
| Add seg_le_ranges report field for common format when displaying seg devices. | |
| Honour report/list_item_separator for seg_metadata_le_ranges report field. | |
| Don't mark hidden devs in -o devices,metadata_devices,seg_pe_ranges.(2.02.140) | |
| Change LV sizes in seg_pe_ranges report field to match underlying devices. | |
| Add kernel_cache_settings report field for cache LV settings used in kernel. | |
| Version 2.02.140 - 16th January 2016 | |
| ==================================== | |
| Fix lvm2app to return either 0 or 1 for lvm_vg_is_{clustered,exported}. | |
| Add kernel_discards report field to display thin pool discard used in kernel. | |
| Correct checking of target presence when driver access is disabled. | |
| Eval poolmetadatasize arg earlier in lvresize. | |
| Fix vgcfgrestore to respect allocatable attribute of PVs. | |
| Add report/mark_hidden_devices to lvm.conf. | |
| Use brackets consistently in report fields to mark hidden devices. | |
| Restore background polling processing during auto-activation (2.02.119). | |
| Fix invalid memory read when reporting cache LV policy_name (2.02.126). | |
| Version 2.02.139 - 8th January 2016 | |
| =================================== | |
| Update lvmlockd with the new VG seqno before devices are suspended. | |
| Rework vgrename to use the common processing code in toollib. | |
| Make pvs show new devices on the system since the last .cache update. | |
| Document F,D and M thin pool health status chars for lv_attr in lvs man page. | |
| Also add lvm2-activation{-early,-net}.service systemd status for lvmdump -s. | |
| Version 2.02.138 - 14th December 2015 | |
| ===================================== | |
| Support lvrename for hidden (used) cache pools. | |
| Fix lvrename for stacked cache pools. | |
| Version 2.02.137 - 5th December 2015 | |
| ==================================== | |
| Restore archiving before changing metadata in vgextend (2.02.117). | |
| Dropped internal usage of log_suppress(2). | |
| Cleaned logging code for buffer size usage. | |
| Added internal id_read_format_try() function to check and read valid UUID. | |
| Change lvcreate, lvrename, lvresize to use process_each_vg. | |
| Change process_each_vg to handle single VG as separate arg. | |
| Issue error if ambiguous VG name is supplied in most commands. | |
| Make process_each fns always work through full list of known VG names. | |
| Use dm_get_status_mirror() instead of individual parsers. | |
| Add mem pool arg for check_transient_status() target function. | |
| Avoid misleading error with -m is omitted with lvconvert to raid types. | |
| Add system_id to vginfo cache. | |
| Version 2.02.136 - 28th November 2015 | |
| ===================================== | |
| Add new --sinceversion option for lvmconfig --type new. | |
| Fix inactive table loaded for wrapping thin-pool when resizing it. | |
| Extend the list of ignored libraries when locking memory. | |
| Version 2.02.135 - 23rd November 2015 | |
| ===================================== | |
| Add a model file for Coverity. | |
| Show correct error message for unsupported yet cache pool repair. | |
| Allow lvconvert cache pools' data and metadata LV to raid. | |
| Fix reading of old metadata with missing cache policy or mode settings. | |
| Issue error if external_device_info_source=udev and udev db record incomplete. | |
| Update lvmetad duplicate VG name handling to use hash function extensions. | |
| Detect invalid vgrenames by vgid where the name is unchanged. | |
| Fix passing of 32bit values through daemons (mostly lvmlockd). | |
| Use local memory pool for whole alloc_handle manipulation. | |
| Add missing pointer validation after dm_get_next_target(). | |
| Do not deref NULL pointer in debug message for _match_pv_tags(). | |
| Drop unneeded stat() call when checking for sysfs file. | |
| Fix memory leak on error path of failing thin-pool percentage check. | |
| Add missing test for failing node allocation in lvmetad. | |
| Correct configure messages when enabling/disabling lvmlockd. | |
| Version 2.02.134 - 9th November 2015 | |
| ==================================== | |
| Refactor some lvmetad code and adjust some duplicate PV messages. | |
| No longer repair/wipe VG/PVs if inaccessible because foreign or shared. | |
| Pass correct data size to mirror log calc so log can be bigger than 1 extent. | |
| Version 2.02.133 - 30th October 2015 | |
| ==================================== | |
| Support repeated -o|--options for reporting commands. | |
| Support -o- and -o# for reporting commands to remove and compact fields. | |
| Fix missing PVs from pvs output if vgremove is run concurrently. | |
| Remove unwanted error message when running pvs/vgs/lvs and vgremove at once. | |
| Check newly created VG's metadata do not overlap in metadata ring buffer. | |
| Check metadata area size is at least the minimum size defined for the format. | |
| Thin pool targets uses low_water_mark from profile. | |
| Dropping 'yet' from error of unsupported thick snapshot of snapshots. | |
| Do not support unpartitioned DASD devices with CDL formatted with pvcreate. | |
| For thins use flush for suspend only when volume size is reduced. | |
| Enable code which detects the need of flush during suspend. | |
| Ensure --use-policy will resize volume to fit below threshold. | |
| Correct percentage evaluation when checking thin-pool over threshold. | |
| Fix lvmcache to move PV from VG to orphans if VG is removed and lvmetad used. | |
| Fix lvmcache to not cache even invalid info about PV which got removed. | |
| Support checking of memlock daemon counter. | |
| Allow all log levels to be used with the lvmetad -l option. | |
| Add optional shutdown when idle support for lvmetad. | |
| Fix missing in-sync progress info while lvconvert used with lvmpolld. | |
| Add report/compact_output_cols to lvm.conf to define report cols to compact. | |
| Do not change logging in lvm2 library when it's already set. | |
| Check for enough space in thin-pool in command before creating new thin. | |
| Make libblkid detect all copies of the same signature if use_blkid_wiping=1. | |
| Fix vgimportclone with -n to not add number unnecessarily to base VG name. | |
| Cleanup vgimportclone script and remove dependency on awk, grep, cut and tr. | |
| Add vg_missing_pv_count report field to report number of missing PVs in a VG. | |
| Properly identify internal LV holding sanlock locks within lv_role field. | |
| Add metadata_devices and seg_metadata_le_ranges report fields for raid vols. | |
| Fix lvm2-{activation,clvmd,cmirrord,monitor} service to exec before mounting. | |
| Version 2.02.132 - 22nd September 2015 | |
| ====================================== | |
| Fix lvmconf to set locking_type=2 if external locking library is requested. | |
| Remove verbose message when rescanning an unchanged device. (2.02.119) | |
| Add origin_uuid, mirror_log_uuid, move_pv_uuid, convert_lv_uuid report fields. | |
| Add pool_lv_uuid, metadata_lv_uuid, data_lv_uuid reporting fields. | |
| 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 lvm2-pvscan@.service 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 lvm2-pvscan@.service 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, | |
| linux-lvm@sistina.com. 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! |