1802 lines
88 KiB
Plaintext
1802 lines
88 KiB
Plaintext
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!
|