1 Version 2.02.56 - 24th November 2009
2 ====================================
3 Add missing vg_release to pvs and pvdisplay to fix memory leak.
4 Do not try to unlock VG which is not locked in _process_one_vg.
5 Move is_long_lived persistent_filter_dump to happen after every full scan.
6 Refresh device filters before full device rescan in lvmcache.
7 Return error status if vgchange fails to activate some volume.
8 Fix suspend/resume lock type test causing unbalanced memory locking.
9 Revert vg_read_internal change as clvmd was not ready for vg_read. (2.02.55)
11 Version 2.02.55 - 19th November 2009
12 ====================================
13 Fix deadlock when changing mirrors due to unpaired memlock refcount changes.
14 Use separate memlock counter for dmeventd handlers to permit device scanning.
15 Directly restrict vgchange to activating visible LVs.
16 Fix pvmove region_size overflow for very large PVs.
17 Fix lvcreate and lvresize %PVS argument always to use sensible total size.
18 Tidy some uses of arg_count and introduce arg_is_set.
19 Export outnl and indent functions for modules.
20 Flush stdout after yes/no prompt.
21 Update vgsplit and vgcreate to use vg_set_clustered.
22 Add vg_mda_count and vg_set_clustered library functions.
23 Add more vgcreate and vgsplit nightly tests.
24 Insert some missing stack macros into activation code.
25 Recognise DRBD devices and handle them like md devices.
27 Version 2.02.54 - 26th October 2009
28 ===================================
29 Update lvcreate/lvconvert man pages to explain PhysicalVolume parameter.
30 Document --all option in man pages, cleanup {pv|vg|lv}{s|display} man pages.
31 Permit snapshots of mirrors.
32 Cleanup mimagetmp LV if allocation fails for new lvconvert mimage.
33 Fix clvmd segfault when refresh_toolcontext fails.
34 Remember to clear 'global lock held during cache refresh' state after use.
35 Use udev flags support in LVM and apply various fixes to udev rules.
36 Delay announcing mirror monitoring to syslog until initialisation succeeded.
37 Handle metadata with unknown segment types more gracefully.
38 Set default owner and group to null.
39 Add dmeventd.static to the build.
40 Disable realtime support code by default.
41 Make clvmd return 0 on success rather than 1.
42 Add --pvmetadatacopies for pvcreate, vgcreate, vgextend, vgconvert.
43 Add implict pvcreate support to vgcreate and vgextend.
44 Correct example.conf to indicate that lvm2 not lvm1 is the default format.
45 Remove an unused stray LVM1_SUPPORT ifdef.
46 Only include selinux libs in libdevmapper.pc when selinux build enabled.
47 Allow for a build directory separate from the source.
48 Update distclean target for rename clogd to cmirrord. (2.02.52)
49 Only do lock conversions in clvmd if we are explicitly asked for one.
50 Introduce percent_range_t and centralise snapshot full/mirror in-sync checks.
51 Factor out poll_mirror_progress and introduce progress_t.
52 Distinguish between powers of 1000 and powers of 1024 in unit suffixes.
53 Restart lvconverts in vgchange by sharing lv_spawn_background_polling.
54 Generalise polldaemon code by changing mirror-specific variable names.
55 Don't attempt to deactivate an LV if any of its snapshots are in use.
56 Return error if lv_deactivate fails to remove device from kernel.
57 Provide alternative implementation of obsolete siginterrupt().
58 Consolidate LV allocation into alloc_lv().
59 Treat input units of both 's' and 'S' as 512-byte sectors. (2.02.49)
60 Use standard output units for 'PE Size' and 'Stripe size' in pv/lvdisplay.
61 Add configure --enable-units-compat to set si_unit_consistency off by default.
62 Add global/si_unit_consistency to enable cleaned-up use of units in output.
64 Version 2.02.53 - 25th September 2009
65 =====================================
66 Create any directories in /dev with DM_DEV_DIR_UMASK (022).
67 Enable dmeventd monitoring section of config file by default.
68 Update lvm2 monitoring script to lvm2_monitoring_init_red_hat.in.
69 Fix lvm2app test to run under test/api subdirectory only when configured.
70 Add vg_is_resizeable() and cleanup reference to VG_RESIZEABLE.
72 Version 2.02.52 - 15th September 2009
73 =====================================
74 Update _process_one_vg to cleanup properly after vg_read_error.
75 Add lots of missing stack debug messages to tools.
76 Make readonly locking available as locking type 4.
77 Fix readonly locking to permit writeable global locks (for vgscan). (2.02.49)
78 Add DM_UDEV_RULES_VSN environment variable to udev rules.
79 Update vgsplit, vgmerge, and vgrename to obey new vgname ordering rules.
80 Make lvm2app pv_t, lv_t, vg_t handle definitions consistent with lvm_t.
81 Enforce an alphabetical lock ordering on vgname locking.
82 Prioritise write locks over read locks by default for file locking.
83 Add local lock files with suffix ':aux' to serialise locking requests.
84 Fix global locking in PV reporting commands (2.02.49).
85 Fix pvcreate string termination in duplicate uuid warning message.
86 Don't loop reading sysfs with pvcreate on a non-blkext partition (2.02.51).
87 Fix vgcfgrestore error paths when locking fails (2.02.49).
88 Update Makefile distclean target.
89 Add libudev configuration check.
90 Make clvmd check corosync to see what cluster interface it should use.
91 Add clvmd autodetection check and cleanup related configure messages.
92 Rewrite clvmd configuration code to cope with all combinations of libs.
93 Added configure --enable-cmirrord to build the cluster mirror log daemon.
94 Rename clogd to cmirrord.
95 Make lvchange --refresh only take a read lock on volume group.
96 Fix race where non-blocking file locks could be granted in error.
97 Fix vgextend error path - if ORPHAN lock fails, unlock / release vg (2.02.49).
98 Fix compile warning in clvmd.
99 Clarify use of PE ranges in lv{convert|create|extend|resize} man pages.
100 Remove useless _pv_write wrapper.
101 Add lvm2app.sh to tests conditional upon configure --enable-applib.
102 Add lvm_vg_is_clustered, lvm_vg_is_exported, and lvm_vg_is_partial.
103 Update lvm_vg_remove to require lvm_vg_write to commit remove to disk.
104 Update test/api/test.c to call lvm_vg_create and lvm_vg_remove.
106 Version 2.02.51 - 6th August 2009
107 =================================
108 Fix locking in clvmd (2.02.50).
109 Add --noudevsync option for relevant LVM tools.
110 Add activation/udev_sync to lvm.conf.
111 Only change LV symlinks on ACTIVATE not PRELOAD.
112 Make lvconvert honour log mirror options combined with downconversion.
113 Allow LV suspend while --ignorelockingfailure is in force.
114 Update synopsis in lvconvert manpage to mention --repair.
115 Set cookies in activation code and wait for udev to complete processing.
116 Added configure --enable-udev_rules --enable-udev_sync.
117 Added configure --with-udev-prefix --with-udevdir.
118 Added udev dir to hold udev rules.
119 Add devices/data_alignment_detection to lvm.conf.
120 Add devices/data_alignment_offset_detection to lvm.conf.
121 Add --dataalignmentoffset to pvcreate to shift start of aligned data area.
122 Fix _mda_setup() to not check first mda's size before pe_align rounding.
123 Document -I option of clvmd in the man page.
124 Fix configure script to handle multiple clvmd selections.
125 Fix lvm2app.pc installation filename.
126 Remove pv_t, vg_t & lv_t handles from lib. Only liblvm uses them.
127 Rename lvm.h to lvm2app.h for now.
129 Version 2.02.50 - 28th July 2009
130 ================================
131 Change test/api/test.c prompt so it's not confused with the main lvm prompt.
132 Update liblvm unit tests in test/api to cover latest liblvm changes.
133 Add unimplemented lvm_lv_resize and lvm_pv_resize skeletons to liblvm.
134 Add lvm_library_get_version to liblvm.
135 Add lvm_config_override to liblvm to allow caller to override LVM config.
136 Add lvm_lv_is_active and lvm_lv_is_suspended to liblvm.
137 Add lvm_lv_activate and lvm_lv_deactivate to liblvm.
138 Add lvm_scan, lvm_vg_reduce and lvm_vg_remove_lv to liblvm.
139 Add functions to get numeric properties to liblvm.
140 Add lvm_{pv|vg|lv}_get_{name|uuid} to liblvm.
141 Add lvm_vg_list_pvs and lvm_vg_list_lvs to liblvm.
142 Add lvm_vg_open and lvm_vg_create_lv_linear to liblvm.
143 Add lvm_list_vg_names/uuids to liblvm.
144 Add lvm_errno and lvm_errmsg to liblvm to obtain failure information.
145 Rename lvm_create/destroy to lvm_init/quit.
146 Rename lvm_reload_config to lvm_config_reload.
147 Refactor _override_settings to use new override_config_tree_from_string.
148 Add vg_reduce to metadata.c and metadata-exported.h.
149 Update lvm.h to clarify API behavior and return codes.
150 Update lvm_vg_extend to do an implicit pvcreate on the device.
151 Update display.c to use vg_free(vg) instead of duplicating the calculation.
152 Refactor vg_size, vg_free, and pv_mda_count field calculations for liblvm.
153 Refactor pvcreate and lvcreate for liblvm.
154 Add global/wait_for_locks to lvm.conf so blocking for locks can be disabled.
155 All LV locks are non-blocking so remove LCK_NONBLOCK from separate macros.
156 Fix race condition with vgcreate and vgextend on same device (2.02.49).
157 Remove redundant validate_name call from vgreduce.
158 Remove unused handles lvseg, pvseg inside liblvm/lvm.h.
159 Add liblvm2app Makefile installation targets.
160 Add liblvm pkgconfig file.
161 Use newly-independent LVM_LIBAPI in liblvm soname. E.g. liblvm2app.so.2.1.
162 Add an API version number, LVM_LIBAPI, to the VERSION string for liblvm.
163 Pass a pointer to struct cmd_context to init_multiple_segtypes
164 Return EINVALID_CMD_LINE not success when invalid VG name format is used.
165 Remove unnecessary messages after vgcreate/vgsplit refactor (2.02.49).
166 Add log_errno to set a specific errno and replace log_error in due course.
167 Change create_toolcontext to still return an object if it fails part-way.
168 Add EUNCLASSIFIED (-1) as the default LVM errno code.
169 Store any errno and error messages issued while processing each command.
170 Use log_error macro consistently throughout in place of log_err.
172 Version 2.02.49 - 15th July 2009
173 ================================
174 Add readonly locking type to replace implementation of --ignorelockingfailure.
175 Exclude VG_GLOBAL from vg_write_lock_held so scans open devs read-only again.
176 Add unit test case for liblvm VG create/delete APIs.
177 Add liblvm APIs to implement creation and deletion of VGs.
178 Initialize cmd->cmd_line to "liblvm" in new liblvm library.
179 Place handles to liblvm objects for pv, vg, lv, lvseg, pvseg inside lvm.h.
180 Refactor vgsplit and vgextend to remove READ_REQUIRE_RESIZEABLE flag.
181 Use _exit() not exit() after forking to avoid flushing libc buffers twice.
182 Add cast to log_info arg in _find_labeller to avoid Sparc64 warning.
183 Make cmd->cmd_line const.
184 Fix dev name mismatch in vgcreate man page example.
185 Refactor vg_remove_single for use in liblvm.
186 Make all tools use consistent lock ordering obtaining VG_ORPHAN lock second.
187 Check md devices for a partition table during device scan.
188 Add extended device (blkext) and md partition (mdp) types to filters.
189 Make text metadata read errors for segment areas more precise.
190 Fix text segment metadata read errors to mention correct segment name.
191 Include segment and LV names in text segment import error messages.
192 Add parent node to config_node structure.
193 Update vgsplit and vgcreate to call new vg_create and 'set' functions.
194 Change vg_create to take minimal parameters, obtain a lock, and return vg_t.
195 Refactor vgchange extent_size, max_lv, max_pv, and alloc_policy for liblvm.
196 Update t-vgcreate-usage.sh to test for default vg properties.
197 Fix memory leak in vgsplit when re-reading the vg.
198 Make various exit/cleanup paths more robust after lvm init failures.
199 Use LCK_NONBLOCK implicitly instead of explicit vg_read() flag.
200 Remove unnecessary locking and existence tests from new vg_read() interface.
201 Permit several segment types to be registered by a single shared object.
202 Update the man pages to document size units uniformly.
203 Allow commandline sizes to be specified in terms of bytes and sectors.
204 Update 'md_chunk_alignment' to use stripe-width to align PV data area.
205 Update test/t-inconsistent-metadata.sh to match new vg_read interface.
206 Add lvmcache_init() to polldaemon initialization.
207 Convert tools to use new vg_read / vg_read_for_update.
208 Fix segfault in vg_release when vg->cmd is NULL.
210 Version 2.02.48 - 30th June 2009
211 ================================
212 Abort if automatic metadata correction fails when reading VG to update it.
213 Explicitly request fallback to default major number in device mapper.
214 Ignore suspended devices during repair.
215 Call vgreduce --removemissing automatically to fix missing PVs in dmeventd.
216 Suggest using lvchange --resync when adding leg to not-yet-synced mirror.
217 Destroy toolcontext on clvmd exit to avoid memory pool leaks.
218 Fix lvconvert not to poll mirror if no conversion in progress.
219 Fix memory leaks in toolcontext error path.
220 Reinstate partial activation support in clustered mode. (2.02.40)
221 Allow metadata correction even when PVs are missing.
222 Use 'lvm lvresize' instead of 'lvresize' in fsadm.
223 Do not use '-n' realine option in fsadm for busybox compatiblity.
224 Add vg_lock_newname() library function for vgrename, vgsplit and vgcreate.
225 Round up requested readahead to at least one page and print warning.
226 Try to repair vg before actual vgremove when force flag provided.
227 Fix possible double release of VG after recovery.
228 Add parameter to process_each_vg specifying what to do with inconsistent VG.
229 Unify error messages when processing inconsistent volume group.
230 Use lvconvert --repair instead of vgreduce in mirror dmeventd DSO.
231 Introduce lvconvert --use_policies (repair policy according to lvm.conf).
232 Update clvmd-corosync to match new corosync API.
233 Fix lib Makefile to include any shared libraries in default target.
234 Fix rename of active snapshot with virtual origin.
235 Fix convert polling to ignore LV with different UUID.
236 Cache underlying device readahead only before activation calls.
237 Fix segfault when calculating readahead on missing device in vgreduce.
238 Remove verbose 'visited' messages.
239 Handle multi-extent mirror log allocation when smallest PV has only 1 extent.
240 Add LSB standard headers and functions (incl. reload) to clvmd initscript.
241 When creating new LV, double-check that name is not already in use.
242 Remove /dev/vgname/lvname symlink automatically if LV is no longer visible.
243 Rename internal vorigin LV to match visible LV.
244 Suppress 'removed' messages displayed when internal LVs are removed.
245 Fix lvchange -a and -p for sparse LVs.
246 Fix lvcreate --virtualsize to activate the new device immediately.
247 Make --snapshot optional with lvcreate --virtualsize.
248 Generalise --virtualoriginsize to --virtualsize.
249 Skip virtual origins in process_each_lv_in_vg() without --all.
250 Fix counting of virtual origin LVs in vg_validate.
251 Attempt to load dm-zero module if zero target needed but not present.
253 Version 2.02.47 - 22nd May 2009
254 ===============================
255 Rename liblvm.so to liblvm2app.so and use configure --enable-applib.
256 Reinstate version in liblvm2cmd.so soname. (2.02.44)
258 Version 2.02.46 - 21st May 2009
259 ===============================
260 Inherit readahead setting from underlying devices during activation.
261 Detect LVs active on remote nodes by querying locks if supported.
262 Enable online resizing of mirrors.
263 Use suspend with flush when device size was changed during table preload.
264 Implement query_resource_fn for cluster_locking.
265 Support query_resource_fn in locking modules.
266 Introduce CLVMD_CMD_LOCK_QUERY command for clvmd.
267 Fix pvmove to revert operation if temporary mirror creation fails.
268 Fix metadata export for VG with missing PVs.
269 Add vgimportclone and install it and the man page by default.
270 Force max_lv restriction only for newly created LV.
271 Remove unneeded import parameter from lv_create_empty.
272 Merge lv_is_displayable and lv_is_visible functions.
273 Introduce lv_set_visible & lv_set_hidden functions.
274 Fix lv_is_visible to handle virtual origin.
275 Introduce link_lv_to_vg and unlink_lv_from_vg functions.
276 Remove lv_count from VG and use counter function instead.
277 Fix snapshot segment import to not use duplicate segments & replace.
278 Do not query nonexistent devices for readahead.
279 Remove NON_BLOCKING lock flag from tools and set a policy to auto-set.
280 Remove snapshot_count from VG and use function instead.
281 Fix first_seg() call for empty segment list.
282 Add install_lvm2 makefile target to install only the LVM2 components.
283 Reject missing PVs from allocation in toollib.
284 Fix PV datalignment for values starting prior to MDA area. (2.02.45)
285 Add sparse devices: lvcreate -s --virtualoriginsize (hidden zero origin).
286 Fix minimum width of devices column in reports.
287 Add lvs origin_size field.
288 Fix linux configure --enable-debug to exclude -O2.
289 Implement lvconvert --repair for repairing partially-failed mirrors.
290 Fix vgreduce --removemissing failure exit code.
291 Fix remote metadata backup for clvmd.
292 Introduce unlock_and_release_vg macro.
293 Introduce vg_release() to be called to free every struct volume_group.
294 Alloc PV internal structure from VG mempool if possible.
295 Fix metadata backup to run after vg_commit always.
296 Tidy clvmd volume lock cache functions.
297 Fix pvs report for orphan PVs when segment attributes are requested.
298 Fix pvs -a output to not read volume groups from non-PV devices.
299 Add MMC (mmcblk) device type to filters.
300 Introduce memory pools per volume group (to reduce memory for large VGs).
301 Use copy of PV structure when manipulating global PV lists.
302 Always return exit error status when locking of volume group fails.
303 Fix mirror log convert validation question.
304 Avoid referencing files from DESTDIR during build process.
305 Avoid creating some static libraries unless configured --enable-static_link.
306 Enable use of cached metadata for pvs and pvdisplay commands.
307 Add missing 'device-mapper' internal subdir build dependency.
308 Fix memory leak in mirror allocation code.
309 Save and restore the previous logging level when log level is changed.
310 Fix error message when archive initialization fails.
311 Make sure clvmd-corosync releases the lockspace when it exits.
312 Fix segfault for vgcfgrestore on VG with missing PVs.
313 Block SIGTERM & SIGINT in clvmd subthreads.
314 Detect and conditionally wipe swapspace signatures in pvcreate.
315 Fix maximal volume count check for snapshots if max_lv set for volume group.
316 Fix lvcreate to remove unused cow volume if the snapshot creation fails.
317 Fix error messages when PV uuid or pe_start reading fails.
318 Build new liblvm application-level library.
319 Rename liblvm.a to liblvm-internal.a.
320 Flush memory pool and fix locking in clvmd refresh and backup command.
321 Fix unlocks in clvmd-corosync. (2.02.45)
322 Fix error message when adding metadata directory to internal list fails.
323 Fix size and error message of memory allocation at backup initialization.
324 Remove old metadata backup file after renaming VG.
325 Restore log_suppress state when metadata backup file is up-to-date.
327 Version 2.02.45 - 3rd March 2009
328 ================================
329 Avoid scanning empty metadata areas for VG names.
330 Attempt proper clean up in child before executing new binary in exec_cmd().
331 Do not scan devices if reporting only attributes from PV label.
332 Use pkgconfig to obtain corosync library details during configuration.
333 Fix error returns in clvmd-corosync interface to DLM.
334 Add --refresh to vgchange and vgmknodes man pages.
335 Pass --test from lvresize to fsadm as --dry-run.
336 Supply argv[] list to exec_cmd() to allow for variable number of parameters.
337 Prevent fsadm from checking mounted filesystems.
338 No longer treats any other key as 'no' when prompting in fsadm.
339 Tidy fsadm command line processing.
340 Add lib/lvm.h and lib/lvm_base.c for the new library interface.
341 Move tools/version.h to lib/misc/lvm-version.h.
342 Split LVM_VERSION into MAJOR, MINOR, PATCHLEVEL, RELEASE and RELEASE_DATE.
343 Add system_dir parameter to create_toolcontext().
344 Add --dataalignment to pvcreate to specify alignment of data area.
345 Exclude LCK_CACHE locks from _vg_lock_count, fixing interrupt unblocking.
346 Provide da and mda locations in debug message when writing text format label.
347 Mention the restriction on file descriptors at invocation on the lvm man page.
348 Index cached vgmetadata by vgid not vgname to cope with duplicate vgnames.
349 No longer require kernel and metadata major numbers to match.
350 Add a fully-functional get_cluster_name() to clvmd corosync interface.
351 Remove duplicate cpg_initialize from clvmd startup.
352 Add option to /etc/sysconfig/cluster to select cluster type for clvmd.
353 Allow clvmd to start up if its lockspace already exists.
354 Separate PV label attributes which do not need parse metadata when reporting.
355 Remove external dependency on the 'cut' command from fsadm.
356 Fix pvs segfault when pv mda attributes requested for not available PV.
357 Add fsadm support for reszing ext4 filesysystems.
358 Move locking_type reading inside init_locking().
359 Rename get_vgs() to get_vgnames() and clarify related error messages.
360 Allow clvmd to be built with all cluster managers & select one on cmdline.
361 Mention --with-clvmd=corosync in ./configure.
362 Replace internal vg_check_status() implementation.
363 Rename vg_read() to vg_read_internal().
365 Version 2.02.44 - 26th January 2009
366 ===================================
367 Fix --enable-static_link after the recent repository changes.
368 Add corosync/DLM cluster interface to clvmd.
369 Add --nameprefixes, --unquoted, --rows to pvs, vgs, lvs man pages.
370 Fix lvresize size conversion for fsadm when block size is not 1K.
371 Fix pvs segfault when run with orphan PV and some VG fields.
372 Display a 'dev_size' of zero for missing devices in reports.
373 Add pv_mda_size to pvs and vg_mda_size to vgs.
374 Fix lvmdump /sys listing to include virtual devices directory.
375 Add "--refresh" functionality to vgchange and vgmknodes.
376 Avoid exceeding LV size when wiping device.
377 Calculate mirror log size instead of using 1 extent.
378 Ensure requested device number is available before activating with it.
379 Fix incorrect exit status from 'help <command>'.
380 Fix vgrename using UUID if there are VGs with identical names.
381 Fix segfault when invalid field given in reporting commands.
382 Move is_static from cmd to global is_static().
383 Refactor init_lvm() for lvmcmdline and clvmd.
384 Add liblvm interactive test infrastructure to build.
385 Add skeleton lvm2.h file in preparation for a shared library interface.
386 Use better random seed value in temp file creation.
387 Add read_urandom to read /dev/urandom. Use in uuid calculation.
388 Use displayable_lvs_in_vg and lv_is_displayable for consistency throughout.
389 Fix race in vgcreate that would result in second caller overwriting first.
390 Fix uninitialised lv_count in vgdisplay -c.
391 Don't skip updating pvid hash when lvmcache_info struct got swapped.
392 Add tinfo to termcap search path for pld-linux.
393 Fix startup race in clvmd.
394 Generate Red Hat clvmd startup script at config time with correct paths.
395 Fix clvmd & dmeventd builds after tree restructuring.
396 Cope with snapshot dependencies when removing a whole VG with lvremove.
397 Make man pages and tool help text consistent using | for alternative options.
399 Version 2.02.43 - 10th November 2008
400 ====================================
401 Merge device-mapper into the lvm2 tree.
402 Correct prototype for --permission on lvchange and lvcreate man pages.
403 Exit with non-zero status from vgdisplay if couldn't show any requested VG.
404 Move list.c into libdevmapper and rename functions.
405 Rename a couple of variables that matched function names.
406 Use simplified x.y.z version number in libdevmapper.pc.
407 Remove ancient debian directory.
408 Split out lvm-logging.h from log.h and lvm-globals.[ch] from log.[ch].
410 Version 2.02.42 - 26th October 2008
411 ===================================
412 Accept locking fallback_to_* options in the global section as documented.
413 Fix temp table activation in mirror conversions not to happen in other cmds.
414 Fix temp table in mirror conversions to use always-present error not zero.
416 Version 2.02.41 - 17th October 2008
417 ===================================
418 Use temp table to set device size when converting mirrors.
419 In resume_mirror_images replace activate_lv with resume_lv as workaround.
420 Avoid overwriting in-use on-disk text metadata by forgetting MDA_HEADER_SIZE.
421 Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
422 Generate man pages from templates and include version.
423 Add usrlibdir and usrsbindir to configure.
424 Fix conversion of md chunk size into sectors.
425 Free text metadata buffer after a failure writing it.
426 Fix misleading error message when there are no allocatable extents in VG.
427 Fix handling of PVs which reappeared with old metadata version.
428 Fix mirror DSO to call vgreduce with proper parameters.
429 Fix validation of --minor and --major in lvcreate to require -My always.
430 Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning.
432 Version 2.02.40 - 19th September 2008
433 =====================================
434 Allow lvremove to remove LVs from VGs with missing PVs.
435 In VG with PVs missing, by default allow activation of LVs that are complete.
436 Track PARTIAL_LV and MISSING_PV flags internally.
437 Require --force with --removemissing in vgreduce to remove partial LVs.
438 No longer write out PARTIAL flag into metadata backups.
439 Treat new default activation/missing_stripe_filler "error" as an error target.
440 Remove internal partial_mode.
441 Add devices/md_chunk_alignment to lvm.conf.
442 Pass struct physical_volume to pe_align and adjust for md chunk size.
443 Store sysfs location in struct cmd_context.
444 Avoid shuffling remaining mirror images when removing one, retaining primary.
445 Add missing LV error target activation in _remove_mirror_images.
446 Prevent resizing an LV while lvconvert is using it.
447 Avoid repeatedly wiping cache while VG_GLOBAL is held in vgscan & pvscan.
448 Fix pvresize to not allow resize if PV has two metadata areas.
449 Fix setting of volume limit count if converting to lvm1 format.
450 Fix vgconvert logical volume id metadata validation.
451 Fix lvmdump metadata gather option (-m) to work correctly.
452 Fix allocation bug in text metadata format write error path.
453 Fix vgcfgbackup to properly check filename if template is used.
454 configure aborts if lcov or genhtml are missing with --enable-profiling
455 vgremove tries to remove lv snapshot first.
456 Added function lv_remove_with_dependencies().
457 Improve file descriptor leak detection to display likely culprit and filename.
458 Change clustered mirror kernel module name from cmirror to dm-log-clustered.
459 Avoid looping forever in _pv_analyze_mda_raw used by pvck.
460 Change lvchange exit status to indicate if any part of the operation failed.
461 Fix pvchange and pvremove to handle PVs without mdas.
462 Refactor _text_pv_read and always return mda list if requested.
463 Fix configure to work w/o readline unless --enable-readline used. (2.02.39)
464 Remove is_lvm_partition template which has not yet been coded.
465 Refactor pvcreate to separate parameter parsing from validation logic.
466 Check for label_write() failure in _text_pv_write().
467 Add pvcreate tests and update vgsplit tests to handle lvm1 and lvm2 metadata.
468 Fix pvchange -M1 -u to preserve existing extent locations when there's a VG.
469 Cease recognising snapshot-in-use percentages returned by early devt kernels.
470 Add backward-compatible flags field to on-disk format_text metadata.
471 Fix dmeventd monitoring libraries to link against liblvm2cmd again. (2.02.39)
473 Version 2.02.39 - 27th June 2008
474 ================================
475 Enable readline by default if available.
476 Update autoconf to 2008-01-16.
477 Add $DISTCLEAN_DIRS to make.tmpl.in.
478 Create coverage reports with --enable-profiling and make lcov or lcov-dated.
479 Fix up cache for PVs without mdas after consistent VG metadata is processed.
480 Update validation of safe mirror log type conversions in lvconvert.
481 Fix lvconvert to disallow snapshot and mirror combinations.
482 Fix reporting of LV fields alongside unallocated PV segments.
483 Add --unquoted and --rows to reporting tools.
484 Add and use uninitialized_var() macro to suppress invalid compiler warnings.
485 Introduce enum for md minor sb version to suppress compiler warning.
486 Avoid undefined return value after _memlock manipulation in lvm2_run.
487 Avoid link failure if configured without --enable-cmdlib or --enable-readline.
488 Make clvmd return at once if other nodes down in a gulm or openais cluster.
489 Fix and improve readahead 'auto' calculation for stripe_size.
490 Fix lvchange output for -r auto setting if auto is already set.
491 Add test case for readahead.
492 Avoid ambiguous use of identifier error_message_produced.
493 Begin syncing configure.in for merge/unification with device-mapper.
494 Fix add_mirror_images not to dereference uninitialized log_lv upon failure.
495 Don't call openlog for every debug line output by clvmd.
496 Add --force to lvextend and lvresize.
497 Fix vgchange not to activate component mirror volumes directly.
498 Fix test directory clean up in make distclean.
500 Version 2.02.38 - 11th June 2008
501 ================================
502 Fix tracking of validity of PVs with no mdas in lvmcache.
503 Fix return values for reporting commands when run with no PVs, LVs, or VGs.
504 Add omitted unlock_vg() call when sigint_caught() during vg processing.
505 Fix free_count when reading pool metadata.
506 Fix segfault when using pvcreate on a device containing pool metadata.
507 Fix segfault after _free_vginfo by remembering to remove vginfo from list.
508 Tweak detection of invalid fid after changes to PVs in VG in _vg_read.
509 Revert assuming precommitted metadata is live when activating (unnecessary).
510 Drop cached metadata for disappearing VG in vgmerge.
511 In script-processing mode, stop if any command fails.
512 Warn if command exits with non-zero status code without a prior log_error.
513 Check lv_count in vg_validate.
514 Add --nameprefixes to reporting tools for field name prefix output format.
516 Version 2.02.37 - 6th June 2008
517 ===============================
518 Make clvmd-cman use a hash rather than an array for node updown info.
519 Correct config file line numbers in messages when parsing comments.
520 Drop cached metadata when renaming a VG.
521 Allow for vginfo changing during _vg_read.
522 Decode numbers in clvmd debugging output.
523 Add missing deactivation after activation failure in lvcreate -Zy.
524 When activating, if precommitted metadata is still cached, assume it's live.
525 When removing LV symlinks, skip any where the VG name is not determined.
526 Drop metadata cache if update fails in vg_revert or vg_commit.
527 Avoid spurious duplicate VG messages referring to VGs that are gone.
528 Drop dev_name_confirmed error message to debug level.
529 Fix setpriority error message to signed int.
530 Temporarily disable dmeventd mirror monitoring during lvchange --resync.
531 Refactor some vginfo manipulation code.
532 Add assertions to trap deprecated P_ and V_ lock usage.
533 Add missing mutex around clvmd lvmcache_drop_metadata library call.
534 Fix uninitialised mutex in clvmd if all daemons are not running at startup.
535 Avoid using DLM locks with LCK_CACHE type P_ lock requests.
536 When asked to drop cached committed VG metadata, invalidate cached PV labels.
537 Drop metadata cache before writing precommitted metadata instead of after.
538 Don't touch /dev in vgrename if activation is disabled.
540 Version 2.02.36 - 29th April 2008
541 =================================
542 Fix fsadm.sh to work with older blockdev, blkid & readlink binaries.
543 Fix lvresize to pass new size to fsadm when extending device.
544 Remove unused struct in clvmd-openais, and use correct node count.
545 Fix nodes list in clvmd-openais, and allow for broadcast messages.
546 Exclude VG_GLOBAL from internal concurrent VG lock counter.
547 Fix vgsplit internal counting of snapshot LVs.
548 Fix vgmerge snapshot_count when source VG contains snapshots.
549 Simplify clvmd-openais by using non-async saLckResourceLock.
550 Fix internal LV counter when a snapshot is removed.
551 Fix metadata corruption writing lvm1-formatted metadata with snapshots.
552 Fix lvconvert -m0 allocatable space check.
554 Version 2.02.35 - 15th April 2008
555 =================================
556 Drop cached VG metadata before and after committing changes to it.
557 Rename P_global to P_#global.
558 Don't attempt remote metadata backups of non-clustered VGs. (2.02.29)
559 Don't store fid in VG metadata cache to avoid clvmd segfault. (2.02.34)
560 Update vgsplit tests to verify loosening of active LV restriction.
561 Update vgsplit to only restrict split with active LVs involved in split.
562 Add lv_is_active() to determine whether an lv is active.
564 Version 2.02.34 - 10th April 2008
565 =================================
566 Improve preferred_names lvm.conf example.
567 Fix vgdisplay 'Cur LV' field to match lvdisplay output.
568 Fix lv_count report field to exclude hidden LVs.
569 Add vg_is_clustered() helper function.
570 Fix vgsplit to only move hidden 'snapshotN' LVs when necessary.
571 Update vgsplit tests for lvnames on the cmdline.
572 Update vgsplit man page to reflect lvnames on the cmdline.
573 Update vgsplit to take "-n LogicalVolumeName" on the cmdline.
574 Use clustered mirror log with pvmove in clustered VGs, if available.
575 Fix some pvmove error status codes.
576 Fix vgsplit error paths to release vg_to lock.
577 Indicate whether or not VG is clustered in vgcreate log message.
578 Mention default --clustered setting in vgcreate man page.
579 Add config file overrides to clvmd when it reads the active LVs list.
580 Fix vgreduce to use vg_split_mdas to check sufficient mdas remain.
581 Add (empty) orphan VGs to lvmcache during initialisation.
582 Fix orphan VG name used for format_pool.
583 Create a fid for internal orphan VGs.
584 Update lvmcache VG lock state for all locking types now.
585 Fix output if overriding command_names on cmdline.
586 Add detection of clustered mirror log capability.
587 Add check to vg_commit() ensuring VG lock held before writing new VG metadata.
588 Add validation of LV name to pvmove -n.
589 Make clvmd refresh the context correctly when lvm.conf is updated.
590 Add some basic internal VG lock validation.
591 Add per-command flags to control which commands use the VG metadata cache.
592 Fix vgsplit locking of new VG (2.02.30).
593 Avoid erroneous vgsplit error message for new VG. (2.02.29)
594 Suppress duplicate message when lvresize fails because of invalid vgname.
595 Cache VG metadata internally while VG lock is held.
596 Fix redundant lvresize message if vg doesn't exist.
597 Fix another allocation bug with clvmd and large node IDs.
598 Add find_lv_in_lv_list() and find_pv_in_pv_list().
599 Fix uninitialised variable in clvmd that could cause odd hangs.
601 Add pvseg_is_allocated() for identifying a PV segment allocated to a LV.
602 Add list_move() for moving elements from one list to another.
603 Add 'is_reserved_lvname()' for identifying hidden LVs.
604 Correct command name in lvmdiskscan man page.
605 clvmd no longer crashes if it sees nodeids over 50.
606 Fix potential deadlock in clvmd thread handling.
607 Refactor text format initialisation into _init_text_import.
608 Escape double quotes and backslashes in external metadata and config data.
609 Add functions for escaping double quotes in strings.
610 Rename count_chars_len to count_chars.
611 Use return_0 in a couple more places.
612 Correct a function name typo in _line_append error message.
613 Include limits.h in clvmd so it compiles with newer headers.
614 Add VirtIO disks (virtblk) to filters.
615 Fix resetting of MIRROR_IMAGE and VISIBLE_LV after removal of LV. (2.02.30)
616 Fix remove_layer_from_lv to empty the LV before removing it. (2.02.30)
617 Add missing no-longer-used segs_using_this_lv test to check_lv_segments.
618 Remove redundant non-NULL tests before calling free in clvmd.c.
619 Avoid a compiler warning: make is_orphan's parameter const.
620 Fix lvconvert detection of mirror conversion in progress. (2.02.30)
621 Avoid automatic lvconvert polldaemon invocation when -R specified. (2.02.30)
622 Fix 'pvs -a' to detect VGs of PVs without metadata areas.
623 Divide up internal orphan volume group by format type.
624 Update usage message for clvmd.
625 Fix clvmd man page not to print <br> and clarified debug options.
626 Fix lvresize to support /dev/mapper prefix in the LV name.
627 Fix unfilled parameter passed to fsadm from lvresize.
628 Update fsadm to call lvresize if the partition size differs (with option -l).
629 Fix fsadm to support VG/LV names.
631 Version 2.02.33 - 31st January 2008
632 ===================================
633 Fix mirror log name construction during lvconvert. (2.02.30)
634 Make monitor_dev_for_events recurse through the stack of LVs.
635 Clean up some more compiler warnings.
636 Some whitespace tidy-ups.
637 Use stack return macros throughout.
638 Rely upon internally-cached PV labels while corresponding VG lock is held.
640 Version 2.02.32 - 29th January 2008
641 ===================================
642 Fix two check_lv_segments error messages to show whole segment.
643 Refactor mirror log attachment code.
644 Fix internal metadata corruption in lvchange --resync. (2.02.30)
645 Fix new parameter validation in vgsplit and test mode. (2.02.30)
646 Remove redundant cnxman-socket.h file from clvmd directory.
647 Fix pvs, vgs, lvs error exit status on some error paths.
649 Version 2.02.31 - 19th January 2008
650 ===================================
651 Fix lvcreate --nosync not to wait for non-happening sync. (2.02.30)
652 Add very_verbose lvconvert messages.
653 Avoid readahead error message with default setting of lvcreate -M1. (2.02.29)
655 Version 2.02.30 - 17th January 2008
656 ===================================
657 Set default readahead to twice maximium stripe size.
658 Reinstate VG extent size and stripe size defaults (halved). (2.02.29)
659 Add lists of stacked LV segments using each LV to the internal metadata.
660 Change vgsplit -l (for unimplemented --list) into --maxlogicalvolumes.
661 Fix process_all_pvs to detect non-orphans with no MDAs correctly.
662 Don't use block_on_error with mirror targets version 1.12 and above.
663 Update vgsplit to accept vgcreate options when new VG is destination.
664 Update vgsplit to accept existing VG as destination.
665 lvconvert waits for completion of initial sync by default.
666 Refactor vgcreate for parameter validation and add tests.
667 Add new convert_lv field to lvs output.
668 Print warning when lvm tools are running as non-root.
669 Add snapshot dmeventd library (enables dmeventd snapshot monitoring).
670 Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs.
671 Fix a segfault if using pvs with --all argument. (2.02.29)
672 Update --uuid argument description in man pages.
673 Fix vgreduce PV list processing not to process every PV in the VG. (2.02.29)
674 Extend lvconvert to use polldaemon.
675 Add support for stacked mirrors.
676 Major restructuring of pvmove and lvconvert layer manipulation code.
677 Replace tools/fsadm with scripts/fsadm.sh.
678 Append fields to report/pvsegs_cols_verbose.
679 Permit LV segment fields with PV segment reports.
680 Add seg_start_pe and seg_pe_ranges to reports.
682 Version 2.02.29 - 5th December 2007
683 ===================================
684 Make clvmd backup vg metadata on remote nodes.
685 Refactor pvmove allocation code.
686 Decode cluster locking state in log message.
687 Change file locking state messages from debug to very verbose.
688 Fix --addtag to drop @ prefix from name.
689 Stop clvmd going haywire if a pre_function fails.
690 Convert some vg_reads into vg_lock_and_reads.
691 Avoid nested vg_reads when processing PVs in VGs and fix associated locking.
692 Accept sizes with --readahead argument.
693 Store size arguments as sectors internally.
694 Attempt to remove incomplete LVs with lvcreate zeroing/activation problems.
695 Add read_ahead activation code.
696 Add activation/readahead configuration option and FMT_RESTRICTED_READAHEAD.
697 Extend readahead arg to accept "auto" and "none".
698 Add lv_read_ahead and lv_kernel_read_ahead fields to reports and lvdisplay.
699 Prevent lvconvert -s from using same LV as origin and snapshot.
700 Fix human-readable output of odd numbers of sectors.
701 Add pv_mda_free and vg_mda_free fields to reports for raw text format.
702 Add LVM2 version to 'Generated by' comment in metadata.
703 Show 'not usable' space when PV is too large for device in pvdisplay.
704 Ignore and fix up any excessive device size found in metadata.
705 Fix error message when fixing up PV size in lvm2 metadata (2.02.11).
706 Fix orphan-related locking in pvdisplay and pvs.
707 Fix missing VG unlocks in some pvchange error paths.
708 Add some missing validation of VG names.
709 Rename validate_vg_name() to validate_new_vg_name().
710 Change orphan lock to VG_ORPHANS.
711 Change format1 to use ORPHAN as orphan VG name.
712 Convert pvchange, pvdisplay, pvscan to use is_orphan()
713 Add is_orphan_vg() and change all hard-coded checks to use it.
714 Detect md superblocks version 1.0, 1.1 and 1.2.
715 Add _alloc_pv() and _free_pv() from _pv_create() code and fix error paths.
716 Add pv_dev_name() to access PV device name.
717 Add const attributes to pv accessor functions.
718 Refactor vg_add_snapshot() and lv_create_empty().
719 Handle new sysfs subsystem/block/devices directory structure.
720 Run test with LVM_SYSTEM_DIR pointing to private root and /dev dirs.
721 Fix a bug in lvm_dump.sh checks for lvm/dmsetup binaries.
722 Fix underquotations in lvm_dump.sh.
723 Refactor lvcreate stripe and mirror parameter validation.
724 Print --help output to stdout, not stderr.
725 After a cmdline processing error, don't print help text but suggest --help.
726 Add %PVS extents option to lvresize, lvextend, and lvcreate.
727 Add 'make check' to run tests in new subdirectory 'test'.
728 Moved the obsolete test subdirectory to old-tests.
729 Cope with relative paths in configure --with-dmdir.
730 Remove no-longer-correct restrictions on PV arg count with stripes/mirrors.
731 Fix strdup memory leak in str_list_dup().
732 Link with -lpthread when static SELinux libraries require that.
733 Detect command line PE values that exceed their 32-bit range.
734 Include strerror string in dev_open_flags' stat failure message.
735 Move guts of pvresize into library.
736 Avoid error when --corelog is provided without --mirrorlog. (2.02.28)
737 Correct --mirrorlog argument name in man pages (not --log).
738 Clear MIRROR_NOTSYNCED LV flag when converting from mirror to linear.
739 Modify lvremove to prompt for removal if LV active on other cluster nodes.
740 Add '-f' to vgremove to force removal of VG even if LVs exist.
742 Version 2.02.28 - 24th August 2007
743 ==================================
744 Fix clvmd logging so you can get lvm-level debugging out of it.
745 Introduce VG_GLOBAL lock type for vgscan/pvscan to trigger clvmd -R.
746 Change locking_flags from int to uint32_t.
747 Fix clvmd -R, so it fully refreshes the caches.
748 Change lvconvert_mirrors to use mirror segtype not striped.
749 Fix lvconvert_mirrors detection of number of existing mirrors.
750 Clean up numerous compiler warnings that appeared in recent releases.
751 Remove several unused parameters from _allocate().
752 Only permit --force, --verbose and --debug arguments to be repeated.
753 Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
754 Move guts of vgremove and lvremove into library, including yes_no_prompt.
755 Allow clvmd debug to be turned on in a running daemon using clvmd -d [-C].
756 Update to use autoconf 2.61, while still supporting 2.57.
757 Add more cluster info to lvmdump.
758 Add further const attributes throughout.
759 Add support for renaming mirrored LVs.
760 Factor out core of lvrename() to library function.
761 Add --mirrorlog argument to specify log type for mirrors.
762 Don't attempt to monitor devices if their creation failed in _lv_activate.
763 Don't leak a file descriptor in fcntl_lock_file() when fcntl fails.
764 Replace create_dir with dm_create_dir.
765 Detect stream write failure reliably with lvm_fclose using dm_fclose.
766 Fix clvmd if compiled with gulm support. (2.02.26)
767 Fix lvdisplay man page to say LV size is reported in sectors, not KB.
768 Add vg_lock_and_read() external library function.
769 Fix loading of persistent cache if cache_dir is used. (2.02.23)
770 Reduce _compare_paths lstat error message from log_error to log_very_verbose.
771 Create util.h with last_path_component replacing strdup + basename.
772 Use gcc's printf attribute wherever possible.
773 In _line_append, use "sizeof buf - 1" rather than equivalent "4095".
774 Introduce is_same_inode macro, now including a comparison of st_dev.
775 Don't leak a file descriptor in _lock_file() when flock fails.
776 Add SUN's LDOM virtual block device (vdisk) and ps3disk to filters.
777 Split metadata-external.h out from metadata.h for the tools to use.
779 Version 2.02.27 - 17th July 2007
780 ================================
781 Fix snapshot cow area deactivation if origin is not active. (2.02.13)
782 Fix configure libdevmapper.h check when --with-dmdir is used.
783 Turn _add_pv_to_vg() into external library function add_pv_to_vg().
784 Add pv_by_path() external library function.
785 Tidy clvmd-openais of redundant bits, and improve an error report.
786 Cope with find_seg_by_le() failure in check_lv_segments().
787 Call dev_iter_destroy() if _process_all_devs() is interrupted by sigint.
788 Add vg_mda_count and pv_mda_count columns to reports.
789 Fix dumpconfig to use log_print instead of stdout directly.
790 Remove unused parameter 'fid' from _add_pv_to_vg.
791 Add kernel and device-mapper targets versions to lvmdump.
792 Replace BSD (r)index with C89 str(r)chr.
793 Handle vgsplit of an entire VG as a vgrename.
794 Reinitialise internal lvmdiskscan variables when called repeatedly.
795 Fix missing lvm_shell symbol in lvm2cmd library. (2.02.23)
796 Add vg_status function and clean up vg->status in tools directory.
797 Add --ignoremonitoring to disable all dmeventd interaction.
798 Remove get_ prefix from get_pv_* functions.
799 clvmd-openais now uses cpg_local_get() to get nodeid, rather than Clm.
800 Print warnings to stderr instead of stdout.
802 Version 2.02.26 - 15th June 2007
803 ================================
804 Update vgcfgrestore man page.
805 Allow keyboard interrupt during user prompts when appropriate.
806 Remove unused clvmd system-lv code.
807 Replace many physical_volume struct dereferences with new get_pv_* functions.
808 Suppress a benign compile-time warning.
809 Convert find_pv_in_vg_by_uuid and pv_create to use PV handles.
810 Add wrappers to some functions in preparation for external LVM library.
811 Add -f to vgcfgrestore to list metadata backup files.
812 Add vg_check_status to consolidate vg status checks and error messages.
813 Add pvdisplay --maps implementation.
814 Remove unsupported LVM1 options from vgcfgrestore man page.
815 Update vgcfgrestore man page to show mandatory VG name.
816 Update vgrename man page to include UUID and be consistent with lvrename.
817 Add (experimental) OpenAIS support to clvmd.
818 Fix deactivation code to follow dependencies and remove symlinks.
819 Fix and clarify vgsplit error messages.
820 Fix a segfault in device_is_usable() if a device has no table.
821 Add some more debug messages to clvmd startup.
824 Version 2.02.25 - 27th April 2007
825 =================================
826 Fix get_config_uint64() to read a 64-bit value not a 32-bit one.
827 Add -Wformat-security and change one fprintf() to fputs().
828 Move regex functions into libdevmapper.
829 Change some #include lines to search only standard system directories.
830 Add devices/preferred_names config regex list for displayed device names.
831 Free a temporary dir string in fcntl_lock_file() after use.
832 Fix a dm_pool_destroy() in matcher_create().
833 Introduce goto_bad macro.
834 Fix warnings on x86_64 involving ptrdiff_t in log_error messages.
835 Update pvck to include text metadata area and record detection.
836 Add support functions for token counting in config file extracts.
837 Update pvck to read labels on disk, with --labelsector parameter.
838 Add count_chars and count_chars_len functions.
839 Add /sys/block listings to lvm_dump.sh.
840 Make lvm_dump.sh list /dev recursively.
841 Fix thread race in clvmd.
842 Add scan_sector param to label_read and _find_labeller.
843 Make clvmd cope with quorum devices.
844 Add extra internal error checking to clvmd.
845 Add dev_read_circular.
846 Add pvck command stub.
847 Update lists of attribute characters in man pages.
848 Change cling alloc policy attribute character from 'C' to l'.
849 Fix creation and conversion of mirrors with tags.
850 Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata).
851 Split metadata areas in vgsplit properly.
853 Version 2.02.24 - 19th March 2007
854 =================================
855 Fix processing of exit status in init scripts
856 Fix vgremove to require at least one vg argument.
857 Fix reading of striped LVs in LVM1 format.
858 Flag nolocking as clustered so clvmd startup sees clustered LVs. (2.02.10)
859 Add a few missing pieces of vgname command line validation.
860 Support the /dev/mapper prefix on most command lines.
862 Version 2.02.23 - 8th March 2007
863 ================================
864 Fix vgrename active LV check to ignore differing vgids.
865 Remove no-longer-used uuid_out parameter from activation info functions.
866 Fix two more segfaults if an empty config file section encountered.
867 Move .cache file into a new /etc/lvm/cache directory by default.
868 Add devices/cache_dir & devices/cache_file_prefix, deprecating devices/cache.
869 Create directory in fcntl_lock_file() if required.
870 Exclude readline support from lvm.static.
871 Fix a leak in a reporting error path (2.02.19).
873 Version 2.02.22 - 13th February 2007
874 ====================================
875 Correct -b and -P on a couple of man pages.
876 Add global/units to example.conf.
877 Fix loading of segment_libraries.
878 If a PV reappears after it was removed from its VG, make it an orphan.
879 Don't update metadata automatically if VGIDs don't match.
880 Fix some vgreduce --removemissing command line validation.
882 Version 2.02.21 - 30th January 2007
883 ===================================
884 Add warning to lvm2_monitoring_init_rhel4 if attempting to stop monitoring.
885 Fix vgsplit to handle mirrors.
886 Reorder fields in reporting field definitions.
887 Fix vgs to treat args as VGs even when PV fields are displayed.
888 Fix md signature check to handle both endiannesses.
890 Version 2.02.20 - 25th January 2007
891 ===================================
892 dmeventd mirror sets ignore_suspended_devices and avoids scanning mirrors.
893 Add devices/ignore_suspended_devices to ignore suspended dm devices.
894 Add some missing close() and fclose() return code checks.
895 Fix exit statuses of reporting tools (2.02.19).
896 Add init script for dmeventd monitoring.
897 lvm.static no longer interacts with dmeventd unless explicitly asked to.
898 Add field definitions to report help text.
899 Remove unnecessary cmd arg from target_*monitor_events().
900 Add private variable to dmeventd shared library interface.
901 Long-lived processes write out persistent dev cache in refresh_toolcontext().
902 Fix refresh_toolcontext() always to wipe persistent device filter cache.
903 Add is_long_lived to toolcontext.
904 Add --clustered to man pages.
905 Streamline dm_report_field_* interface.
906 Change remaining dmeventd terminology 'register' to 'monitor'.
907 Update reporting man pages.
908 No longer necessary to specify alignment type for report fields.
910 Version 2.02.19 - 17th January 2007
911 ===================================
912 Fix a segfault if an empty config file section encountered.
913 Move basic reporting functions into libdevmapper.
914 Fix partition table processing after sparc changes (2.02.16).
915 Fix cmdline PE range processing segfault (2.02.13).
916 Some libdevmapper-event interface changes.
917 Report dmeventd mirror monitoring status.
918 Fix dmeventd mirror status line processing.
920 Version 2.02.18 - 11th January 2007
921 ===================================
922 Revised libdevmapper-event interface for dmeventd.
923 Remove dmeventd mirror status line word limit.
924 Use CFLAGS when linking so mixed sparc builds can supply -m64.
925 Prevent permission changes on active mirrors.
926 Print warning instead of error message if lvconvert cannot zero volume.
927 Add snapshot options to lvconvert man page.
928 dumpconfig accepts a list of configuration variables to display.
929 Change dumpconfig to use --file to redirect output to a file.
930 Avoid vgreduce error when mirror code removes the log LV.
931 Remove 3 redundant AC_MSG_RESULTs from configure.in.
932 Free memory in _raw_read_mda_header() error paths.
933 Fix ambiguous vgsplit error message for split LV.
934 Fix lvextend man page typo.
935 Add configure --with-dmdir to compile against a device-mapper source tree.
936 Use no flush suspending for mirrors.
937 Add dmeventd_mirror register_mutex, tidy initialisation & add memlock.
938 Fix create mirror with name longer than 22 chars.
939 Fix some activate.c prototypes when compiled without devmapper.
940 Fix dmeventd mirror to cope if monitored device disappears.
942 Version 2.02.17 - 14th December 2006
943 ====================================
944 Add missing pvremove error message when device doesn't exist.
945 When lvconvert allocates a mirror log, respect parallel area constraints.
946 Use loop to iterate through the now-ordered policy list in _allocate().
947 Check for failure to allocate just the mirror log.
948 Introduce calc_area_multiple().
949 Support mirror log allocation when there is only one PV: area_count now 0.
950 Fix detection of smallest area in _alloc_parallel_area() for cling policy.
951 Add manpage entry for clvmd -T
952 Fix gulm operation of clvmd, including a hang when doing lvchange -aey
953 Fix hang in clvmd if a pre-command failed.
955 Version 2.02.16 - 1st December 2006
956 ===================================
957 Fix VG clustered read locks to use PR not CR.
958 Adjust some alignments for ia64/sparc.
959 Fix mirror segment removal to use temporary error segment.
960 Always compile debug logging into clvmd.
961 Add startup timeout to RHEL4 clvmd startup script.
962 Add -T (startup timeout) switch to clvmd.
963 Improve lvm_dump.sh robustness.
964 Update lvm2create_initrd to support gentoo.
966 Version 2.02.15 - 21st November 2006
967 ====================================
968 Fix clvmd_init_rhel4 line truncation (2.02.14).
969 Install lvmdump by default.
970 Fix check for snapshot module when activating snapshot.
971 Fix pvremove error path for case when PV is in use.
972 Warn if certain duplicate config file entries are seen.
973 Enhance lvm_dump.sh for sysreport integration and add man page.
974 Fix --autobackup argument which could never disable backups.
975 Fix a label_verify error path.
977 Version 2.02.14 - 10th November 2006
978 ====================================
979 Fix adjusted_mirror_region_size() to handle 64-bit size.
980 Add some missing bounds checks on 32-bit extent counters.
981 Add Petabyte and Exabyte support.
982 Fix lvcreate error message when 0 extents requested.
983 lvremove man page: volumes must be cluster inactive before being removed.
984 Protect .cache manipulations with fcntl locking.
985 Change .cache timestamp comparisons to use ctime.
986 Fix mirror log LV writing to set all bits in whole LV.
987 Fix clustered VG detection and default runlevels in clvmd_init_rhel4.
988 Fix high-level free space check for partial allocations.
990 Version 2.02.13 - 27th October 2006
991 ===================================
992 Add couple of missing files to tools/Makefile CLEAN_TARGETS.
993 When adding snapshot leave cow LV mapped device active after zeroing.
994 Fix a clvmd debug message.
995 Add dev_flush() to set_lv().
996 Add lvchange --resync.
997 Perform high-level free space check before each allocation attempt.
998 Don't allow a node to remove an LV that's exclusively active on anther node.
999 Cope if same PV is included more than once in cmdline PE range list.
1000 Set PV size to current device size if it is found to be zero.
1001 Add segment parameter to target_present functions.
1003 Version 2.02.12 - 16th October 2006
1004 ===================================
1005 Fix pvdisplay to use vg_read() for non-orphans.
1006 Fall back to internal locking if external locking lib is missing or fails.
1007 Retain activation state after changing LV minor number with --force.
1008 Propagate clustered flag in vgsplit and require resizeable flag.
1010 Version 2.02.11 - 12th October 2006
1011 ===================================
1012 Add clvmd function to return the cluster name. not used by LVM yet.
1013 Add cling allocation policy.
1014 Change _check_contiguous() to use _for_each_pv().
1015 Extend _for_each_pv() to allow termination without error.
1016 Abstract _is_contiguous().
1017 Remove duplicated pv arg from _check_contiguous().
1018 Accept regionsize with lvconvert.
1019 Add report columns with underscore before field names ending 'size'.
1020 Correct regionsize default on lvcreate man page (MB).
1021 Fix clvmd bug that could cause it to die when a node with a long name crashed.
1022 Add device size to text metadata.
1023 Fix format_text mda_setup pv->size and pv_setup pe_count calculations.
1024 Fix _for_each_pv() for mirror with core log.
1025 Add lvm_dump.sh script to create a tarball of debugging info from a system.
1026 Capture error messages in clvmd and pass them back to the user.
1027 Remove unused #defines from filter-md.c.
1028 Make clvmd restart init script wait until clvmd has died before starting it.
1029 Add -R to clvmd which tells running clvmds to reload their device cache.
1030 Add LV column to reports listing kernel modules needed for activation.
1031 Show available fields if report given invalid field. (e.g. lvs -o list)
1032 Add timestamp functions with --disable-realtime configure option.
1033 Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg.
1034 Fix two potential NULL pointer derefs in error cases in vg_read().
1035 Separate --enable-cluster from locking lib options in lvmconf.sh.
1036 Add a missing comma in lvcreate man page.
1038 Version 2.02.10 - 19th September 2006
1039 =====================================
1040 Fix lvconvert mirror change case detection logic.
1041 Fix mirror log detachment so it correctly becomes a standalone LV.
1042 Extend _check_contiguous() to detect single-area LVs.
1043 Include mirror log (untested) in _for_each_pv() processing.
1044 Use MIRROR_LOG_SIZE constant.
1045 Remove struct seg_pvs from _for_each_pv() to generalise.
1046 Avoid adding duplicates to list of parallel PVs to avoid.
1047 Fix several incorrect comparisons in parallel area avoidance code.
1048 Fix segment lengths when flattening existing parallel areas.
1049 Log existing parallel areas prior to allocation.
1050 Fix mirror log creation when activation disabled.
1051 Don't attempt automatic recovery without proper locking.
1052 When using local file locking, skip clustered VGs.
1053 Add fallback_to_clustered_locking and fallback_to_local_locking parameters.
1054 lvm.static uses built-in cluster locking instead of external locking.
1055 Don't attempt to load shared libraries if built statically.
1056 Change default locking_lib to liblvm2clusterlock.so.
1057 Add skip_dev_dir() to process command line VGs.
1058 Stop clvmd complaining about nodes that have left the cluster.
1059 Move lvm_snprintf(), split_words() and split_dm_name() into libdevmapper.
1060 Add lvconvert man page.
1061 Add mirror options to man pages.
1062 Prevent mirror renames.
1063 Move CMDLIB code into separate file and record whether static build.
1065 Version 2.02.09 - 17th August 2006
1066 ==================================
1067 Fix PE_ALIGN for pagesize over 32KB.
1068 Separate out LVM1_PE_ALIGN and pe_align().
1069 Add lvm_getpagesize wrapper.
1070 Add --maxphysicalvolumes to vgchange.
1072 Version 2.02.08 - 15th August 2006
1073 ==================================
1074 Add checks for duplicate LV name, lvid and PV id before writing metadata.
1075 Report all sanity check failures, not just the first.
1076 Fix missing lockfs on first snapshot creation.
1077 Add unreliable --trustcache option to reporting commands.
1078 Fix locking for mimage removal.
1079 Fix clvmd_init_rhel4 'status' exit code.
1081 Version 2.02.07 - 17th July 2006
1082 ================================
1083 Fix activation logic in lvchange --persistent.
1084 Don't ignore persistent minor numbers when activating.
1085 Use RTLD_GLOBAL when loading shared libraries.
1086 Add some forgotten memlock checks to _vg_read to protect against full scans.
1087 Add mutex to dmeventd_mirror to avoid concurrent execution.
1088 Fix vgreduce --removemissing to return success if VG is already consistent.
1089 Fix return code if VG specified on command line is not found.
1090 Fix PV tools to include orphaned PVs in default output again.
1091 Fixed unaligned access when using clvm.
1092 Fix an extra dev_close in a label_read error path.
1093 Append patches to commit emails.
1094 Fix target_register_events args.
1095 Prevent snapshots of mirrors.
1096 Add DISTCLEAN_TARGETS to make template for configure.h.
1097 More fixes to error paths.
1098 Fix lvcreate corelog validation.
1099 Add --config for overriding most config file settings from cmdline.
1100 Quote arguments when printing command line.
1101 Remove linefeed from 'initialising logging' message.
1102 Add 'Completed' debug message.
1103 Don't attempt library exit after reloading config files.
1104 Always compile with libdevmapper, even if device-mapper is disabled.
1106 Version 2.02.06 - 12th May 2006
1107 ===============================
1108 Propagate --monitor around cluster.
1109 Add --monitor to vgcreate and lvcreate to control dmeventd registration.
1110 Filter LCK_NONBLOCK in clvmd lock_vg.
1111 Add --nosync to lvcreate with LV flag NOTSYNCED.
1112 Use mirror's uuid for a core log.
1113 Add mirror log fault-handling policy.
1114 Improve mirror warning messages and tidy dmeventd syslog output.
1115 Propagate nosync flag around cluster.
1116 Allow vgreduce to handle mirror log failures.
1117 Add --corelog to lvcreate and lvconvert.
1118 Create a log header for replacement in-sync mirror log.
1119 Use set_lv() and dev_set() to wipe sections of devices.
1120 Add mirror_in_sync() flag to avoid unnecessary resync on activation.
1121 Add mirror_library description to example.conf.
1122 Fix uuid_from_num() buffer overrun.
1123 Make SIZE_SHORT the default for display_size().
1124 Fix some memory leaks in error paths found by coverity.
1125 Use C99 struct initialisers.
1126 Move DEFS into configure.h.
1127 Clean-ups to remove miscellaneous compiler warnings.
1128 Improve stripe size validation.
1129 Increase maximum stripe size limit to physical extent size for lvm2 metadata.
1130 Fix activation code to check for pre-existing mirror logs.
1131 Tighten region size validation.
1132 Ignore empty strings in config files.
1133 Require non-zero regionsize and document parameter on lvcreate man page.
1134 Invalidate cache if composition of VG changed externally.
1136 Version 2.02.05 - 21st April 2006
1137 =================================
1138 Fix vgid string termination in recent cache code.
1140 Version 2.02.04 - 19th April 2006
1141 =================================
1143 Add some cflow & scope support.
1144 Separate out DEFS from CFLAGS.
1145 Remove inlines and use unique function names.
1147 Version 2.02.03 - 14th April 2006
1148 =================================
1149 vgrename accepts vgid and exported VG.
1150 Add --partial to pvs.
1151 When choosing between identically-named VGs, also consider creation_host.
1152 Provide total log suppression with 2.
1153 Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct.
1154 Add vgid to struct physical_volume and pass with vg_name to some functions.
1155 If two or more VGs are found with the same name, use one that is not exported.
1156 Whenever vgname is captured, also capture vgid and whether exported.
1157 Remove an incorrect unlock_vg() from process_each_lv().
1158 Update extent size information in vgchange and vgcreate man pages.
1159 Introduce origin_from_cow() and lv_is_visible().
1160 pvremove without -f now fails if there's no PV label.
1161 Support lvconvert -s.
1162 Suppress locking library load failure message if --ignorelockingfailure.
1163 Propagate partial mode around cluster.
1164 Fix archive file expiration.
1166 clvmd now uses libcman rather than cman ioctls.
1167 clvmd will allow new cman to shutdown on request.
1169 Version 2.02.02 - 7th February 2006
1170 ===================================
1171 Add %.so: %.a make template rule.
1172 Switchover library building to use LIB_SUFFIX.
1173 Only do lockfs filesystem sync when suspending snapshots.
1174 Always print warning if activation is disabled.
1175 vgreduce removes mirror images.
1176 Add --mirrorsonly to vgreduce.
1177 vgreduce replaces active LVs with error segment before removing them.
1178 Set block_on_error parameter if available.
1180 Add details to format1 'Invalid LV in extent map' error message.
1181 Fix lvscan snapshot full display.
1182 Bring lvdisplay man page example into line.
1183 Add mirror dmeventd library.
1184 Add some activation logic to remove_mirror_images().
1185 lvconvert can remove specified PVs from a mirror.
1186 lvconvert turns an existing LV into a mirror.
1187 Allow signed mirrors arguments.
1188 Move create_mirror_log() into toollib.
1189 Determine parallel PVs to avoid with ALLOC_NORMAL allocation.
1192 Version 2.02.01 - 23rd November 2005
1193 ====================================
1194 Fix lvdisplay cmdline to accept snapshots.
1195 Fix open RO->RW promotion.
1196 Fix missing vg_revert in lvcreate error path.
1198 Version 2.02.00 - 10th November 2005
1199 ====================================
1200 Extend allocation areas to avoid overflow with contiguous with other PVs.
1201 Stop lvcreate attempting to wipe zero or error segments.
1202 Added new lvs table attributes.
1203 Separated out activation preload.
1204 Moved activation functions into libdevmapper.
1205 Fixed build_dm_name.
1207 Added xen xvd devices.
1208 Clear up precommitted metadata better.
1209 A pvresize implementation.
1210 Fix contiguous allocation when there are no preceding segments.
1211 Add mirror_seg pointer to lv_segment struct.
1212 Only keep a device open if it's known to belong to a locked VG.
1213 Fix lvdisplay to show all mirror destinations.
1214 Replacement suspend code using libdevmapper dependency tree.
1215 Add DEFS to make.tmpl.
1216 Use dm_is_dm_major instead of local copy.
1217 Allow mapped devices to be used as PVs.
1218 Move set_selinux_context into libdevmapper.
1219 Fix automatic text metadata buffer expansion (using macro).
1220 Cache formatted text metadata buffer between metadata area writes.
1221 Add pe_start field to pvs.
1222 Add 'LVM-' prefix to uuids.
1223 Split lv_segment_area from lv_segment to permit extension.
1224 Replacement deactivation code using libdevmapper dependency tree.
1225 Simplify dev_manager_info().
1226 Attempt to load missing targets using modprobe.
1228 Move mknodes into libdevmapper.
1229 Move bitset, hash, pool and dbg_malloc into libdevmapper.
1231 Version 2.01.15 - 16th October 2005
1232 ===================================
1233 Refuse to run pvcreate/pvremove on devices we can't open exclusively.
1234 Use ORPHAN lock definition throughout.
1235 Validate chunksize in lvcreate.
1236 Reduce chunksize limit to 512k.
1237 Fix chunksize field in reports.
1238 Don't hide snapshots from default 'lvs' output.
1239 Add is_dm_major() for use in duplicate device detection in lvmcache_add().
1240 Really switch device number in lvmcache when it says it is doing so.
1241 Option for bitset memory allocation using malloc as well as pool.
1242 Don't assume exactly two mirrors when parsing mirror status.
1243 Suppress fsync() error message on filesystems that don't support it.
1244 Fix yes_no_prompt() error handling.
1245 Add lvm.conf comment warning against multiple filter lines.
1247 Add format1 dev_write debug messages.
1248 Add clustered VG attribute to report.
1249 Move lvconvert parameters into struct lvconvert_params.
1250 Add clustered VG flag to LV lock requests.
1251 Change LV locking macros to take lv instead of lvid.
1252 Prepend 'cluster' activation parameter to mirror log when appropriate.
1253 Pass exclusive flag to lv_activate and on to target activation code.
1254 Prevent snapshot creation in a clustered VG for now.
1255 Factor out adjusted_mirror_region_size() and generate_log_name_format().
1256 Move compose_log_line() into mirror directory.
1257 Factor out _get_library_path().
1258 Don't kill idling clvmd threads.
1259 clvmd no longer takes out locks for non-clustered LVs.
1260 Recognise ATA over Ethernet (aoe) devices.
1262 Version 2.01.14 - 4th August 2005
1263 =================================
1264 Fix lvconvert PV parameter in help string.
1265 Prevent snapshots getting activated in a clustered VG.
1266 Separate out _build_dev_string.
1267 Move zero_lv to toollib.
1268 Fix pool format handler to work with pv segment code.
1270 Version 2.01.13 - 13th July 2005
1271 ================================
1272 Fix pvmove segment splitting.
1273 Abstract vg_validate.
1274 Only make one attempt at contiguous allocation.
1275 Fix lvm1 format metadata read.
1276 Fix lvm1 format non-mirror lvcreate.
1278 Version 2.01.12 - 14th June 2005
1279 ================================
1280 Various allocation-related pvmove fixes.
1281 Log an error if clvmd can't resolve a host name got from CCS.
1282 Fix potential spin loop in clvmd.
1284 Version 2.01.11 - 13th June 2005
1285 ================================
1287 Use matchpathcon mode parameter.
1288 Don't defer closing dead FDs in clvmd.
1289 Remove hard-coded 64k text metadata writing restriction.
1290 Make VG name restrictions consistent.
1291 Introduce lvconvert. So far only removes mirror images.
1292 Allow mirror images to be resized.
1293 Allow mirror images to have more than one segment.
1294 Centralise restrictions on LV names.
1295 Always insert an intermediate layer for mirrors.
1296 Suppress hidden LVs from reports unless --all is given.
1297 Use square brackets for hidden LVs in reports.
1298 Allow the creation of mirrors with contiguous extents.
1299 Always perform sanity checks against metadata before committing it to disk.
1300 Split lv_extend into two steps: choosing extents + allocation to LV(s).
1301 Add mirror log region size to metadata.
1302 Use list_iterate_items throughout and add list*back macros.
1303 Introduce seg_ macros to access areas.
1304 Add segtype_is_ macros.
1305 Support tiny metadata areas for pool conversions.
1306 Mirror activation handles disk log as well as core.
1307 Activation code recognises mirror log dependency.
1308 Add mirror_log and regionsize fields to report.
1309 Fix non-orphan pvchange -u.
1310 Fix vgmerge to handle duplicate LVIDs.
1311 Move archiver code from tools into library.
1312 vgscan/change/display/vgs automatically create metadata backups if needed.
1313 Merge cloned allocation functions.
1314 Fix contiguous allocation policy with linear.
1315 Cope with missing format1 PVs again.
1316 Remove lists of free PV segments.
1317 Simplify pv_maps code and remove slow bitset algorithm.
1318 Red-Hat-ify the clvmd rhel4 initscript.
1320 Fix loopfiles alias alloc & mem debugging.
1321 Un-inline dbg_strdup.
1323 Remove some unnecessary parameters.
1324 Introduce seg_is macros.
1326 Version 2.01.10 - 3rd May 2005
1327 ==============================
1328 Don't create backup and archive dirs till needed.
1329 Reinstate full PV size when removing from VG.
1330 Support loopfiles for testing.
1331 Tidy lv_segment interface.
1333 vgchange --physicalextentsize
1334 Internal snapshot restructuring.
1335 Remove unused internal non-persistent snapshot option.
1336 Allow offline extension of snapshot volumes.
1337 Move from 2-step to 3-step on-disk metadata commit.
1338 Scan ramdisks too and allow non-O_DIRECT fallback.
1339 Annotate, tidy and extend list.h.
1341 Make clvmd work around some "bugs" in gulm's node state notifications.
1342 Tidy clvmd's SIGHUP handler
1344 Version 2.01.09 - 4th April 2005
1345 ================================
1346 Add --ignorelockingfailure to vgmknodes.
1347 clvmd: Don't allow user operations to start until the lvm thread is fully up.
1348 clvmd-gulm: set KEEPALIVE on sockets.
1350 Version 2.01.08 - 22nd March 2005
1351 =================================
1352 Add clustered attribute so vgchange can identify clustered VGs w/o locking.
1353 Improve detection of external changes affecting internal cache.
1354 Add 'already in device cache' debug message.
1355 Add -a to pvdisplay -C.
1356 Avoid rmdir opendir error messsages when dir was already removed.
1357 Tighten signal handlers.
1358 Avoid some compiler warnings.
1359 Additional rename failure error message.
1360 read/write may be macros.
1361 clvmd: don't take out lvm thread lock at startup, it only protects jobs list.
1363 Version 2.01.07 - 8th March 2005
1364 ================================
1365 Cope with new devices appearing by rescanning /dev if a uuid can't be found.
1366 Remove DESTDIR from LVM_SHARED_PATH.
1367 clvmd fixes: make FDs close-on-exec
1368 gulm unlocks VG & orphan locks at startup in case they are stale
1369 gulm now unlocks VG & orphan locks if client dies.
1371 Version 2.01.06 - 1st March 2005
1372 ================================
1373 Suppress 'open failed' error messages during scanning.
1374 Option to suppress warnings of file descriptors left open.
1375 Fix default value of metadatacopies in documentation (2->1).
1376 Fix clvmd-gulm locking.
1377 ./configure --enable-debug now enables debugging code in clvmd.
1378 Fix clvmd-gulm node up/down code so it actually works.
1379 clvmd-gulm now releases locks when shut down.
1381 Version 2.01.05 - 18th February 2005
1382 ====================================
1383 Static binary invokes dynamic binary if appropriate.
1384 Make clvmd config check a little more tolerant.
1385 gulm clvmd can now cope with >1 message arriving in a TCP message.
1387 Version 2.01.04 - 9th February 2005
1388 ===================================
1389 Add fixed offset to imported pool minor numbers.
1390 Update binary pathnames in clvmd_init_rhel4.
1391 lvm2cmd.so should skip the check for open fds.
1392 Remove unused -f from pvmove.
1393 Gulm clvmd doesn't report "connection refused" errors.
1394 clvmd does a basic config file sanity check at startup.
1395 Fix potential thread shutdown race in clvmd.
1397 Version 2.01.03 - 1st February 2005
1398 ===================================
1399 More 64-bit display/report fixes.
1400 More informative startup mesg if can't create /etc/lvm.
1401 Fix snapshot device size bug (since 2.01.01).
1402 clvmd announces startup and cluster connection in syslog.
1403 Gulm clvmd doesn't hang trying to talk to a rebooted node.
1404 Gulm clvmd doesn't print cman error on startup.
1406 Version 2.01.02 - 21st January 2005
1407 ===================================
1408 Update clvmd_init_rhel4: use lvm.static and don't load dlm.
1409 Fix some size_t printing.
1410 Fix 64 bit xlate consts.
1411 Split out pool sptype_names to avoid unused const.
1412 Always fail if random id generation fails.
1413 Recognise gnbd devices.
1414 Fix clvmd startup bug introduced in cman/gulm amalgamation.
1415 Improve reporting of node-specific locking errors.
1417 Version 2.01.01 - 19th January 2005
1418 ===================================
1419 Fix clvmd lv_info_by_lvid open_count.
1420 Store snapshot and origin sizes separately.
1421 Update vgcreate man page.
1423 Version 2.01.00 - 17th January 2005
1424 ===================================
1425 Fix vgscan metadata auto-correction.
1426 Only ask libdevmapper for open_count when we need it.
1427 Adjust RHEL4 clvmd init script priority.
1428 Enable building of CMAN & GULM versions of clvmd into a single binary
1430 Version 2.00.33 - 7th January 2005
1431 ==================================
1432 pvcreate wipes first 4 sectors unless given --zero n.
1433 gulm clvmd now uses new ccsd key names.
1434 gulm clvmd now doesn't ignore the first node in cluster.conf
1435 Improve clvmd failure message if it's already running.
1436 Allow user to kill clvmd during initialisation.
1437 Fix off-by-one error in cluster_locking that could cause read hangs.
1439 Version 2.00.32 - 22nd December 2004
1440 ====================================
1441 Drop static/dl restriction for now.
1442 Fix an error fprintf.
1443 Fix vgdisplay -s. Breaks (undocumented) lvs/pvs/vgs -s instead for now.
1444 Fix device reference counting on re-opens.
1445 Ignore sysfs symlinks when DT_UNKNOWN.
1446 Add clvmd init script for RHEL4.
1447 Skip devices that are too small to be PVs.
1448 Fix pvchange -x segfault with lvm2-format orphan.
1449 Cope with empty msdos partition tables.
1450 Add CONTRIBUTORS file.
1452 Version 2.00.31 - 12th December 2004
1453 ====================================
1454 Reopen RO file descriptors RW if necessary.
1456 Version 2.00.30 - 10th December 2004
1457 ====================================
1458 Additional device-handling debug messages.
1459 Additional verbosity level -vvvv includes line numbers and backtraces.
1460 Verbose messages now go to stderr not stdout.
1461 Close any stray file descriptors before starting.
1462 Refine partitionable checks for certain device types.
1463 Allow devices/types to override built-ins.
1464 Fix lvreduce man page .i->.I
1465 Fix vgsplit man page title.
1466 Fix clvmd man makefile.
1467 Extend dev_open logging.
1468 Make clvmd_fix_conf.sh UNDOable.
1470 Version 2.00.29 - 27th November 2004
1471 ====================================
1472 xlate compilation fix.
1474 Version 2.00.28 - 27th November 2004
1475 ====================================
1476 Fix partition table & md signature detection.
1477 Minor configure/makefile tidy.
1478 Export version.h from tools for clvmd.
1480 Version 2.00.27 - 24th November 2004
1481 ====================================
1482 Trap large memory allocation requests.
1483 Fix to partition table detection code.
1484 Improve filter debug mesgs.
1485 Make clvmd_fix_conf.sh UNDOable
1487 Version 2.00.26 - 23rd November 2004
1488 ====================================
1489 Improve pool debugging stats.
1490 Detect partition table signature.
1491 pvcreate wipes md superblocks. (With --uuid or --restorefile it prompts.)
1492 Separate out md superblock detection code.
1493 Prevent snapshot origin resizing.
1494 Improve a vgremove error message.
1495 Update some man pages.
1496 Allow y/n with -ae args (exclusive activation).
1497 Fixes to lvcreate vgname parsing.
1498 Fix dm_name string size calculation.
1499 Improve clvmd error reporting during startup.
1500 Make clvmd cope with large gaps in node numbers IDs.
1501 Make clvmd initialisation cope better with debugging output.
1502 Tidy clvmd socket callbacks so all work happens outside main loop.
1503 clvmd -V now displays lvm version too.
1504 Add optional gulm build for clvmd
1506 Version 2.00.25 - 29th September 2004
1507 =====================================
1508 Fix return code from rm_link for vgmknodes.
1509 Make clvmd LV hash table thread-safe.
1510 Fix clvmd locking so it will lock out multiple users on the same node.
1511 Fix clvmd VG locking to it can cope with multiple VG locks.
1512 Remove spurious trailing dot in lvreduce man page.
1513 Fix vgremove locking.
1515 Version 2.00.24 - 16th September 2004
1516 =====================================
1517 Fix pool_empty so it really does empty the memory pool.
1518 Rename old segtypes files to segtype.
1519 Some fixes to memory debugging code.
1520 Exclude internal commands formats & segtypes from install.
1522 Version 2.00.23 - 15th September 2004
1523 =====================================
1524 Export dm name build & split functions.
1525 Use O_NOATIME on devices if available.
1526 Write log message when each segtype/format gets initialised.
1527 New commands 'segtypes' and 'formats'.
1528 Suppress pvmove abort message in test mode.
1529 Improve pvcreate/remove device not found error message.
1530 Allow pvmove to move data within the same PV.
1531 Describe how pvmove works on man page.
1532 Test for incompatible format/segtype combinations in lv_extend.
1533 Fix lvchange example on man page.
1535 Version 2.00.22 - 3rd September 2004
1536 ====================================
1537 Fix /dev/vgname perms.
1538 Restructure xlate.h.
1541 Version 2.00.21 - 19th August 2004
1542 ==================================
1543 Update cnxman-socket.h from cman.
1544 Recognise iseries/vd devices.
1545 Use 'make install_cluster' to install cluster extensions only.
1546 Cope with DT_UNKNOWN in sysfs.
1547 Fix extents_moved metadata size comment.
1548 Remove duplicate line in pvremove help text.
1549 Support variable mirror region size.
1550 Support PE ranges in pvmove source PV.
1551 Fixes to as-yet-unused LV segment splitting code.
1552 Change alloc_areas to pe_ranges and allow suppression of availability checks.
1553 Add dev_size column to pvs.
1554 Add report columns for in-kernel device number.
1556 Version 2.00.20 - 3 July 2004
1557 =============================
1558 More autoconf fixes.
1559 Fix device number handling for 2.6 kernels.
1561 Version 2.00.19 - 29 June 2004
1562 ==============================
1563 Reduce severity of setlocale failure message.
1564 Recognise argv[0] "initrd-lvm" (pld-linux).
1565 Make -O2 configurable.
1566 Added --disable-selinux to configure script.
1567 LD_FLAGS->LDFLAGS & LD_DEPS->LDDEPS in configure script.
1568 Add init_debug to clvmd.
1570 Version 2.00.18 - 24 June 2004
1571 ==============================
1572 Fix vgchange activation.
1573 Add cluster support.
1575 Version 2.00.17 - 20 June 2004
1576 ==============================
1577 configure --enable-fsadm to try out fsadm. fsadm is not tested yet.
1578 Display all filtered devices, not just PVs, with pvs -a.
1579 Fix sync_dir() when no / in filename
1580 vgcfgbackup -f accepts template with %s for VG name.
1581 Extend hash functions to handle non-null-terminated data.
1582 Add local activation support.
1583 Tidy relative paths in makefile includes.
1584 fsadm support for fsck and resizing - needs testing.
1585 Add read-only GFS pool support.
1586 Add lvm2create_initrd script from http://poochiereds.net/svn/lvm2/
1587 Fix rounding of large diplayed sizes.
1588 Suppress decimal point when using units of sectors/bytes.
1589 Additional kernel target checks before pvmove & snapshot creation.
1592 Version 2.00.16 - 24 May 2004
1593 =============================
1594 Set area_count within alloc_lv_segment.
1595 Remove error labels from lvresize.
1596 Fix a pvs error path.
1597 xxchange -ae for exclusive activation.
1598 Don't return non-zero status if there aren't any volume groups.
1599 Add --alloc argument to tools.
1600 Rename allocation policies to contiguous, normal, anywhere, inherit.
1601 nextfree becomes normal; anywhere isn't implemented yet.
1602 LV inherits allocation policy from VG. Defaults: LV - inherit; VG - normal
1603 Additional status character added to vgs to indicate allocation policy.
1604 Add reset_fn to external_locking.
1605 Ensure presence of virtual targets before attempting activating.
1606 Attempt to fix resizing of snapshot origins.
1607 Restructure lvresize, bringing it closer to lvcreate.
1608 A quick sanity check on vg_disk struct when read in. More checks needed.
1609 Only include visible LVs in active/open counts.
1610 Add virtual segment types, zero and error. A large sparse device can be
1611 constructed as a writeable snapshot of a large zero segment.
1612 Add --type to lvcreate/resize.
1613 Push lv_create & alloc policy up to tool level.
1614 Fix pvdisplay return code.
1615 Detect invalid LV names in arg lists.
1616 Reporting uses line-at-a-time output.
1617 lvm2 format sets unlimited_vols format flag.
1618 Internal-only metadata flag support.
1619 Basic checking for presence of device-mapper targets.
1620 Separate out polldaemon.
1621 Revise internal locking semantics.
1622 Move find_pv_by_name to library.
1624 Add devices to segments report.
1625 Begin separating out segment code. There's a lot of change here.
1626 Compress any (obsolete) long LVM1 pvids encountered.
1627 Support for tagged config files.
1628 Don't abort operations if selinux present but disabled.
1629 Fix typo in configure which left HAVE_LIBDL unset.
1631 Version 2.00.15 - 19 Apr 2004
1632 =============================
1633 configure --with-owner= --with-group= to avoid -o and -g args to 'install'
1635 Version 2.00.14 - 16 Apr 2004
1636 =============================
1637 Use 64-bit file functions by default.
1639 Version 2.00.13 - 16 Apr 2004
1640 =============================
1641 Set devices/md_component_detection = 1 to ignore devices containing md
1642 superblocks. [Luca Berra]
1643 Ignore error setting selinux file context if fs doesn't support it.
1645 Version 2.00.12 - 14 Apr 2004
1646 =============================
1647 Install a default lvm.conf into /etc/lvm if there isn't one already.
1648 Allow different installation dir for lvm.static (configure --staticdir=)
1649 Fix inverted selinux error check.
1650 Recognise power2 in /proc/devices.
1651 Fix counting in lvs_in_vg_opened. [It ignored devices open more than once.]
1653 Version 2.00.11 - 8 Apr 2004
1654 ============================
1655 Set fallback_to_lvm1 in lvm.conf (or configure --enable-lvm1_fallback)
1656 to run lvm1 binaries if running a 2.4 kernel without device-mapper.
1658 Version 2.00.10 - 7 Apr 2004
1659 ============================
1660 More fixes for static build.
1661 Add basic selinux support.
1662 Fix sysfs detection.
1664 Version 2.00.09 - 31 Mar 2004
1665 =============================
1666 Update copyright notices for Red Hat.
1667 Fix vgmknodes to remove dud /dev/mapper entries. (libdevmapper update reqd).
1668 Add LVM1-style colon output to vgdisplay.
1669 lvchange --refresh to reload active LVs.
1670 Add string display to memory leak dump.
1671 Add locking flags & memlock option.
1672 Add list_versions to library.
1673 Ignore open hidden LVs when checking if deactivation is OK.
1674 Suppress move percentage when device inactive.
1675 Add lv_info_by_lvid.
1676 Various tidy-ups to the build process.
1677 Rebaseline internal verbose level.
1678 Add --nolocking option for read operations if locking is failing.
1679 Add option to compile into a library.
1680 When compiled without libdevmapper, only print warning message once.
1681 Fix lvreduce PV extent calculations.
1682 Fix DESTDIR to work with configure path overrides.
1683 Always use / as config file separator & rename internal config file variables.
1684 Add support for tagging PV/VG/LVs and hosts.
1685 Fix rare bug in recognition of long cmdline argument forms.
1686 Add basic internationalisation infrastructure.
1687 Don't recurse symlinked dirs such as /dev/fd on 2.6 kernels.
1688 Update autoconf files.
1689 Add sysfs block device filtering for 2.6 kernels.
1690 Update refs for move to sources.redhat.com.
1692 Friday 14th November 2003
1693 =========================
1694 Some bug fixes & minor enhancements, including:
1695 Backwards compatibility with LVM1 metadata improved.
1696 Missing man pages written.
1697 Tool error codes made more consistent.
1699 O_DIRECT can be turned off if it doesn't work in your kernel.
1700 dumpconfig to display the active configuration file
1702 You need to update libdevmapper before using 'vgmknodes' or 'vgscan --mknodes'.
1703 If your root filesystem is on an LV, you should run one of those two
1704 commands to fix up the special files in /dev in your real root filesystem
1705 after finishing with your initrd. Also, remember you can use
1706 'vgchange --ignorelockingfailure' on your initrd if the tool fails because
1707 it can't write a lock file to a read-only filesystem.
1709 Wednesday 30th April 2003
1710 =========================
1711 A pvmove implementation is now available for the new metadata format.
1713 When running a command that allocates space (e.g. lvcreate), you can now
1714 restrict not only which disk(s) may be used but also the Physical Extents
1715 on those disks. e.g. lvcreate -L 10 vg1 /dev/hda6:1000-2000:3000-4000
1718 Monday 18th November 2002
1719 ========================
1721 The new format of LVM metadata is ready for you to test!
1722 We expect it to be more efficient and more robust than the original format.
1723 It's more compact and supports transactional changes and replication.
1724 Should things go wrong on a system, it's human-readable (and editable).
1726 Please report any problems you find to the mailing list,
1727 linux-lvm@sistina.com. The software has NOT yet been thoroughly
1728 tested and so quite possibly there'll still be some bugs in it.
1729 Be aware of the disclaimer in the COPYING file.
1731 While testing, we recommend turning logging on in the configuration file
1732 to provide us with diagnostic information:
1734 file="/tmp/lvm2.log"
1739 You should schedule regular backups of your configuration file and
1740 metadata backups and archives (normally kept under /etc/lvm).
1742 Please read docs/example.conf and "man lvm.conf" to find out more about
1743 the configuration file.
1745 To convert an existing volume group called vg1 to the new format using
1746 the default settings, use "vgconvert -M2 vg1". See "man vgconvert".
1748 -M (or --metadatatype in its long form) is a new flag to indicate which
1749 format of metadata the command should use for anything it creates.
1750 Currently, the valid types are "lvm1" and "lvm2" and they can be
1751 abbreviated to "1" and "2" respectively. The default value for this
1752 flag can be changed in the global section in the config file.
1754 Backwards-compatible support for the original LVM1 metadata format is
1755 maintained, but it can be moved into a shared library or removed
1756 completely with configure's --with-lvm1 option.
1758 Under LVM2, the basic unit of metadata is the volume group. Different
1759 volume groups can use different formats of metadata - vg1 could use
1760 the original LVM1 format while vg2 used the new format - but you can't
1761 mix formats within a volume group. So to add a PV to an LVM2-format
1762 volume group you must run "pvcreate -M2" on it, followed by "vgextend".
1764 With LVM2-format metadata, lvextend will let you specify striping
1765 parameters. So an LV could consist of two or more "segments" - the
1766 first segment could have 3 stripes while the second segment has just 2.
1768 LVM2 maintains a backup of the current metadata for each volume group
1769 in /etc/lvm/backup, and puts copies of previous versions in
1770 /etc/lvm/archive. "vgcfgbackup" and "vgcfgrestore" can be used to
1771 create and restore from these files. If you fully understand what
1772 you're doing, metadata can be changed by editing a copy of a current
1773 backup file and using vgcfgrestore to reload it.
1775 Please read the pvcreate man page for more information on the new
1776 format for metadata.
1778 All tools that can change things have a --test flag which can be used
1779 to check the effect of a set of cmdline args without really making the
1783 What's not finished?
1784 ====================
1785 The internal cache. If you turn on debugging output you'll see lots of
1786 repeated messages, many of which will eventually get optimised out.
1788 --test sometimes causes a command to fail (e.g. vgconvert --test) even
1789 though the real command would work: again, fixing this is waiting for
1790 the work on the cache.
1792 Several of the tools do not yet contain the logic to handle full
1793 recovery: combinations of pvcreate and vgcfgrestore may sometimes be
1794 needed to restore metadata if a tool gets interrupted or crashes or
1795 finds something unexpected. This applies particularly to tools that
1796 work on more than one volume group at once (e.g. vgsplit).
1798 Display output. Some metadata information cannot yet be displayed.
1800 Recovery tools to salvage "lost" metadata directly from the disks:
1801 but we hope the new format will mean such tools are hardly ever needed!