[lvm2-commits] v2_02_100 annotated tag has been created

Alasdair Kergon agk at fedoraproject.org
Tue Aug 13 10:55:32 UTC 2013


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=b0d2a9992e413c2f51dda8647b2485d1f07fb635
Commit:        b0d2a9992e413c2f51dda8647b2485d1f07fb635
Parent:        0000000000000000000000000000000000000000
Author:        Alasdair G Kergon <agk at redhat.com>
AuthorDate:    2013-08-13 10:42 +0000
Committer:     Alasdair G Kergon <agk at redhat.com>
CommitterDate: 2013-08-13 10:42 +0000

annotated tag: v2_02_100 has been created
	    at b0d2a9992e413c2f51dda8647b2485d1f07fb635 (tag)
       tagging 297907899c389fef074eeb56fd0d7b60d66dbb35 (commit)


Release 2.02.100

84 files changed, 1540 insertions(+), 442 deletions(-)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAABAgAGBQJSCg2iAAoJEK2W1qbAHj1nnXAP/i3ttt8LqYExgqm+TRi0zeC5
0bzhZtlzCmR7RGqZj2Myr5pYEFcV29DuRkDyoLROmGw3A1FEIPk7KulsnGPSGjmF
R7fzio86y6allQ2rsxxHCp5epzsp5vYd8WLVj2DR/eHTkT297rHjSIS4WgBgNQdq
TPLg3Alkt/+lCbU8MdJH4pXgh3Uofolhw0C2C01qAaWhP/9EqBJ0Puzjyy0w7Ect
UWf1OumcrNMHb4VtbKsEbQ/dehgwwbTxxQovCxrThFZFp678N5jeH3fKZbTE+u1g
jRB6eGy23h48oNN6TGo6zfNE6CMH2u6LsmeUsXRxZgim6xpW0FcoLmbsLXPpn8eS
6a8C3uQcpMEJkwBfVGqG6y7TV1M56M2eWJriPv1ykGDNQ91+vurHiQhpqb6Ik8nq
yN7tOVCzXD9iI+a3Pdhc7DoogCEuUmk9zEzp3LgqSKyWu+NcUksDnp0L6Z168IjW
NRtsdZj/699m03oE/sPB9CUnepuyltjDw2IbCvgnSBlsVvYIpGsbPaPoZxdJk/dr
Kgv8b//TQFMlAbjbS2jEK4Xuzmte0neAW8S50sQ8P5vdrSefsYjgzE/+KNuDYH5e
YAXLfL8IWz53glfJt/FbTPCb149Bf+vgSCqLBAWvOBD8xobJSltCAWPDi9nDolTG
DJBjgtEMmtylUFjhhOxQ
=o9FD
-----END PGP SIGNATURE-----

AJ Lewis (29):
      o Basic README..
      o initial subdir population
      o Populating with stuff from experimental
      o Added _basic_ config file support to the device manager
      o Brought hash table code over from experimental
      o Added a basic makefile to build liblvm.a again
      o Quick and dirty hack to get lvm_check_dev code into the dev-manager
      o Quick and dirty *UGLY* hack of a /proc/devices cache using a linked list
      o Ok, this seems to be a much better method for caching valid
      o Enable building dm modules (called dm-mod)
      o Updated *display output for LVM1 compatibility
      o Will now correctly remove expired achive files from the system when
      o Added function find_snapshots to snapshot_manip.c that returns a list
      o header should only be printed once...
      o Actually read snapshot percentage from the kernel - what a pain!  :)
      o the _status fxns now take more arguments - this way i don't get the
      o fix changed function names
      o This resolves bug #79
      o Build dmeventd against multilog
      o stick multilog into the dm-event lib and dmeventd code again
      o Changed the multilog API a bit (I warned you)
      Fixes bz#155478
      updated to reflect clvmd rhel4 initscript being redhatified
      more clvmd rhel4 initscript cleanup
      Change the multilog code to toggle between async and sync writes for all
      o script to adjust items in lvm.conf file - currently only handles turning
      o set umask and make tempfiles a bit nicer to deal with
      o print the context along with the path when setting selinux context
      fix pool format handler to work with pvseg code

Adam Manthei (1):
      o cluster lvm requires that /usr/sbin/$TOOL is used instead of

Alasdair G Kergon (104):
      Upstream source repo move to fedorahosted.org git.
      Update source code location in README.
      Remove obsolete CVS helper script.
      Edit WHATS_NEW.
      Update VERSION date.
      Mention old source code web location in README.
      Add .gitignore files for an in-source-tree build.
      More .gitignore files for an in-source-tree build.
      Rename git report from LVM2.git to lvm2.git.
      dmeventd: Improve comment about repeated DIE msgs
      gitignore: add .swp
      WHATS_NEW_DM: Update for release.
      VERSION: Update for release.
      gitignore: Remove redundant test dir entry
      release: WHATS_NEW tidy
      release: post-release update version
      veritysetup: Remove code as now in cryptsetup.
      gitignore: Ignore files ending in ~
      kernel docs: Refresh kernel target documentation
      allocation: allow release_lv_segment_area to fail
      discards: split discard from release_pv_segment
      discards: don't discard reconfigured extents
      WHATS_NEW: update
      alloc: fix raid --alloc anywhere double allocs
      toollib: fix ignored_mdas process_each_pv rescan
      filters: Add Micron PCIe SSDs (mtip32xx)
      filters: Add Micron PCIe SSDs (mtip32xx) [part2]
      filters: move device_info_t definition to header
      dmsetup: allow --noflush with status/wait for thin
      reports: invalid snaps do not capitalise lv_attr
      version: update
      version: update
      version: update
      version: update
      man: document allocation process in lvm.8
      comments: misc updates
      thin: order discard enum alphabetically
      thin: tighten discard string conversions
      activation: log target version present
      report: provide discard field value in full
      whitespace
      thin: mention discard/zero in lvchange errmsg
      thin: tidy commands.h arg lists
      man: expand lvchange --discard entry
      thin: tidy thin discard code
      release: update version/WHATS_NEW
      thin: use discards as plural rather than singular
      thin: fix recent commits
      version: update
      config: add silent mode
      buffering: use unbuffered silent mode for liblvm
      setvbuf: close and reopen stream before change
      discards: skip when removing LVs on missing PVs
      lvs: add partial attribute
      python: Add bindings for liblvm2app.
      lvmetad: document and tidy cmdline args
      lvmetad: use -l for logging level not -d
      Makefiles: fix distclean dir dependency
      lvmetad: rename DEBUG() to DEBUGLOG()
      release: prepare for release
      docs: host tags has a default volume_list
      filters: Add STEC skd and Violin vtms devices
      lvmetad: lvm depends on libdaemonclient.a
      lvmetad: improve client logging when connecting
      libdaemon: add logging to daemon_open
      lvmetad: rename device vars and move _token_update
      lvmetad: add basic client-side debug logging
      lvmetad: fix format1 updates
      logging: add debug classes
      logging: classify log_debug messages
      filters: power2 devs get precedence if PVIDs match
      Revert "cleanup: simplify option matching function"
      commands: accept --yes globally
      make: fix exported symbols regex for non-GNU sed
      rephrasing: miscellaneous changes
      activation: fix lv_is_active regressions
      doc: update dm kernel files to 3.10-rc1
      ioctl: add DM_DATA_OUT_FLAG to dm-ioctl.h
      report: revert lvs origin_size sort order change
      text: miscellaneous comments & message tweaks
      locking: fix cluster lock_resource fn prototype
      lvresize: separate validation from action
      report: remove LV_CREATE_PARAMS report type
      pvcreate: remove metadata.h header
      tools: remove metadata.h from pvresize/vgck
      tools: remove metadata.h
      tools: remove metadata-exported.h
      metadata: cleanup comments and formatting
      display: fix units for sizes <1k
      reporting: tidy recent new fields
      commandline: add prefix aliases for raid options
      cmdline: support ARG_GROUPABLE in merge_synonym
      cleanup: suppress compiler warning
      thin: rename extend_pool to create_pool
      deptree: don't remove live node on resume failure
      Revert "lvm2app: lvm_vg_list_lvs filter hidden LVs"
      python: fix Makefile installation path
      python: Introduce pyexecdir
      cleanup: comments and a message
      release 2.02.99
      post-release
      alloc: fix lvextend when stripe number varies
      logging: tidy log_sys_error when string empty
      release 2.02.100

Alasdair Kergon (2738):
      o Initialisation tweaks.
      Return 0 on success now.
      Tweak permissions - currently root-only.  (no support for non-root ownership
      Add dm-parse
      o Remove hard-coded mount point
      Add dm-parse to makefile
      is_identifier characters
      o kmalloc error check
      Always truncate error file.
      Use dmfs_ function name prefix (in line with other file systems).
      o Arbitrary mount path.
      Error checking: only allow block devices & test for 'nodev'.
      Fix allocation & list-handling.
      hardsect/blksize handling
      Unused variables.
      Initialise root node pointer.
      Makefiles & autoconf.
      Fix dependencies.
      Another missing dependency.
      lvactivate checkpoint commit
      fix memory leak
      Create symlinks to .h files in an include directory
      Tidy include files
      Merge fixes
      Tidy includes
      merge partition code
      Misc structural changes.
      Misc structural changes.
      Another step towards consistency & compilation.
      pvscan framework
      lvremove outline
      vgrename & pvchange outlines
      vgcreate & lvmchange outlines
      makefile support for tests
      metadata status flags regrouping & comments;  misc tool changes
      revised flags and comments
      Sync include file changes.
      vgrename & vgck
      o vgremove.
      Tidy metadata diagnostic messages.
      standardise some log messages
      vgreduce, vgremove, vgrename & vgscan
      sync
      vgcreate
      o lvm readline error-case tidy-up
      More vgcreate error trapping
      vgcreate basic extent size validation
      vgextend
      vgchange
      pvscan
      pvchange
      pvdisplay
      reinstate a removed line
      filter integration into tools
      deallocations
      persistent filter & some log message changes
      persistent cache fully incorporated.  Goodbye to scanning /dev/cdrom :-)
      o fopen error message
      o log/overwrite=1 in config file to overwrite instead of append to log
      lvremove
      prefix & vgname in lvname
      basic lvscan
      lvchange
      o Changes to activation interface
      Link in the activation library.
      lvcreate prototype
      Reinstate size of lv
      lvcreate
      o Always set LVM_READ.
      lvdisplay & lvreduce
      o Added lvextend
      iospace restructured
      Remove hard-coding and create device-mapper directory if required
      Merge lvreduce & lvextend into lvresize.
      o lvdisplay now shows LE / PV map
      Miscellaneous tidying
      Avoid generating duplicate lv names
      More LV-related tidying.  lvdisplay without args now shows all LVs.
      Use inttypes.h
      lvrename (without reactivation)
      Zero first 4k of new LVs.
      vgdisplay
      Tidy makefiles
      dmdir path
      o activation & active status tests
      additional patch required
      LV create/extend prototype changes for striping
      Tool support for multiple (striped) segments (incomplete).
      vgmerge first cut
      Fix a memory smash.
      Use CFLAGS during make rule generation.
      o Tool support for segments.
      Make source files depend on makefiles.
      Fix single stripe resizing.
      Add -t or --test arg to all tools that update metadata to avoid
      Add autoconf & makefile structure like LVM2.
      configure --with-interface=ioctl (default) or =fs to choose kernel interface
      More striping support & fixes.
      Tweaks for make install.  -m args replaces verbose to display maps.
      Added more log messages.
      Correct activation message.
      Various fixes & restructure to extract common code.
      Moved across to device-mapper repository.
      Fixes for library compilation.
      Fixes for allocation of striped volumes.
      Apply make distclean to test subdirs too.
      fix for clean compilation
      Add internal cache holding a 'hint' list of the PVs belonging to each VG.
      Handle orphan PVs too, so hints remain valid after vgreduce.
      o Include dmsetup man page in build
      Revised ioctl/dmfs merge with fixes for bugs found in tests.
      Remove unused --with_kernel_dir
      Fixes for compilation.
      Fix C99 error case handling (snprintf ret value >= buffer size).
      o Allow more default values to be overridden from config file.
      Outline docs
      Document lvm.conf fields
      Redundant.
      Remove some old files.
      o Use lvm_snprintf wherever return value is used
      vgcache.h inclusion (avoid compiler warning)
      o Add autobackup support to tools (follows most vg_write calls).
      Add test mode parm.
      Tidy makefiles - $DESTDIR & shared library version (like LVM1)
      Fix $DESTDIR support
      o Allow the definition of read-only devices (ioctl interface only)  (Joe)
      *** empty log message ***
      Fix final comma in arrays.
      stub for read-only functions with fs interface
      Put device name in quotes.
      Document remaining configuration file parameters.
      The start of an lvm man page.
      Imported man pages from LVM1 with some quick LVM2 updates.
      tidying
      Missing close() in error case.
      Support for read-only.
      If a device somehow became suspended, lvchange -ay now reactivates it.
      Sync tidy.
      Sync.
      fixes for compilation
      call archive_exit() & backup_exit() on exit
      Another attempt to support both readline versions.
      Allow pool_begin_object in empty pool.
      Explicitly close (=>flush) files.
      o Try to improve NFS-safety for temporary file creation (unique name; O_APPEND
      Add archiving.
      Accept octal values for numbers (such as umask).
      o Rename many occurrences of 'backup' to 'archive' to reduce confusion.
      Renamed to archive.c
      Temporary file creation & renaming.
      Allow for multiple spellings / backwards compatibility of renamed
      Clarify terminology:
      Separate constant fields from variable ones.
      More detail in error msgs.
      Add 'get' functions.
      More steps towards successful compilation.
      o ACTIVE is no longer a status flag - lv_active() used to check if an LV
      Support the renaming of active mapped devices (ioctl interface only).
      o Add rename support to dmsetup.
      Some ioctl interface changes. (Do we want these?)
      Another ioctl interface update:
      o missing labeller free
      o More comprehensive config parameter debugging messages.
      Fix function typecasts.
      Reduce 'no label found' message severity to debug level.
      Remove a duplicate disk read (can_handle).
      o Don't update vgcache when (not really) writing in test mode.
      Move test flag from log to global section of config file.
      o pvcreate --uuid to specify the uuid (required before using vgcfgrestore
      Use additional version numbers.
      Add another level of symlink to library name (like LVM1) so people who find
      Add function that returns the library version.
      Support --version argument and 'version' shell command.
      beta1-pre1 tagged, but there's still some documentation to update/write.
      More updates.
      Allow compilation against a device-mapper that was installed into $DESTDIR
      Use same log levels as LVM2.
      Display something in the "hypothetical" unknown log level case.
      Allow syslog facility to be set, or turned off, from the config file.
      Is this sufficient to fix make -j?
      Insert a missing hash_remove.
      No need for file output to default to stderr now that log file can be
      Update.  Ready to release?
      old file
      Customisable message output prefix / indentation.
      New config options to customise message output.
      Reviewed interaction with lib/activate now that the interface has settled down.
      Update with info on how to configure command output to look like LVM1
      Silently remove any existing symlink before creating a new one.
      *** empty log message ***
      Avoid using VG metadata on PVs that are not in VGs.
      o Remove redundant symlink-handling code.
      Remove any core files on distclean.
      Fix dev_close arg.
      Ignore all except one PV found with the same UUID.  Use one which
      Impose max PE limit for each PV.
      Improve allocation error messages when PVs in a VG have the allocatable
      Clear a FIXME about checking for identical devices by comparing dev_t
      Fix the device cache to cope reasonably safely with device name changes.
      Don't bother to write out an empty cache.
      Have a pe_total check using theoretically big number instead of the
      Only remove symbolic links when deactivating.
      Set pv->pe_size when reading in text-file backup.
      The latest attempt at making extended striped LVs work portably with LVM1.
      Prevent lvextend from adding segments with different stripe characteristics
      If lv isn't active, skip reactivation.
      Tweak some error message levels.
      *** empty log message ***
      Add list_iterate that's safe with deletions.
      Display 'exported' status.
      o Basic support for exporting (but importing not completed yet).
      o A vgimport implementation
      add vgimport
      Correct statement order for case when 'stripes' parameter is not supplied.
      Allocate fixed space for vg->system_id when vg is created, instead of
      Basic support for (read-only) partial activation if any PVs are
      Propagate volume group read-only setting down to its logical volumes.
      Remove stray comma.
      "exit" means "quit"  (lamer)
      Remove gcc -D to support as different gcc versions handle it differently.
      Display error when running unimplemented functions.
      Failure signalled by -1 not 0; MAX_DEVICES 256 (was 64); change a '>' to '>='.
      Basic support for persistent minor numbers;
      lv->minor >= 0  (ejt)
      Another release (includes some fixes from last week;  persistent minors,
      Move defaults.h
      move defaults.h
      Locking prototypes.
      o Support locking with local lock files
      Document return codes.
      dbg_free(tc->desc)
      Now that most of the usage of 'stack' only occurs when there's an error,
      Preparation for an LVM2 liblvm - pass cmd_context into each tool and
      Run through indent - no (intentional) changes to any code.
      o Use 'pvcreate --setphysicalvolumesize' with no short form (instead of -s)
      Remove VG arg from lv_is_cow() and lv_is_origin() - use lv->vg instead.
      lvd->lv_access & LV_SNAPSHOT  not  lvd->lv_status
      Suppress meaningless <backtrace> msg on screen (no prog/line number given)
      Remove lv_update_write_access: use lv_reactivate directly now instead.
      Try out using LV locking for reactivation.
      Generate LV uuid from lv_number when reading in LVs.
      o Convert lv->id back to lv_number when writing back to disk
      indent
      Begin conversion so LV id is passed to activation unit instead of
      Clearer link pathname display.
      Running out of filehandles?  Close /dev/device-mapper/control then.
      o Lock mechanism for LV activation
      Fix unlock parameter.
      More use of LV locking.
      Remove unused fns.
      snapshot/zero logic
      Fix activation for VG with more than one LV.
      o Use new LCK_HOLD flag to indicate whether lock should be held on return
      Kernel functionality that returns device dependencies (ejt).
      o dm_destroy_all() called on exit - but doesn't touch suspended devices yet.
      o activate/reactivate merge
      lv_info replaces lv_active etc.
      Move is_empty_dir to lvm-file
      Let dmsetup store the uuid on device creation.
      Set LV uuid.
      dmsetup display uuid
      A missing free() found by Valgrind. ( http://developer.kde.org/~sewardj/ )
      Suppress verbose/debug messages from libdevmapper.
      Integrate suspend.
      distclean also to remove libdm-common.h
      Reduce the number of dm info calls.
      Review locking: block signals instead of ignoring them and restore state
      New function to enable suppression of messages to stdout/stderr.
      Cut the number of device-mapper calls.
      s/Removing/Unloading/ in messages to reduce confusion
      Tie all snapshot (de)activation requests to (de)activation of origin device.
      lvrename works on snapshots now
      Support device queries by uuid as well as by name.  (Used by lvrename.)
      Better support for LVs with hyphens in names.
      Improve log messages.
      Fix typo.
      o read-only device support
      New-style persistent minor support.
      Snapshots are now attached to their origin device for locking purposes
      Cope with creation of additional snapshots while active.
      Tidying.
      Rename LCK_NONE to LCK_UNLOCK
      Fix lv_setup() not to generate a new lvid each time if asked to setup the
      Implement a no_locking module that *does* attempt activation.
      Missing VG lock when iterating through all LVs.
      Allow deactivation of final snapshot.
      Missing seg->lv gives segfault when activating from text format.
      Commit snapshot-related changes preparing for the next beta release.
      Prepare for another beta release.
      Merge with text format branch.
      Update example config
      get_vgs must check for text format VGs when no lvm1 format VGs present
      Some partial VG support with format_text.
      Update.
      Tweaks
      Default values for some display output settings
      log/{prefix,command_names} use defaults.h & reset between shell cmds
      Always call init_log() to initialise logging defaults.
      Remove a no-op.
      Import snapshot status & persistence + indent etc.
      Rewrite missing/corrupt metadata in more cases.
      Update version.
      Revert to standard linux macros (for correct behaviour on rare architectures).
      Rename; add some FIXMEs.
      Fix LVM1 backwards compatibility issue when LV with a low LV number is deleted.
      update
      Fix vgcfgrestore segfault (wrong variable used).
      Remember to update VG free_count when reducing size of an LV.
      Tidy
      Tidy/fix segment rounding.
      Add vgsplit.
      Increment version.
      o Long-awaited ioctl interface clean-up.  *** Not backwardly compatible ***
      Tidy up for another release: updated documentation; removed old files;
      Merge adjacent "Missing" segments.
      Add --ignorelockingfailure
      Add get_config_str
      tidy
      Improved snapshot-related arg validation
      Remove hard-coded extent_size from snapshot target (field no longer used).
      Support alternative lvrename syntax.
      Improve missing-kernel-driver error message.
      Don't let LVM2 access a VG if the original LVM driver appears to be using it.
      Fix includes after DM_DIR definition move.
      Only functions listed in libdevmapper.h should get exported.
      A new cache.
      Refactoring.
      Some new features.
      Missing sector->k conversion in "logical volumes cannot be larger than" mesg.
      Remove 2 TB LV size restriction message.
      Fix snapshot lvcreate activation check.
      Skip config file reload attempt if no config file location.
      Show stripesize in KB.
      Further help text tidying & support for -?.
      Suppress a (normally) unnecessary warning.
      Default size unit normally MB not KB.
      More restore hints.
      Show PV uuid; single stripe is 'linear'; suppress snapshot fields for origin.
      tidy
      New devices/types config file entry to add new types of block devices.
      Keep some ld versions happy.
      Keep certain versions of ld happy.
      Maintain snapshot_count correctly.
      Fix long arg processing.
      Remove an unused .h file.
      Fix display alignment of zero.
      Add sync_dir()
      Use sync_dir().
      New column-based reporting tools: lvs, pvs & vgs.
      Default stripesize 64k & config file setting for it;
      When activating an LV, remove any stray LVM1 /dev nodes and group file.
      Also lock memory during LV updates.
      When there are device name aliases, choose the "nicest" to display.
      Correct error message for non-snapshot activation failure.
      More docn for filter changes.
      Ignore filter cache at startup if config file is newer than cache.
      Detect duplicate PV uuids - select the one on an md device if appropriate.
      Update date.
      o Additional device/filter-level debugging messages + duplicate alias fix
      configure --disable-devmapper  if you don't have libdevmapper
      Fix segfault in uuid display (substitution missed during bulk change)
      Fix (rare) cache bug on machines with large /dev directories.
      Update
      Activation commands now return success in test mode.
      Add success message; validate given VG name.
      vgreduce --removemissing to remove missing PVs & deps & make VG consistent
      Indicate full (dropped) snapshot.
      Add --enable-debug --disable-compat
      Allow optional verbose logging
      Allow optional verbose logging.
      Prepare for ioctl version number change.
      merge back accidentally overwritten r1.2 change
      Treat 'section{' as equivalent to 'section {'
      Allow strings in single quotes too
      Identifiers may now start with digits etc.
      LV name validation
      Fix table output bug in last commit.
      Fix typo.
      Fix incomplete munmap.  (pjc)
      Tidy various pre-processing incl. making libdl optional.
      Avoid report segfault with non-partial inconsistent VG.
      Proposed changes to the ioctl interface to fix alignment issues on some
      Reinstate lost vg_write() in lvchange --permission.
      Allow device major to be set too.
      size_t tidying
      Allow for specification of major number as well as minor.
      Add major arg
      alignment fixes
      Display read-only state.
      Support snapshot status fraction.
      Cope with intentionally missing /proc.
      Abort if any filter creation fails.
      Improve build robustness.
      Improve message for pvcreate of empty device.
      Some ioctl code tidying: removing duplicate internal buffers; making bounds
      DM_EXISTS_FLAG replaced by ENXIO
      Add pool_strndup
      fix optind after last change to it
      indent
      o Rejig activation code device dependencies to make things a bit more robust
      stripe filler parameter
      Stop more gracefully when in test mode.
      o Metadata area struct change.
      Update segment area length when merging consecutive segments.
      Version 1.95.17 (new <PV>:<PE range list> allocation restriction feature).
      Revert to data_start
      Extra metadata-reading debug message.
      Try alternative syncs if BLKFLSBUF fails.
      Event number support.
      Display event number.
      Up interface to major version number 4.
      Up interface to major version number 4.
      Add comment
      mirror display type
      mirror type
      pvmove flag
      basic pvmove support
      Outline pvmove man page
      Add mirror.c
      use pvmove flag
      pvmove support
      configurable region size
      add region size & interval
      Add pvmove
      Don't move snapshots
      Update
      Missing 'make install' dependency.
      Distinguish between visible & top level devices.
      Add argv
      list_next
      Move fields.
      reset_locking()
      move fields
      --abort --background
      Store argv
      Don't process locked LVs
      Prevent renaming active VGs for now.
      unsigned
      Check for locked LVs/pvmoves.
      remove global pvmove lock & poll for completion
      move functions
      Support for v4 interface
      Synchronise repository / 2.4.21 support
      Another sync point - numerous fixes & clean ups.
      Backwards compatibility fix for version1 suspend/resume.
      Driver version 1 compatibility fix for snapshots.
      update
      Fix inactive snapshot display.
      Restrict active lvchange -My with -f
      vsn 2.00.02 (rc3)
      Fix detection of exported LVM1 volume groups.
      update
      Fix vgimport fix to work outside debug mode.
      update
      Accept signed numbers in config file.
      update
      Missing check for inconsistent VG in pvmove.
      Also allow pvmove --abort when pvmove mirror not active (e.g. after a reboot).
      Remove small hard-coded activation target line parameter limit.
      Some tidyups and minor fixes.
      Update.
      Log each command & args.
      Cope better when format functions are missing.
      Remove unnecessary file.
      Fix unsafe list iteration in segment merge code.  [HM]
      Additional validation of LV segments read from metadata.  [HM]
      Fix makefile install mesg displayed for man5
      Don't use !# in randomly-generated uuids.
      Correct order of consistency/exists checks.
      Generalise 'invalid chars' error mesg to just say 'invalid'
      Missing ] in pvmove usage display
      Prevent cmdline flags that take args getting repeated.
      vgcfgrestore -l lists backup file too
      Missing vg_commit()
      Ensure more args aren't negative.
      Don't install the pvdata stub; update built-in mesg.
      Improve segment merge/split code.
      Make dev_name optional to show details for all devices.
      Fix read-only snapshot creation.
      Update
      out-of-date
      Remove incorrect comments.
      Update to incorporate most of version 4 interface changes.
      Extract some common functions.
      str_list_del
      macro changes
      more str_list fns
      Don't forget to set 64-bit arg values too.
      Prevent creation of MDA bigger than disk.
      Fix >32bit lvcreate size calculation.
      relax a scanning restriction
      dumpconfig to dump active configuration
      Dump active configuration
      Inherit CFLAGS at make time
      Check no fs mounted before deactivating.
      More consistent error code usage.
      Fix exported format1 VG recognition.
      Cope better with LVM1 minor numbers & LV numbers.
      Don't trigger error if changing PV allocation to the state it already is.
      Fix pvchange segfault with orphans.
      Ban vgcreate -s 0
      Fit locking bits into 1 byte.
      Add drbd.
      Configuration-time O_DIRECT setting.
      Fix vgremove 'all OK' check
      Prevent PV allocation bit getting changed for format_text orphans.
      Default to unlimited number of LVs/PVs in lvm2 format.
      Exclude v1 compatibility code when configured with --disable-compat
      Accept tables from stdin with dmsetup.
      The LVM2 part of vgmknodes [still to do the non-devfs device-mapper bit].
      dmsetup mknodes
      vgmknodes also creates necessary nodes in /dev/mapper
      Missing include.
      Immediate error on big memory allocations when --enable-debug.
      Fix dev_zero() offset.
      vgscan --mknodes
      Add/update some man pages.
      lvcreate should close the initialised snapshot device immediately.
      Ready for another release.
      Update dmsetup man.
      Don't remove mirror LV until after other LVs reloaded.
      dumpconfig
      Fix support for PVs on read only devices. [Still must set LVs read only]
      Relax restriction on pe_start location when re-writing LVM1 metadata.
      Remove undocumented -m abbreviation.
      Change pvscan to show total of usable device size (instead of free data space).
      Option to revert to default logging function after using a custom one.
      Log full details when "VG data differs between PVs" error message occurs.
      If PV/VG uuids are missing, generate them from the pv/vg numbers.
      pv/vgchange --uuid to change (non-random) UUIDs to random values
      Document that sector size is always 512 bytes.  [AJ]
      Add event number arg to dmsetup wait.
      Userspace support for LIST_VERSIONS ioctl.
      Define BLKGETSIZE64 on systems with out-of-date header files.
      Static build too.
      Update CVS info for move to sources.redhat.com.
      split_words()
      Sysfs block device filtering option for 2.6.
      Don't inline hash _find
      don't inline pool_zalloc(); lift duplicated pool_str(n)dup to pool.c
      Update autoconf files
      Don't recurse symlinked dirs such as /dev/fd on 2.6.
      Basic internationalisation support.
      File missed from last checkin.
      more makefile syncing
      Extract log.h and tweak funcs to be like lvm2 ones.
      more syncing with lvm2 build process
      Update man page incl. 'targets', event_nr.
      Detailed changelog.
      Fix (rare) bug in recognition of long argument forms.
      More str_list fns.
      tagging
      move hostname into global
      host tags
      rename config file vars & always use / as separator
      additional activation functions
      Fix DESTDIR with configure path overrides.
      Avoid sscanf %as for uClibc
      Fix lvreduce pv extents calculations.
      Only print warning message once when compiled without libdevmapper.
      Document metadata tagging.
      Rebaseline internal verbose level.
      Indent; _init -> _init_lvm
      Move main() into separate file.
      Add --nolocking option for read operations if locking is failing/unavailable.
      Add cmdlib code.
      Rename some files to avoid duplicate filenames in tree.
      Update makefiles (incl. cmdlib).
      update configure for cmdlib
      cmdlib logging function
      .export.sym generation
      cmdlib prototypes
      lv_info_by_lvid
      indent
      Tidy sysfs includes
      Suppress move percentage when inactive
      Ignore open hidden LVs when checking if deactivation is OK.
      Add list_versions to library
      makefile spacing
      Add locking flags + memlock option.
      LV allocation variable renaming
      move lock_lvs;  add lock memlock code
      indent
      Add string display to mem leak dump.
      tweak memlock includes
      lvchange --refresh
      missing definition
      typo
      and another typo
      Move full mknodes functionality from dmsetup into libdevmapper.
      vgdisplay_colons
      spelling corrections
      Rename dev_manager_mknodes -> dev_manager_lv_mknodes etc.
      Fix vgmknodes to remove dud /dev/mapper entries
      Update copyright messages.
      Update changelog.
      Update copyright notices.
      Example cmdlib program.
      Update changelog.
      Missing dev_close_all()s
      Add 2.4 support for DM_LIST_VERSIONS (dmsetup targets).
      Update VERSION
      update text for release
      updates for release
      Build process fixes/tidy-ups.
      update for 1.00.10
      Move library targets definition into template.
      accept argv[0] lvm.static
      Fix shared format1 build.
      Combine static/dynamic build.
      Version 1.00.11
      Fix dmsetup.static install.
      More build fixes
      Update to 2.00.10
      Fix sysfs filter to check fs type.
      add some selinux support
      1.00.13
      fix static selinux build
      Fix status overflow check in kernel patches.
      Basic selinux support
      update for 2.00.10
      Option for auto-fallback to LVM1 tools if running 2.4 without device-mapper.
      Update version
      fix patch that misapplied
      Fix lvs_in_vg_opened counting.
      Add power2
      Install example config file by default if there isn't one already.
      lvm.static can be installed in different dir from rest of tools
      fix selinux error mesg
      update
      2.00.12
      Ignore error setting selinux file context if fs doesn't support it.
      Set devices/md_component_detection = 1 to ignore devices containing md
      Use 64-bit file functions.
      config option to avoid using install -o -g
      fix selinux library linking
      Missing $ => HAVE_LIBDL unset
      Don't abort operations if selinux is present but disabled.
      Support tagged config files.
      Compress any (obsolete) long LVM1 pvids encountered.
      Begin to separate out segment types.
      Add devices to segments report; some move->copy renaming.
      move find_pv_by_name to lib
      Revise internal locking semantics.
      Separate out polldaemon.
      Some basic checking for presence of device-mapper targets.
      Internal-only metadata flag support.
      lvm2 format sets unlimited_vols format flag.
      Reporting uses line-at-a-time output.
      stray space
      Detect invalid LV names in arg lists.
      Skip mirror LV.  Comments.
      comments
      fix return code
      Push lv_create & alloc policy up to tool level.
      Add --type to lvcreate/resize.
      Only include visible LVs in active/open counts.
      A quick sanity check on vg_disk struct when read in.  More checks needed.
      update comment
      indent
      Restructure lvresize, bringing it closer to lvcreate.
      Attempt to fix resizing of snapshot origins.
      Ensure presence of virtual targets before attempting activation.
      indent
      Add reset_fn to external_locking.
      Rename allocation policies; add --alloc to cmdline; LV inherits from VG.
      Don't return non-zero status if there aren't any volume groups
      xxchange -ae to activation exclusively
      Fix a pvs error path.
      Remove error labels.
      Set area_count within alloc_lv_segment
      v2.00.16
      Additional kernel target checks before pvmove & snapshot creation.
      Suppress decimal point when using units of sectors/bytes.
      i2o_block
      Fix rounding of large displayed sizes.
      lvm2create_initrd submitted by Jeff Layton <jtlayton at poochiereds.net>
      Add read-only GFS pool support.
      mark pool support read-only; fix makefile typo
      Support new target message ioctl.
      Clear message buffer before use.
      lvresize + fsadm support - needs testing
      tidy relative paths in makefile includes
      fsadm
      Add dmsetup -C for column-based output.
      Add local activation support.
      Extend hash functions to handle non-null-terminated data.
      vgcfgbackup -f accepts template with %s for VG name.
      Fix sync_dir() when no / in filename.
      Display all filtered devices, not just PVs, with pvs -a.
      fsadm configurable (default disabled as untested)
      Fix targets string size calc in driver.
      Remove pv segments line from backport.
      Add cluster support.
      Missing .exported_symbols
      Fix vgchange (de)activation of (open) LVs.
      update version
      Fix LD_FLAGS->LDFLAGS.  LD_DEPS->LDDEPS.
      Add initrd-lvm to list of recognised argv[0]s.  [pld-linux]
      Reduce severity of setlocale failure message (ie suppress during boot).
      make -O2 optimisation flag configurable.
      update version
      Fix device number handling for 2.6 kernels.
      set_selinux_context() return code fix
      fix a newline
      misc autoconf fixes
      Fix ftp urls
      Misc autoconf fixes
      update version
      Add report columns for in-kernel device number.
      Add dev_size column to pvs.
      Add a const.
      Change alloc_areas to pe_ranges and allow suppression of availability checks.
      Remove duplicate line in pvremove help text.
      Support for PE ranges in pvmove source PV.
      Update pvmove prototype.
      Cope with DT_UNKNOWN in sysfs.
      Cluster-extension-only installation.
      Recognise iseries/vd devices.
      2.00.21
      post-2.4.21
      Restructure xlate.h
      clvmd man page tweaks
      Fix /dev/vgname mkdir perms.
      2.00.22
      post 2.00.22
      Test for incompatible format/segtype combinations in lv_extend.
      Describe how pvmove works on man page.
      Allow pvmove to move data within the same PV.
      Improve pvcreate/remove device not found error message.
      Suppress pvmove abort message in test mode.
      New commands 'segtypes' and 'formats'.
      Write log message when each segtype/format gets initialised.
      Use O_NOATIME on devices if available.
      Export dm name build & split functions.
      Add formats & segtypes files.
      2.00.23
      post-2.00.23
      Some fixes to memory debugging code.
      Rename old segtypes files to segtype.
      Fix pool_empty so it really does empty the memory pool.
      2.00.24
      post-2.00.24
      Fix return code from rm_link for vgmknodes.
      Use macro in vgremove locking fix.
      2.00.25
      post-2.00.25
      printf->fprintf
      Support device referencing by uuid or major/minor.
      Fix size of dm_name string.
      Add --noheadings option to dmsetup -c for colon-separated output.
      Fixes to lvcreate vgname processing.
      update
      Also accept y/n with -ae.
      Update some man pages.
      update WHATS_NEW
      More man page updates.
      More lvm.conf and tagging documentation.
      More tagging documentation, with some cluster examples.
      Improve a vgremove error message.
      Prevent snapshot origin resizing.
      Separate out md superblock detection code.
      pvcreate wipes md superblocks. (With --uuid or --restorefile it prompts.)
      Only wipe signature bytes when destroying md superblock, so process
      Detect partition table signature.
      update pofile
      fix a md filter log mesg
      2.00.26
      pool debugging
      update po
      post-release
      Improve filter debug msgs.
      Fix to partition table detection code.
      Trap large memory allocation requests.
      update pofile
      fix partition table signature size
      Configure/makefile tidy.
      Endian fix to signature detection.
      update version
      xlate compilation fix
      post-29
      Extend dev_open logging.
      Fix clvmd man makefile.
      Fix vgsplit man page title.
      Fix lvreduce man page .i->.I
      Additional device-handling debug messages.
      2.00.30
      update pofile
      post-2.00.30
      Reopen RO file descriptor RW if necessary.
      2.00.31
      update pofile
      post-2.00.31
      Cope with empty msdos partition tables.
      Fix pvchange -x segfault with lvm2-format orphan.
      Add CONTRIBUTORS file.
      Skip devices that are too small to be PVs.
      Add RHEL4 clvmd init script.
      Ignore sysfs symlinks when DT_UNKNOWN.
      Fix device reference counting on re-opens.
      Fix vgdisplay -s. Breaks (undocumented) lvs/pvs/vgs -s instead for now.
      Fix an error fprintf.
      update version
      Drop static/dl config restriction for now.
      update pofile
      post-2.00.32
      pvcreate wipes first 4 sectors unless given --zero n.
      Configuration-time option for setting uid/gid/mode for /dev/mapper nodes.
      Attempt to fix /dev/mapper/control transparently if it's wrong.
      1.00.20
      post-1.00.20
      Fix /proc/devices parsing.
      1.00.21
      post-1.00.21
      2.00.33
      post-2.00.33
      Adjust RHEL4 clvmd init script priority.
      Add dm_task_no_open_count() to skip getting open_count.
      Only ask libdevmapper for open_count when we need it.
      Fix vgscan metadata auto-correction.
      1.01.00
      post-1.01.00
      2.01.00
      update po
      Post-2.01.00
      Update vgcreate man page.
      Store snapshot and origin sizes separately.
      move recover_vg
      Add some comments.
      fix clvmd lv_info_by_lvid open_count
      Recognise gnbd.
      Always fail if random id generation fails.
      Split out pool sptype_names to avoid unused const.
      Fix 64 bit xlate consts.
      Fix some size_t printing.
      Update clvmd_init_rhel4: use lvm.static and don't load dlm.
      pre-release
      update pofile
      postrelease
      Fix snapshot device size bug (since 2.01.01).
      More informative startup mesg if can't create /etc/lvm.
      Fix DM_LIB_VERSION sed
      Add option to compile without ioctl for testing.
      More 64-bit display/report fixes.
      2.01.03
      pofile
      post-release
      Remove unused -f from pvmove
      lvm2cmd.so should skip the check for open fds.
      Add fixed offset to imported pool minor numbers.
      post-release
      Static binary invokes dynamic binary if appropriate.
      post-release
      Fix default value of metadatacopies in documentation (2->1).
      Suppress 'open failed' error messages during scanning.
      Option to suppress warnings of file descriptors left open.
      2.01.06
      post-release
      Remove DESTDIR from LVM_SHARED_PATH.
      Cope with new devices appearing by rescanning /dev if a uuid can't be found.
      update pofile
      post-release
      read/write may be macros
      Additional rename failure error message.
      Avoid some compiler warnings.
      Fix WHATS_NEW.
      Tighten signal handlers.
      Avoid rmdir opendir error messsages when dir was already removed.
      Add -a to pvdisplay -C.
      Add 'already in device cache' debug message.
      Improve detection of external changes affecting internal cache.
      Add clustered attribute so vgchange can identify clustered VGs w/o locking.
      2.01.08
      update pofile
      post-release
      Drop-in devmap_name replacement.
      Update dmsetup man page.
      1.01.01
      post-release
      Add --ignorelockingfailure to vgmknodes.
      2.01.09
      post-release
      Alignment tidying.
      Annotate, tidy and extend list.h.
      more refinements
      _vg_posn -> _find_vg_rlocn
      Add ramdisk.
      Move from 2-step to 3-step on-disk metadata commit.
      Allow offline extension of snapshot volumes.
      store snapshot id as lvid internally
      fix unused o_direct label
      Remove unused internal non-persistent snapshot option.
      add lvid to lv_create_empty
      Internal snapshot code restructuring.
      get_pv_from_vg_by_id
      extract compose_log_line
      vgchange --physicalextentsize (but only if it's an exact fit - may need to
      _copy_pv -> int
      initial pv_segment defns
      Initial pv_segment code.
      set_lv_segment_area_pv/lv
      extend alloc_lv_segment
      Prototype for a device-mapper event-handling daemon.
      o adds dm_get_next_registered_device() (not functional yet)
      test.c->dmevent.c
      build libdmeventnoop.so for testing
      Reinstate full PV size when removing from VG.
      Don't create backup and archive dirs till needed.
      2.01.10
      post-release
      lv_reduce tidying.
      Un-inline dbg_strdup.
      Fix loopfiles mem alloc.
      fix compiler warnings
      %Zu->zu
      Remove lists of free PV segments.
      Cope with missing format1 PVs again.
      Fix contiguous allocations with linear.
      Add --target <target_type> filter to dmsetup table/status.
      Call dm_lib_exit() and dm_lib_release() automatically now.
      Add --target to dmsetup ls.
      Add dmsetup ls --exec.
      vgscan/change/display/vgs automatically create metadata backup if out-of-date or missing.
      Move archiver code from tools into library.
      Start merging cloned allocation functions.
      1.01.02
      Fix vgmerge to handle duplicate LVIDs.
      Fix mem allocs after archiver code move.
      Fix non-orphan pvchange -u.
      Basic support for mirrors.
      Always insert an intermediate layer for mirrors.
      lvremove mirror images
      Allow mirror images to have more than one segment.
      Allow mirror images to be resized.
      prevent active mirror resize for now
      Introduce lvconvert.  So far only removes mirror images.
      Make VG name restrictions consistent.
      Remove hard-coded 64k text metadata writing restriction.
      fix configure script to reenable selinux
      update version
      Use matchpathcon mode parameter
      Use matchpathcon mode parameter.
      2.01.11
      post-release
      Various allocation-related pvmove fixes.
      2.01.12
      post-release
      missing fn defs
      preset pl to NULL
      fix lvm1 non-mirror lvcreate
      Fix lvm1 format metadata read.
      Only make one attempt at contiguous allocation.
      Fix pvmove segment splitting.
      2.01.13
      update po
      post-release
      Fix dmsetup ls -j and status --target with empty table.
      update vsn
      post-release
      Move zero_lv to toollib.
      Separate out _build_dev_string.
      Prevent snapshots getting activated in a clustered VG.
      fix last checkin
      Fix lvconvert PV parameter in help string.
      update po
      post-release
      Recognise aoe devices.
      aoe
      Report 'buffer full' condition with v4 ioctl as well as with v1.
      Factor out _get_library_path().
      Don't kill idling clvmd threads.
      Move compose_log_line() into mirror directory.
      Factor out adjusted_mirror_region_size()
      Factor out generate_log_name_format().
      Prepare tools to support clustered mirrors.
      Change LV locking macros to take lv instead of lvid.
      Add clustered VG flag to LV lock requests.
      Move lvconvert parameters into struct lvconvert_params.
      Add clustered VG attribute to report.
      Add format1 dev_write debug messages.
      Add copyright notice to lvmconf.sh and use unique exit codes.
      lvmconf.sh
      Fix termination of getopt_long() option array.
      add comments to example conf file to warn about common filter line mistakes
      Fix yes_no_prompt() error handling.
      Suppress fsync() error message on filesystems that don't support it.
      Don't assume exactly two mirrors when parsing mirror status
      Option for bitset memory allocation using malloc as well as pool.
      Really switch device number in lvmcache when it says it is doing so.
      Add is_dm_major() for use in duplicate device detection in lvmcache_add().
      On 'buffer full' condition, double buffer size and repeat ioctl. [Untested]
      Explicitly initialise no_open_count
      Remember increased buffer size and use for subsequent calls.
      Resync list.h with LVM2.
      Don't hide snapshots from default 'lvs' output.
      Fix chunksize field in reports.
      1.01.05
      post-release
      Reduce chunksize limit to 512k.
      Impose chunk size limitation.
      Validate chunksize in lvcreate.
      Use ORPHAN lock definition throughout.
      Refuse to run pvcreate/pvremove on devices we can't open exclusively.
      Add dmsetup --nolockfs support for suspend/reload.
      Code to build and display device dependency tree.
      pre-release
      post-release
      export bitset, pool, hash, malloc
      Use hash, bitset, malloc, pool from libdevmapper.
      lvscan -a
      Attempt to load missing targets using modprobe.
      Attempt to load missing targets using modprobe.
      dm_driver_version
      Only one dump_memory.
      Replacement deactivation code - untested.
      some deactivation fixes
      Add deactivation functions
      Move deactivation code into libdevmapper.
      Tidy some log mesgs.
      Split lv_segment_area from lv_segment to permit extension.
      use seg_type macro
      cope with null uuid_prefix
      Add 'LVM-' prefix to uuids.
      fix dev no printf
      zero suppress
      Fix LVM2- prefix changes; export build_dlid.
      Add pe_start to pvs.
      Fix automatic text metadata buffer expansion (using macro).  [stdarg usage bug]
      Move set_selinux_context into libdevmapper
      Export dm_set_selinux_context.
      Add DEFS
      Use dm_is_dm_major instead of local copy.
      unfinished suspend functions
      check parents suspended
      switch in new suspend code (untested)
      new suspend code
      Attempt to cope with LVM- prefix transition.
      attempt to cope with uuid transition
      a missing lvid/dlid conversion
      Fix lvdisplay to show all mirror destinations.
      remove remaining hard-coded prefix lengths
      also suppress error if device doesn't exist with STATUS
      Also suppress error if device doesn't exist with DM_DEVICE_STATUS.
      suppress status err mesg when LVM- uuid prefix is missing
      Fix strncmps.
      Fix incorrect checkin
      fix strncmps
      remove unused suspend code path
      Export vgname_is_locked
      Only keep devices open if known to belong to a locked VG now.
      Only keep a device open if it's known to belong to a locked VG.
      Add mirror_seg pointer to lv_segment struct. (incomplete & untested)
      Fix new mirror_seg pointer.
      Fix contiguous allocation without preceding segments.
      Fix contiguous allocation when there are no preceding segments.
      more mirror library functions
      reorder commit
      A pvresize implementation (Zak Kipling).
      missing vg_revert
      revert unfinished change
      pvresize man
      Clear up precommitted metadata better on disk after use.
      precommitted flag
      New activation code.  [Not ready to be used yet.]
      Replacement activation code.  [Don't use this yet!]
      xen xvd
      rename deptree
      rename deptree
      rename deptree
      fix last checkin
      some fixes for mirrors
      more mirror fixing
      workaround for pvmove with new activation code
      revert - alternative pvmove fix, disabling preloading completely for now
      Extend allocation areas to avoid overflow with contiguous with other PVs.
      remove a debugging line
      pre-release
      post-release
      fix debug linking
      Fix selinux compile.
      more debug fixes
      A missing vg_revert in an error path.
      lvcreate vg_revert
      Additional LVM- prefix matching for transitional period.
      Drop leading zeros from dm_format_dev.
      Suppress unnecessary resumes.
      Remove a resolved FIXME.
      Resume snapshot-origins last.
      Fix open RO->RW promotions.
      Fix lvdisplay cmdline to accept snapshots.
      1.02.01
      2.02.01
      post-release
      post_release
      _find_parallel_space -> _find_segment_space
      Fix lv_empty.
      preparation for parallel_areas changes to allocation code
      alloc avoids parallel pvs when supplied
      Determine parallel PVs to avoid with ALLOC_NORMAL allocation. (untested)
      Allow signed mirrors arguments.
      more lvconvert mirror code
      Add some FIXMEs to libdm-event.
      Export dm_task_update_nodes.
      dmeventd updates
      dmeventd
      1.02.02
      post-release
      Add mirror dmeventd library
      More dmeventd support.
      fix exports
      Fix dmeventd build.
      Fix lvscan snapshot full display.
      comment
      comments
      Add sync, nosync and block_on_error mirror log parameters.
      ability to pass log flags to libdevmapper
      Add details to format1 'Invalid LV in extent map' error message.
      Set block_on_error parameter if available.
      Change dm_tree_node_add_mirror_target_log parm order
      fixme
      read/write loop fixes
      vgreduce replaces active LVs with error segment before removing them.
      fix libdevmapper-event include
      some fixes
      Add --mirrorsonly arg to vgreduce.  (Doesn't handle mirrors yet.)
      Always print warning if activation is disabled.
      Fix dmsetup version driver version
      Fix libdevmapper.h #endif
      Don't inline _find in hash.c and tidy signed/unsigned etc.
      vgreduce remove mirror images
      Fix hash function to avoid using a negative array offset.
      Fix dm_strdup debug definition.
      Fix dm_strdup debug definition.
      Rename register_dev; fix missing initialisation; reduce number of ifdefs.
      Add config file setting: dmeventd/mirror_library
      fix dmevent registration return codes
      Fix dmeventd sharedlib path & start tidying registration code.
      When suspending, dmeventd deregistration needs to use existing details
      Use split_dm_name in dmeventd mirror code.
      Replace deprecated signal functions.
      Fix libdevmapper event daemon_running status.
      Remove avoidable dmeventd mirror forking.
      More dmeventd mirror cleanups.
      some init_client cleanup
      dmeventd thread termination fix
      Fix renamed dso.
      Tidy some comments/messages.
      Add dm_tree_skip_lockfs.
      Rename _log to dm_log and export.
      Only do lockfs filesystem sync when suspending snapshots.
      remove unnecessary 0 in format string
      autoconf LIB_SUFFIX
      Add %.so: %.a make template rule.
      Add exported functions to set uid, gid and mode. [Bastian Blank]
      fix libdevmapper-event-mirror liblvm2cmd link search path
      suspend using existing LV metadata; vgreduce then needs partial flag
      Use supplied full dso name.
      Temporary device_exists() fixes.
      tweak clvmd makefile
      fix tabs
      Change prefix for clustered log from "clustered " to "clustered_"
      remove a dmeventd_mirror syslog message
      add clustered log uuid
      release
      fix mirror log parm count
      post-release
      post-release
      A setgeometry implementation. [untested]
      Add file & line to dm_strdup_aux().
      Fix archive file expiration.
      dmeventd thread/fifo fixes.
      Propagate partial mode around cluster.
      Remove an incorrect unlock_vg() from process_each_lv().
      If _create_and_load_v4 fails part way through, revert the creation.
      Use name-based device refs if kernel doesn't support device number refs.
      Suppress locking library load failure message if --ignorelockingfailure.
      Support lvconvert -s.
      pvremove without -f now fails if there's no PV label.
      Introduce origin_from_cow()
      more snapshot code tidying
      Bring dmsetup man page up-to-date.
      Update extent size information in vgchange and vgcreate man pages
      missing vg_name initialisation
      lv_is_visible()
      Capture vgid in more places.
      Whenever vgname is captured, also capture vgid.
      Use lvmcache_update_vgname_and_id throughout.
      When scanning, also record whether or not VG is exported.
      tidy
      If two or more VGs are found with the same name, use one that is not exported.
      Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct.
      When choosing between identically-named VGs, also consider creation_host.
      Add --partial to pvs.
      vgrename accepts vgid and exported VG.
      pre-release
      post-release
      configure/makefile tidying + pkg-config support.
      Check for libsepol.
      make pkgconfig installation step optional, and clean up generated files
      update version
      fix makefile
      post-release
      fix makefile
      fix makefile
      pre-release
      remove inlines
      post-release
      Increase dmsetup line buffer to 4k.
      Fix vgid string termination in recent cache code.
      pre-release
      terminate vgid in debug mesg
      Invalidate cache if composition of VG changed externally.
      remove redundant list_init
      Require non-zero regionsize and document parameter on lvcreate man page.
      Ignore empty strings in config files.
      _register_dev_for_events to return error on failure
      tweak .so loading messages; extra device_exists() sanity check
      Tighten region size validation.
      Fix activation code to check for pre-existing mirror logs.
      validate region size against page size
      missing {
      Improve stripe size validation.
      fix stripesize const
      sign fix
      Make SIZE_SHORT the default for display_size().
      coverity fixes
      Fix uuid_from_num() buffer overrun.
      more coverity fixes
      fix last commit
      Move DEFS into configure.h.
      pre-release
      post-release
      Add mirror_library description to example.conf.
      Create a log header for replacement in-sync mirror log.
      Add --corelog to lvcreate and lvconvert.
      Check in-sync status before changing disk log.
      Allow vgreduce to handle mirror log failures.
      Propagate nosync flag around cluster.
      Avoid a dmeventd compiler warning.
      Add DM_CORELOG flag to dm_tree_node_add_mirror_target().
      Add mirror log fault-handling policy.
      Use mirror's uuid for a core log.
      Add --nosync to lvcreate with LV flag NOTSYNCED.
      M for unsynced mirror
      Pre-release.
      fix compile
      Add --monitor to vgcreate and lvcreate to control dmeventd registration.
      pre-release
      not reqd
      fix dev->device
      post-release
      fix compile
      Fix corelog segment line.
      Fix lvcreate corelog validation.
      fix error path
      Add DISTCLEAN_TARGETS to make template for configure.h.
      Prevent snapshots of mirrors.
      Fix target_register_events args.
      test one change
      test
      change two files in different directories
      Fix an extra dev_close in a label_read error path.
      checkin test
      test checkin
      test checkin
      test checkin
      Fix PV tools to include orphaned PVs in default output again.
      Fix return code if VG specified on command line is not found.
      Don't suppress identical table reloads if permission changes.
      dmsetup remove_all also performs mknodes.
      Add --force to dmsetup remove* to load error target.  [Untested.]
      force remove fixes
      If VG is already consistent with --removemissing, return success not failure.
      Add mutex to dmeventd_mirror to avoid concurrent execution.
      Add some forgotten memlock checks to _vg_read to protect against full scans.
      Use RTLD_GLOBAL when loading shared libraries.
      Differentiate between the two 'log device failed' cases in vgreduce.
      add dlerror to another error path
      Avoid duplicate dmeventd subdir with 'make distclean'.
      Append full patch to checkin emails.
      test
      test
      Don't ignore persistent minor numbers when activating.
      Fix activation logic in lvchange --persistent.
      pre-release
      post-release
      Fix clvmd_init_rhel4 'status' exit code.
      Fix locking for mimage removal.
      Add --trustcache option to reporting commands in preparation for supporting
      Fix missing lockfs on first snapshot creation.
      Add lockfs indicator to debug output.
      Add checks for duplicate LV name, lvid and PV id before writing metadata.
      Add --table argument to dmsetup for a one-line table.
      fix getopt_long error check
      pre-release
      post-release
      pre-release
      post-release
      Add --maxphysicalvolumes to vgchange.
      Add lvm_getpagesize wrapper.
      Separate out LVM1_PE_ALIGN.
      wrap PE_ALIGN
      Fix PE_ALIGN for pagesize over 32KB.
      pre-release
      wrappers files
      post
      Move CMDLIB code into separate file and record whether static build.
      Prevent mirror renames.
      reorder bounds check code
      Add mirroring into man pages
      mirror man page tweaks
      fix lvm.conf (5) refs
      Add dm_split_words() and dm_split_lvm_name() to libdevmapper.
      Add dm_snprintf
      Move lvm_snprintf into libdevmapper.
      stub.h shouldn't be here
      Add skip_dev_dir() to process command line VGs.
      Change default locking_lib to liblvm2clusterlock.so.
      lvm.static uses built-in cluster locking instead of external locking.
      When using local file locking, skip clustered VGs.
      fix vgreduce clustered check
      Fix several incorrect comparisons in parallel area avoidance code.
      Extend _check_contiguous() to detect single-area LVs.
      Reorder mm bounds_check code to reduce window for a dmeventd race. (dm_free_aux)
      pre-release
      post-release
      Fix lvconvert mirror change case detection logic.
      pre-release
      post-release
      Supply missing comma.  [via Debian]
      Separate --enable-cluster from locking lib options in lvmconf.sh.
      Fix two potential NULL pointer derefs in error cases in vg_read().
      Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg.
      Add timestamp functions with --disable-realtime configure option. [AJ]
      Fix compiler warnings in percent arg.  [pjc]
      Show available fields if report given invalid field. (e.g. lvs -o list)
      Add LV column to reports listing kernel modules needed for activation.
      exclude targets that are always built-in
      Test.  Future commit messages should now also go to the dm-devel list
      Remove unused #defines from filter-md.c.
      Add lvm_dump.sh script to create a tarball of debugging info from a system.
      Fix _for_each_pv() for mirror with core log.
      Fix format_text mda_setup pv->size and pv_setup pe_count calculations.
      Add report columns with underscore before field names ending 'size'.
      Correct regionsize default on lvcreate man page (MB).
      Accept regionsize with lvconvert
      Remove duplicated pv arg from _check_contiguous().
      move _for_each_pv()
      abstract _is_contiguous()
      Extend _for_each_pv() to allow termination without error.
      more refactoring
      Accept regionsize with lvconvert.
      rely on pv_setup functions to fix up pe_count
      More work towards pv->size always holding the same value in internal metadata.
      check_contiguous to use for_each_pv
      .
      add cling allocation policy
      Test message to lvm-devel list.
      Add suspend noflush support.
      fix dmsetup usage display (missing 
 and --noflush wrong place)
      remove unused variable
      noflush code fixes: missing debug log; non-standard variable name
      pre-release
      missing mesg
      .
      pre-release
      fix realtime msg alignment
      post-release
      Propagate clustered flag in vgsplit and require resizeable flag.
      Avoid deptree attempting to suspend a device that's already suspended.
      pre-release
      post-release.
      Retain activation state after changing LV minor number with --force.
      Fall back to internal locking if external locking lib is missing or fails.
      Fix pvdisplay to use vg_read() for non-orphans
      pre-release
      revert
      post-release
      Add segment parameter to target_present functions.
      Set PV size to current device size if it is found to be zero.
      Suppress encryption key in 'dmsetup table' output unless --showkeys supplied.
      getline debug free
      Cope if same PV is included more than once in cmdline PE range list.
      Perform high-level free space check before each allocation attempt.
      Add lvchange --forcesync.
      fix forcesync local active detection
      reword --resync desc a bit
      try forcesync -> resync
      resync alphabetical order
      Add dev_flush() to set_lv()
      .
      When adding snapshot leave cow LV mapped device active after zeroing.
      dd couple of missing files to tools/Makefile CLEAN_TARGETS.
      pre-release
      post-release
      Fix high-level free space check for partial allocations.
      Fix clustered VG detection and default runlevels in clvmd_init_rhel4.
      Fix mirror log LV writing to set all bits in whole LV.
      fix last check-in: lv->size is in sectors
      fix shift
      Protect .cache manipulations with fcntl locking.
      Add some missing bounds checks on 32 bit extent counters.
      Fix adjusted_mirror_region_size() for 64-bit size.
      fix cast
      pre-release
      post-release
      Fix a label_verify error path.
      Fix --autobackup argument which could never disable backups.
      Enhance lvm_dump.sh for sysreport integration and add man page.
      Warn if certain duplicate config file entries are seen.
      Fix pvremove error path for case when PV is in use.
      Fix check for snapshot module when activating snapshot.
      pre-release
      Install lvmdump by default.
      post-release
      fix _find_config_node: null parameter is permitted
      Fix clvmd_init_rhel4 line truncation (2.02.14).
      .
      Update lvm2create_initrd to support gentoo.
      Improve lvm_dump.sh robustness.
      mention new env vars on man page
      Update dmsetup man page (setgeometry & message)
      pre-release
      post-release
      Fix mirror segment removal to use temporary error segment.
      Adjust some alignments for ia64 and sparc.
      Fix VG clustered read locks to use PR not CR.
      clvmd ia64 alignment fixes etc. (pjc)
      pre release
      post-release
      Fix detection of smallest area in _alloc_parallel_area() for cling policy.
      When lvconvert allocates a mirror log, respect parallel area constraints.
      Add missing pvremove error message when device doesn't exist.
      pre-release
      post-release
      Fix dmeventd mirror to cope if monitored device disappears.
      Fix some activate.c prototypes when compiled without devmapper.
      Add dmeventd_mirror register_mutex, tidy initialisation & add memlock.
      Lots of dmevent changes.
      fix last checkin
      Add dm_tree_use_no_flush_suspend().
      Add configure --with-dmdir to compile against a device-mapper source tree.
      Free memory in _raw_read_mda_header() error paths.
      Remove 3 redundant AC_MSG_RESULTs from configure.in.
      Avoid vgreduce error when mirror code removes the log LV.
      dumpconfig accepts a list of configuration variables to display.
      Prevent permission changes on active mirrors.
      Use CFLAGS when linking so mixed sparc builds can supply -m64.
      Use CFLAGS when linking so mixed sparc builds can supply -m64
      Remove dmeventd mirror status line word limit
      fail if status args are missing
      Lots of dmeventd-related changes.
      updated dmeventd interface
      pre-release
      post-release
      Reinstate dm_event_get_registered_device
      Report dmeventd mirror monitoring status.
      Report error if NULL pointer supplied to dm_strdup_aux().
      More libdevmapper-event interface changes and fixes.
      Some libdevmapper-event interface changes.
      static naming
      use DMEVENTD_PATH
      fail registration if timeout thread cannot be started
      fix recent checkins
      Fix partition table processing after sparc changes (introduced in 2.02.16).
      Fix a malloc error path in dmsetup message.
      reduce some if/else complexity
      Add basic reporting functions to libdevmapper.
      Move basic reporting functions into libdevmapper.
      dmeventd oom_adj + reduce thread stack size
      clean up global mutex usage and fix a race in thread finalisation code
      more little fixes
      more fixes
      use updated dm_event_get_registered_device interface
      stat oom_adj and stay silent if it doesn't exist
      merge  _target_*register_events
      Fix a segfault if an empty config file section encountered.
      pre-release
      post-release
      Some internal renaming.
      No longer necessary to specify alignment for report fields.
      fix last checkin
      Suppress 'Unrecognised field' error if report field is 'help'.
      Update reporting man pages.
      Add DM_LIB_VERSION definition to configure.h.
      Add cmdline debug & version options to dmeventd.
      fix exit status; always print message on child failure
      var dev_name->device_name (lvm2 has dev_name())
      register->monitor etc.
      Add dm_event_handler_[gs]et_timeout functions.
      Streamline dm_report_field_* interface.
      Add --clustered to man pages.
      Fix refresh_toolcontext() always to wipe persistent device filter cache.
      Long-lived processes write out persistent dev cache in refresh_toolcontext().
      add a dso-private variable to dmeventd interface
      Add private variable to dmeventd shared library interface.
      Add descriptions to reporting field definitions.
      fix earlier checkin
      Adjust report field help description layout.
      Add field definitions to report help text.
      Migrate dmsetup column-based output over to new libdevmapper report framework.
      fix earlier checkin
      lvm.static no longer interacts with dmeventd unless explicitly asked to.
      Add init script for dmeventd monitoring.
      Add some missing close() and fclose() return value checks.
      Add some missing close() and fclose() return code checks.
      don't remove libdm-common.h any more
      Add devices/ignore_suspended_devices to ignore suspended dm devices.
      also ignore mirrors
      dmeventd mirror sets ignore_suspended_devices and avoids scanning mirrors.
      pre-release
      post-release
      Fix md signature check to handle both endiannesses.
      Fix vgs to treat args as VGs even when PV fields are displayed.
      fix pvsegs report too
      Use fixed-size fields in report interface.
      reorder report field definitions
      Add dmsetup 'help' command and update usage text.
      add help -c for field list
      help unused attr
      help on help
      Add recent reporting options to dmsetup man page.
      pre-release
      post-release
      Fix vgsplit to handle mirrors.
      Add warning to lvm2_monitoring_init_rhel4 if attempting to stop monitoring.
      pre-release
      post-release
      Fix some &->&& vgreduce cmdline validation.  [Andre Noll]
      Improve dmeventd messaging protocol: drain pipe and tag messages.
      If a PV reappears after it was removed from its VG, make it an orphan.
      Fix loading of segment_libraries. [gentoo]
      Correct -b and -P on a couple of man pages.
      pre-release
      post-release
      Fix a few leaks in reporting error paths.
      Fix a leak in a reporting error path.
      Exclude readline support from lvm.static
      Move .cache file into a new /etc/lvm/cache directory by default.
      Fix two more segfaults if an empty config file section encountered.
      Remove no-longer-used uuid_out parameter from activation info functions.
      Fix vgrename active LV check to ignore differing vgids.
      pre-release
      post-release
      Support the /dev/mapper prefix on most command lines.
      Add a few missing pieces of vgname command line validation.
      Try to fix reading in of lvm1 striped LVs.
      Remove unnecessary memset() return value checks.  [Jim Meyering]
      pre-release
      post-release
      Update lists of attribute characters in man pages.
      Introduce _add_field() and _is_same_field() to libdm-report.c.
      Add devices/preferred_names config regex list for displayed device names.
      add preferred_names to man page.
      Deal with some more compiler warnings.  Hope this doesn't break anything...
      Fix segfault in 'dmsetup status' without --showkeys against crypt target. [nec]
      Avoid trailing separator in reports when there are hidden sort fields.
      Change some #include lines to search only standard system directories.
      configure.h isn't a system header
      Add regex functions to library.
      Move regex functions into libdevmapper.
      Standardise protective include file #defines.
      Add -Wformat-security and change one fprintf() to fputs().
      Fix get_config_uint64() to read a 64-bit value not a 32-bit one.
      pre-release
      post-release
      Add capability for tree-based fields to dmsetup reports.
      Fix default dmsetup report buffering and add --unbuffered.
      pre-release
      pre-release
      post-release
      Add --ignoremonitoring to disable all dmeventd interaction.
      Fix dmsetup -o devno string termination. (1.02.20)
      revert accidental change
      Fix dumpconfig to use log_print instead of stdout directly.
      Add vg_mda_count and pv_mda_count columns to reports.
      Call dev_iter_destroy() if _process_all_devs() is interrupted by sigint.
      Fix pv_mda_count to cope with missing PV.
      tidy
      Cope with find_seg_by_le() failure in check_lv_segments().
      pre-release
      post-release
      Fix configure libdevmapper.h check when --with-dmdir is used.
      pre-release
      post-release
      Split metadata-external.h out from metadata.h for the tools to use.
      Add ps3disk devices.
      Use NULL not 0.
      improve changelog
      Update to use autoconf 2.61, while still supporting 2.57.
      Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
      Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
      pre-release
      post-release
      Remove obsolete dmfs code from tree and update INSTALL.
      Clean up mirrorlog argument processing.
      Fix (C) !
      Clean up numerous compiler warnings that crept in recently.
      Fix lvconvert_mirrors detection of number of existing mirrors.
      Change lvconvert_mirrors to use mirror segtype not striped.
      Introduce VG_GLOBAL lock type for vgscan/pvscan to trigger clvmd -R.
      pre-release
      post-release
      Avoid error when --corelog is provided without --mirrorlog. (2.02.28)
      Fix strdup memory leak in str_list_dup().
      clarification
      Remove no-longer-correct restrictions on PV arg count with stripes/mirrors.
      Moved the obsolete test subdirectory to old-tests.
      Fix configure --with-dmeventd-path substitution.
      Handle new sysfs subsystem/block/devices directory structure.
      refactor dev-md.c, separating out the magic number detection
      Detect md superblocks version 1.0, 1.1 and 1.2.
      explanation of md superblock location & avoid compilation warnings
      Fix orphan-related locking in pvdisplay and pvs.
      Fix error message when fixing up PV size in lvm2 metadata (2.02.11).
      fix new lvremove checks - mustn't fail when activation is disabled
      Add LVM2 version to 'Generated by' comment in metadata.
      Show 'not usable' space when PV is too large for device in pvdisplay.
      adjust sizes for metadata
      fix inverted orphan test
      attempt to fix human-readable unit output when number of sectors is odd
      Add pv_mda_free and vg_mda_free fields to reports for raw text format.
      Prevent lvconvert -s from using same LV as origin and snapshot.
      Enhance the management of readahead settings.
      Define DM_READ_AHEAD_AUTO and DM_READ_AHEAD_NONE.
      Attempt to remove incomplete LVs with lvcreate zeroing/activation problems.
      Remove new mirror logs when creation fails.
      Add DM_READ_AHEAD_MINIMUM_FLAG
      readahead activation code (but no dm support yet)
      fix precedence
      Accept sizes with --readahead argument.
      Avoid nested vg_reads when processing PVs in VGs and fix associated locking.
      Convert some vg_reads into vg_lock_and_reads
      another vg_lock_and_read
      define LCK_NONE for cases when vg_lock_and_read already holds lock
      more vg_read lock fixes
      Fix --addtag to drop @ prefix from name
      move pvresize_single back under tools
      Decode cluster locking state in log message. (untested)
      note pvmove breakage
      FIXMEs for case where dm itself has device open
      Start refactoring pvmove allocation code.
      drop mirrored_pv/mirrored_pe from alloc handle
      add read_ahead functions to library and dmsetup --readahead
      refine specification of dmsetup readahead
      uncomment libdevmapper readahead calls
      read_ahead node ops
      readahead support completed - untested
      fix
      missing #include
      fix changed parms
      fixes
      fixme
      fix ioctls to use long not int
      read_ahead in report with underscore to match lvm2 field
      work out device name to use for read ahead request
      clarify when read_ahead may be set
      pre-release
      post-release
      Fix minimum readahead debug message.
      round readahead to multiple of page size in tools
      export can_split parameter until rest of pvmove allocation restructuring gets done
      pre-release
      clarify
      post-release
      Report error when empty device name passed to readahead functions.
      Add node operation stack debug messages.
      Fix deptree to pass new name to _resume_node after a rename.
      more readahead node fixes/debug messages
      Append fields to report/pvsegs_cols_verbose.
      Build changes to replace fsadm C program with shell script.
      replace fsadm.c with fsadm.sh
      tweak usage text
      pre-release
      post-release
      Major restructuring of pvmove and lvconvert layer manipulation code
      avoid some compiler warnings
      stacked mirror support (incomplete)
      various cleanups in recent patches
      more fixes
      auto-collapse layers
      a few more changes/fixes to recent code
      lvconvert uses polldaemon now
      typo
      Fix vgreduce PV list processing not to process every PV in the VG.
      Various lvconvert/polldaemon-related fixes from NEC.  See lvm-devel
      Add lv_convert field to default lvs output.
      correct field name
      convert_lv
      lvconvert waits for initial completion by default
      Don't use block_on_error with mirror targets above version 1.12.
      reword
      revert temp change
      use scan_vgs_for_pvs to detect non-orphans without MDAs
      Maintain lists of stacked LV segments using each LV.
      reorder funcs
      move removable_pvs checking
      export find_temporary_mirror()
      fix mirror log manipulation during lv convert
      allow a mirror to contain only one mimage
      cope with stacked LVs as well as PVs when deciding which bits of mirrors to remove
      fix to earlier checkin
      adjust mirror log error message
      additional safety check on new segment list
      fix a _get_vgs return
      another lvconvert fix
      lvconvert/vgreduce fixes
      mirror log stuff
      rename lv_remap_error
      pre-release
      fix default extent_size
      fix default stripesize
      pre-release review cleanups
      Fix lvcreate -M1 readahead.
      add lvconvert messages
      Fix lvcreate --nosync not to wait for non-happening sync.
      Pre-release
      post-release
      clarify
      Use log_warn for reporting field help text instead of log_print.
      Fix pvs, vgs, lvs error exit status on some error paths.
      update
      suppress compiler warning
      Fix internal metadata corruption in lvchange --resync.
      Refactor mirror log attachment code.
      .
      Fix two check_lv_segments error messages to show whole segment.
      pre-release
      post-release
      Rely upon internally-cached PV labels while corresponding VG lock is held.
      Use stack return macros throughout.
      Some whitespace tidy-ups.
      undo a few 'stack' moves
      only read labels once between each lock event
      Fix mirror log name construction during lvconvert. (2.02.30)
      a couple more compiler warnings
      pre-release
      post-release
      split orphan VG by format type
      Fix 'pvs -a' to detect VGs of PVs without metadata areas.
      Avoid automatic lvconvert polldaemon invocation when -R specified.
      Fix lvconvert detection of mirror conversion in progress.
      Add missing no-longer-used segs_using_this_lv test to check_lv_segments.
      Fix remove_layer_from_lv to empty the LV before removing it. (2.02.30)
      Fix resetting of MIRROR_IMAGE and VISIBLE_LV after removal of LV.
      add vd to filters
      Use return_0 in a couple more places.
      Escape double quotes and backslashes in external metadata and config data.
      Refactor text format initialisation into _init_text_import.
      preparation for vg cache
      Correct command name in lvmdiskscan man page.
      Cache VG metadata internally while VG lock is held.
      Add per-command flags to control which commands use the VG metadata cache.
      enable vg metadata cache by default
      fix vd->virtblk
      .
      .
      Add some basic internal VG lock validation.
      create fids for internal orphan VGs
      Fix vgreduce to use vg_split_mdas to check sufficient mdas remain.
      Indicate whether or not VG is clustered in vgcreate log message.
      Fix some pvmove error status codes.
      Use clustered mirror log with pvmove in clustered VGs, if available.
      Fix vgdisplay 'Cur LV' field to match lvdisplay output.
      pre-release
      post-release
      pre-release
      .
      make list_move consistent with other list fns
      fix 3rd copy
      more pre-release cleanup
      .
      post-release
      Don't store fid in VG metadata cache to avoid clvmd segfault. (2.02.34)
      Don't attempt remote metadata backups of non-clustered VGs. (2.02.29)
      rename P_global to P_#global
      pre-release
      missing stack
      post-release
      Fix lvconvert -m0 allocatable space check.
      Calculate string size within dm_pool_grow_object.
      Add field name prefix option to reporting functions.
      Add --prefixes to reporting tools for field name prefix output format.
      Add --prefixes to dmsetup
      Add 3 new reporting colums: tables_loaded, readonly, suspended.
      Use 'active' for !suspended as the code already uses that.
      Fix metadata corruption writing lvm1-formatted metadata with snapshots.
      Check lv_count in vg_validate.
      Exclude VG_GLOBAL from internal concurrent VG lock counter.
      pre-release (bug fixes only - enhancements excluded)
      post-release - reinstate incomplete enhancements
      Don't touch /dev in vgrename if activation is disabled.
      remove unused lvmcache_drop_vg prototype
      Drop metadata cache before writing precommitted metadata instead of after.
      When asked to drop cached committed VG metadata, invalidate cached PV labels.
      Avoid unnecessary unlock attempts with LCK_CACHE pseudo-locks.
      Add missing mutex around clvmd lvmcache_drop_metadata library call.
      More P_ and V_ lock cleanup.
      more cleanup
      Refactor some vginfo manipulation code.
      revert accidental checkin
      Temporarily disable dmeventd mirror monitoring during lvchange --resync.
      Skip add_dev_node when ioctls disabled.
      Avoid spurious duplicate VG messages referring to VGs that are gone.
      fix setpriority int error
      In script-processing mode, stop if any command fails.
      suppress warning on silent failure with ECMD_PROCESSED
      Correct config file line numbers in messages when parsing comments. (kabi)
      Drop metadata cache if update fails in vg_revert or vg_commit.
      When removing LV symlinks, skip any where the VG name is not determined.
      When activating, if precommitted metadata is still cached, assume it's live.
      Add missing deactivation after activation failure in lvcreate -Zy.
      Decode numbers in clvmd debugging output.
      Initialise params buffer to empty string in _emit_segment.
      Allow for vginfo changing during _vg_read.
      cope with volatile vginfo in vg_read
      fix _free_vginfo not to remove a ref to a *different* vginfo from the vgid cache
      Drop cached metadata when renaming a VG.
      cache dropping needs to use old name not new
      cleaner LCK_LV decoding
      pre-release
      back out unnecessary changes for this release
      change --prefixes to --nameprefixes
      nameprefixes
      switch to single quotes rather than double for nameprefixes
      pre-release
      post-release
      Drop cached metadata for disappearing VG in vgmerge.
      Bring configure.in into line with the lvm2 version.
      rename some config vars
      .
      Revert assuming precommitted metadata is live when activating (unnecessary).
      Tweak detection of invalid fid after changes to PVs in VG in _vg_read.
      bring list.h into line with lvm2
      Fix segfault after _free_vginfo by remembering to remove vginfo from list.
      Fix inverted no_flush debug message. (mpatocka)
      Fix tracking of validity of PVs with no mdas in lvmcache.
      pre-release
      post-release
      Add --force to lvextend and lvresize.
      dmsetup --unquoted
      Add --unquoted to reporting tools.
      Add --rows to reports.
      Add --rows to dmsetup.
      Cope with missing field values.
      Align struct memblock in dbg_malloc for sparc.
      pre-commit
      post-release
      Fix reporting of LV fields alongside unallocated PV segments.
      Underline longer report help text headings.
      Fix lvconvert to disallow snapshot and mirror combinations. (mpatocka)
      Update validation of safe mirror log type conversions in lvconvert. (brassow)
      Fix up cache for PVs without mdas after consistent VG metadata is processed.
      tweak lcov configuration/makefiles
      Enable readline by default if available.
      pre-release
      post-release
      .
      Cease recognising snapshot-in-use percentages returned by early development kernels.
      Fix pvchange -M1 -u to preserve existing extent locations when there's a VG.
      reinstate lost FIXME
      .
      Refactor _text_pv_read and always return mda list if requested.
      Fix pvchange to handle PVs without mdas.
      fix pvremove for pvs without mdas
      remove unused mdas variable
      Change lvchange exit status to indicate if any part of the operation failed.
      Avoid looping forever in _pv_analyze_mda_raw used by pvck.
      Change clustered mirror kernel module name from cmirror to dm-log-clustered.
      remove now-redundant slash-stripping
      Improve file descriptor leak detection to display likely culprit and filename.
      Extend deptree buffers so the largest possible device numbers fit.
      revert unnecessary 'stack's
      Avoid repeatedly wiping cache while VG_GLOBAL is held in vgscan & pvscan.
      Only resume devices in dm_tree_preload_children if size changes.
      Prevent resizing an LV while lvconvert is using it.
      Add missing LV error target activation in _remove_mirror_images.
      Avoid shuffling remaining mirror images when removing one, retaining primary.
      post-release
      Fix last checkin - tested wrong dnode.
      fix last patch return code
      Store sysfs location in struct cmd_context.
      remove unused var
      Pass struct physical_volume to pe_align.
      remove unsed var
      adjust pe_align for md chunk size
      Add device/md_chunk_alignment to lvm.conf
      Improve the way VGs with PVs missing are handled so manual intervention
      .
      pre-release
      revert unexplained removal of a '<backtrace>' message
      rename var
      .
      fix last release
      suppress warning if old value found for now
      .
      Free text metadata buffer after a failure writing it.
      device->devices
      Fix conversion of md chunk size into sectors.
      Add usrsbindir to configure.
      Add usrlibdir & usrsbindir to configure.
      Generate man pages from templates and include version.  (romster)
      .
      Avoid overwriting in-use on-disk text metadata by forgetting MDA_HEADER_SIZE. (Edward Allcutt)
      In resume_mirror_images replace activate_lv with resume_lv as workaround.
      Use temp table to set device size when converting mirrors.
      pre-release
      post-release
      Fix temp table activation in mirror conversions not to happen in other cmds.
      Accept locking fallback_to_* options in the global section as documented.
      pre-release
      post-release
      Use lvm-types.h
      Add libdm subdir to begin merging the device-mapper tree.
      Split out dm-logging.h from log.h
      Split out lvm-logging.h from log.h.
      Separate out globals from the logging code.
      separate lvm-globals
      drop explicit libdevmapper.h
      Add dm-logging.h ready for libdevmapper.
      remove ancient debian dir
      libdevmapper version - will change once the merger's settled in
      first attempt at merging configure
      autoreconf
      drop configure --with-dmdir
      dmeventd plugins move
      dm+lvm2 macros
      no DMDIR
      autoreconf
      add libdevmapper-event.h
      export DM_LIB_VERSION
      further progress
      autoreconf
      Use simple x.y.z library version in libdevmapper.pc
      autoreconf
      Rename a couple of variables that matched function names.
      more tweaking to get things to compile - dmlib.h for log fns, list.h
      add list fns
      Right, a simple build (without options) is working again.
      more tweaks for dmeventd - not finished yet
      more missing bits
      more fixes
      dmeventd
      clvmd
      make install_device-mapper
      quick review of docs
      First test release of the merged code base.
      no need for libdevmapper.h on system any more
      clarify
      some makefile fixes for liblvm2cmd & remove some hardcoded .so
      post-release (retrospective)
      Generate clvmd init script at configuration time for Red Hat-based distros.
      regenerate
      generate init script
      Add tinfo to termcap search path for pld-linux.
      Don't skip updating pvid hash when lvmcache_info struct got swapped.
      Suppress 'duplicate PV' message when it's only a cache update not a real
      Fix uninitialised lv_count in vgdisplay -c
      Use dm_snprintf to avoid duplicating the snprintf compatibility code.
      lvm2cmdline.h:31: warning: declaration of `is_static' shadows a global declaration
      Display a 'dev_size' of zero for missing devices in reports.
      Add an "all" field which expands to all fields of the report type.
      Add <report_type>_all to help text.
      More fields can cause segfaults with orphans.
      ...and a few more uninitialised dummy fields.
      pre-release
      Add stuff people missed.
      and another one missing
      post-release
      Rename vg_read() to vg_read_internal(). (mornfall)
      Introduce as-yet-unused _vg_lock_and_read() and associated header file
      Properly enforce cluster locking in as-yet-unused _vg_lock_and_read. (mornfall)
      Replace internal vg_check_status() implementation.  (mornfall)
      Introduce as-yet-unused replacement vg_read() and vg_read_for_update()
      Add as-yet-unused vg_read_error() and vg_might_exist().  (mornfall)
      If kernel supports only one dm major number, use in place of any supplied.
      Index cached vgmetadata by vgid not vgname to cope with duplicate vgnames.  (dwyso)
      Mention the restriction on file descriptors at invocation on the lvm man page.
      Provide da and mda locations in debug message when writing text format label.
      Fix interrupt unblocking after vgcreate, for example: drop_cached_metadata()
      Add --dataalignment to pvcreate to specify alignment of data area.  (mbroz)
      Add system_dir parameter to create_toolcontext() and call it system_dir
      Move tools/version.h to lib/misc/lvm-version.h.
      Use pkgconfig to obtain corosync library details during configuration. (kabi)
      autoreconf  (using fedora 10 for this now)
      fsadm cleanups & release prep
      .
      Attempt cleanup in child before execing new binary in exec_cmd()
      .
      Fix last check-ins: seg can be NULL.
      pre-release
      post-release
      Add missing 'device-mapper' internal subdir build dependency.
      fix typo reported by "A. Costa" <agcosta at gis.net>
      Fix linux configure --enable-debug to exclude -O2.
      Add sparse devices: lvcreate -s --virtualoriginsize (hidden zero origin).
      better variable name for snapshot counting
      Revert:
      Missing entries.
      Pre-release cleanups.
      Reinstate version in liblvm2cmd.so soname. (2.02.44)
      Rename liblvm.so to liblvm2app.so and use configure --enable-applib.
      post-release
      Attempt to load dm-zero module if zero target needed but not present. (mbroz)
      0->NULL (mbroz)
      Fix counting of virtual origin LVs in vg_validate. (mbroz)
      Skip virtual origins in process_each_lv_in_vg(). (mbroz)
      Make --snapshot optional with lvcreate --virtualsize.
      Suppress 'removed' messages displayed when internal LVs are removed.
      Rename internal vorigin LV to match visible LV.
      Remove /dev/vgname/lvname symlink automatically if LV is no longer visible.
      When creating new LV, double-check that name is not already in use.
      Handle multi-extent mirror log allocation when smallest PV has only 1 extent.
      Remove verbose 'visited' messages.
      Make mempool optional in dm_split_lvm_name()
      Add subsystem, vg_name, lv_name, lv_layer fields to dmsetup reports.
      Add splitname.
      test commit
      test commit
      test commit
      Abort operation if automatic metadata correction in lvconvert fails.
      Abort if automatic metadata correction fails when reading VG to update it.
      revert last patch - let's do a release first
      pre-release
      pre-release tidy up
      update date
      post-release
      clarification
      Add device number to more log messages during activation.
      Fix whitespace in linear target line to fix identical table line detection.
      .
      Permit several segment types to be registered by a single shared object.
      Add dm_log_with_errno and dm_log_with_errno_init, deprecating the old
      Fix dev name mismatch in vgcreate man page example.
      Make cmd->cmd_line const.
      Exclude VG_GLOBAL from vg_write_lock_held so scans open devs read-only again. (mbroz)
      pre-release
      New LOG_MESG macro to fix file/line number logging for memory leaks after
      pre-release clarification
      pre-release
      post-release
      Revert broken commit:
      Use log_error macro consistently throughout in place of log_err.
      Store any errno and error messages issued while processing each command.
      Add lvm_errno and lvm_errmsg to liblvm to obtain failure information.
      Add log_errno to set a specific errno and replace log_error in due course.
      Fix so only log_error and log_fatal set EUNCLASSIFIED.
      Return EINVALID_CMD_LINE not success when invalid VG name format is used.
      Add an API version number, LVM_LIBAPI, to the VERSION string.
      Use newly-independent LVM_LIBAPI in liblvm soname.  E.g. liblvm2app.so.2.1.
      fix dir in generated file list for cflow
      Add liblvm2app Makefile installation targets.
      check in the correct pkgconfig file
      All LV locks are non-blocking so remove LCK_NONBLOCK from separate macros.
      remove no-longer-needed NONBLOCK
      Add global/wait_for_locks to lvm.conf so blocking on locks can be disabled.
      pre-release
      pre-release
      clean up a bit for release
      

      post-release
      Remove pv_t, vg_t & lv_t handles from lib.  Only liblvm uses them.
      renamed include files
      Fix lvm2app.pc installation filename.
      Fix configure script to handle multiple clvmd selections.
      corosync not cman...
      Prepare for udev synchronisation code.  (options don't work yet)
      add not-yet-working udev options
      configure --udevdir
      Add libdevmapper functions to support synchronisation with udev.
      another fixme
      Add udevcomplete and --noudevwait to dmsetup.
      Set cookies in activation code and wait for udev to complete processing.
      dummy makefile for now to keep builds happy
      lvchange --noudevsync
      deal with error-related FIXMEs
      cleanup some ignored return values & 'stack's
      Manage without dm_udev_cleanup?
      Only create LV symlinks on ACTIVATE not PRELOAD.
      Add warnings to check udev did what it was meant to.
      Add udev checks.
      Add default udev rules.
      Add activation/udev_sync to lvm.conf.
      detect udev mk_link problems
      Additional logging
      pre-release
      pre-release
      post-release
      Rewrite clvmd configuration code.
      change clogd to cmirrord
      rename clogd dir to cmirrord
      clogd->cmirrord
      Add lots of missing stack debug messages to tools.
      More cmirror makefile fixes from Fabio.
      pre-release
      dm release cleanup
      missing (C) reminders
      pre-release cleanup
      post-release
      Remove test/api which should only be under 'make test'.
      Update lvm2_monitoring script.
      drop -ing suffix
      Enable dmeventd monitoring section of config file by default.
      Fix dmeventd _temporary_log_fn parameters. (2.02.50)
      Handle any path supplied to dm_task_set_name() by looking up in /dev/mapper.
      remove unused var & rename fn
      ensure dm_strdup succeeds
      pre-release
      pre-release
      missing dm_snprintf
      Fix log fn prototype.
      post-release
      Add global/si_unit_consistency to enable cleaned-up use of units in output.
      Treat input units of both 's' and 'S' as 512-byte sectors.  (2.02.49)
      Consolidate LV allocation into alloc_lv().
      Provide alternative implementation of obsolete siginterrupt().
      Don't attempt to deactivate an LV if any of its snapshots are in use.
      Generalise polldaemon code by changing mirror-specific variable names.
      Don't attempt to restart pvmoves when deactivating LVs in vgchange.
      look up pvmove by pvmove LV when PVMOVE flag is set
      Distinguish between powers of 1000 and powers of 1024 in unit suffixes.
      Factor out poll_mirror_progress and introduce progress_t.
      Make poll_mirror_progress a function that can be replaced.
      Introduce percent_range_t and centralise snapshot full/mirror in-sync checks.
      Add percent_range to copy_percent too.
      Allow for a build directory separate from the source.
      Only include selinux libs in libdevmapper.pc when selinux build enabled.
      Correct example.conf to indicate that lvm2 not lvm1 is the default format.
      More makefile cleaning up and fixing.  (gentoo)
      linking parms missing from o->so conversion.
      Extra libs must be appended, not defined first.
      More build cleanups (linker parameter ordering).
      Attempt to build dmeventd.static.
      .
      Remember to clear 'global lock held during cache refresh' state after use.
      Fix clvmd segfault when refresh_toolcontext fails.   (brassow, bz 506986)
      Cleanup mimagetmp LV if allocation fails for new lvconvert mimage.
      Permit snapshots of mirrors.  (brassow)
      pre-release
      add copyright lines
      .
      post-release
      Insert some missing stack macros into activation code.
      Fix hash lookup segfault when keys compared are different lengths.
      Tidy some uses of arg_count and introduce arg_is_set.
      Add support for querying a device's inactive table.
      .
      pre-release
      .
      post-release
      pre-release
      .
      Post-release.
      Log failure type and recognise type 'F' (flush) in dmeventd mirror plugin.
      Internal errors triggering abort cannot be suppressed. (kabi)
      Use _LOG_FATAL when aborting on an internal error.
      Add missing items to WHATS_NEW files.
      .
      Revert so-called "redundant" log until after next release.
      disable 'redundant' tests
      pre-release
      post-release
      Fix allocation code not to stop at the first area of a PV that fits.
      pre-release
      Note some problems still to be addressed.
      post-release
      Misc compilation clean-ups.
      Clean up include files.
      more build fixes
      And more fixes for cmirror build.
      Signal handling FIXMEs.
      remove no-longer-used files
      remove no-longer-used header
      remove more compiler warnings
      Remove mknod() and add FIXMEs.
      Deal with a few more compiler warnings.
      Add libdevmapper-event-lvm2.so to serialise dmeventd plugin liblvm2cmd use.
      pre-release
      fix lib include
      missing header
      post-release
      pre-release
      Fix dmeventd snapshot plugin build dependency.
      Remove pointless versioned symlinks to dmeventd plugin libraries.
      pre-release
      post-release
      use lvm2app to refer to library now
      Extend core allocation code in preparation for mirrored log areas.
      Misc cleanups in the new mlock code, incl. improving some variable names
      .
      some missing debug messages
      pre-release
      pre-release cleanups
      post-release
      Introduce is_missing_pv().
      Look up missing PVs by uuid not dev_name in _pvs_single to avoid invalid stat.
      replace existing_pv with existing_pvl
      Remove unnecessary full_scan parameter from get_vgids and get_vgnames calls.
      Only do one full device scan during each read of text format metadata.
      fix last checkin
      Suppress repeated errors about the same missing PV uuids.
      autoreconf & add missing WHATS_NEW entry
      Fix libdevmapper-event pkgconfig version string to match libdevmapper.
      Avoid duplicate definitions.
      Allow dynamic extension of array of areas selected as allocation candidates.
      Introduce pv_area_used into allocation algorithm and add debug messages.
      improve a few comments in last check-in
      add debug output and attempt to control which device gets log as intended perhaps
      add debug mesgs and attempt to control which device is used for log as perhaps intended
      .
      add debug mesg
      more diagnostics
      more diagnostics
      Add some assertions to allocation code.
      Use INTERNAL_ERROR definition consistently in internal error messages.
      .
      Allow ALLOC_ANYWHERE to split contiguous areas.
      Fix --alloc contiguous policy only to allocate one set of parallel areas.
      Attempt to fix non-ALLOC_ANYWHERE allocation code after recent changes broke
      remove unused var
      Change most remaining log_error WARNING messages to log_warn.
      Improve vg_validate to detect some loops in lists.
      Improve vg_validate to detect some loops in lists.
      Limit number of error messages when checking LV segments.
      initialise log_allocated to 0
      Avoid endless loop if lv->segments list is corrupted
      Try to fix tracking of whether or not log extents need allocating.
      temporarily downgrade the 'open while suspended' error till we fix it properly
      A few more log_error to log_warn changes for mirrors.
      remove compiler warning
      Display PVs created during tests
      Disable broken test.
      Fix is_partitioned_dev not to attempt to reopen device.
      disable another broken check in a test
      Fix incorrect removal of symlinks after LV deactivation fails.
      Issue a message if the new type of deactivation failure happens.
      Only fail if the top-level LV fails to be deactivated - allow deactivation
      Fix pvmove allocation to take existing parallel stripes into account.
      suppress bogus compiler warning
      missing ?:
      another incorrect test that should have been failing before
      And another test that should have been failing - normal allocation policy
      Permit mimage LVs to be striped in lvcreate and lvresize.
      Don't ignore error if resuming any LV fails in resume_lvs.
      Add activation/polling_interval to lvm.conf as --interval default.
      Add --stripes to lvconvert too.
      Use typedefs for toollib process_each functions.
      Only pass visible LVs to tools in cmdline VG name/tag expansions without -a
      pre-release
      .
      pre-release
      pre-release
      fix broken 'make install' for lvm_dump.sh
      touch file
      post-release
      Change daemon lock filename from lvm2_monitor to lvm2-monitor for consistency.
      Speed up dm_bit_get_next with ffs().
      Simplify dm_bitset_create. (ejt)
      fix last commit
      Add dm_bit_and. (ejt)
      missed files from last commit
      Move function up file
      typo in comment
      Add dm_bitset_equal to libdevmapper.
      Add a regex optimisation pass for shared character prefixes.
      add -r to print out closer to original regex format
      Still not satisfactory...
      isprint
      fix leftmost rotation
      Fix rightmost rotation, and use LEFT and RIGHT to make symmetry more obvious.
      Don't walk rightmost through NULL pointers.
      Move regex printing code from test to main tree (may use in debug messages).
      avoid ORs rightmost
      Cache bitset locations to speed up _calc_states. (kabi)
      don't optimise anything with TARGET_TRANS to avoid intefering with the matcher's counting
      add comments
      Fix lvconvert error message when existing mirrored LV is not found.
      Mention how to get PV to LV mappings.
      Remove no-longer-used arg_ptr_value.
      .
      .
      change awk path
      pre-release
      typo
      post-release
      Fix truncated total size displayed by pvscan.
      Fix static build.
      Use -d to control level of messages sent to syslog by dmeventd.
      pre-release
      post-release
      Use is_orphan_vg in place of hard-coded prefix tests.
      Accept orphan VG names as parameters to lock_vol() and related functions.
      Note that orphan lock is always obtained last
      Validate orphan and VG_GLOBAL lock order too.
      Add is_global_vg and split out from is_orphan_vg.
      Install lvmconf script by default.
      Generate example.conf so default lvm.conf contents can be configured.
      Add install_system_dirs makefile target.
      Add make install_initscripts
      If unable to obtain snapshot percentage leave value blank on reports.
      pre-release
      backup->cache
      Fix $(INSTALL_SCRIPT)
      post-release
      Update clustered log kernel module name to log-userspace.
      Choose between clustered log versions based on kernel version.
      Avoid selecting names under /dev/block if there is an alternative.
      Replace strncmp kernel version number checks with proper ones
      Don't merge unchanged persistent cache file before dumping if tool scanned.
      pre-release
      post-release
      Various cleanups following recent commits.
      Add lv_path to reports to offer full /dev pathname.
      In some C++ standards, typeof is not reserved.
      pre-release
      post-release
      Update liblvm2app exported symbols.
      actually, let's keep these in same order as in header
      Generate liblvm2app and libdevmapper exported symbols from header files.
      generate liblvm2cmd exported symbols too
      Improve various log messages.
      pre-release
      Only attempt to guarantee 1 mda ignored if there's at least one mda in the vg.
      post-release
      suppress useless compiler warning
      revert that
      Update partial mode warning message.
      more metadataignore message/code cleanup
      more mda ignore cleanups
      improve vgmetadatacopies unmanaged message
      Fix --[vg]metadatacopies arg processing
      Move dmeventd man page from install_lvm2 to install_device-mapper. (1.02.50)
      Fix lvm shell crash when input is entirely whitespace.  (Xinwei Hu)
      Always pass unsuspended dm devices through persistent filter to other filters.
      remove unneeded header
      Add printf format attributes to yes_no_prompt & dm_{sn,as}printf and fix a calle
      Add parentheses to some libdevmapper.h macro arguments.
      Randomly select which mdas to use or ignore.
      Fix dmlosetup snprintf %llu compiler warning.
      pre-release
      fix jumbled args in 'Adjusting' message
      shorten mesg
      s/flags/mda/
      fix code in 2nd mda unignore loop to match 1st loop
      .
      post-release
      Adjust auto-metadata repair and caching logic to try to cope with empty mdas.
      Remove superfluous fn prototypes.
      Fix redundant declarations and always compile with -Wredundant-decls.
      Use __attribute__ consistently throughout.
      update configure
      Fix dm_create_lockfile error paths - incorrectly unlinked in-use lockfile.
      .
      pre-release
      .
      day+1
      add copyright notices to new files
      Change clvmd to communicate with lvm via a socket in /var/run/lvm.   (mbroz)
      Never use clvmd singlenode unless explicitly requested with -Isinglenode.
      post-release
      Fix configure to supply DEFAULT_RUN_DIR to Makefiles.
      Drop explicit 'Base' version from exported symbols.
      Make liblvm.device-mapper wait for include file generation.
      Use #include <> not "" in lvm2app.h which gets installed on the system.
      Fix exported_symbols generation to use standard compiler arguments.
      revert the 'Base' change - that wasn't the cause of the problem
      Fix lib.device-mapper to wait for include too
      set DEFAULT_RUN_DIR (missed from earlier checkin?)
      Remove superfluous NULL pointer tests before dm_free from dmeventd.
      Various small cleanups and fixes related to monitoring.
      Don't really change monitoring status when in test mode.
      Monitor origin -real device below snapshot instead of overlay device. (brassow)
      Fix dev_manager_transient to access -real device not snapshot-origin. (brassow)
      Allow internal suspend and resume of origin without its snapshots.
      Use 'SINGLENODE' instead of 'dead' in clvmd singlenode messages.
      Attempt to fix buildbot failure in t-lvconvert-mirror.sh due to failing to
      pre-release
      post-release
      autoreconf also updates configure.h.in
      .
      Track recursive filter iteration to avoid refreshing while in use. (2.02.56)
      Fix name in msg in last checkin.
      Replace alloca with dm_malloc in _aligned_io.
      pre-release
      Speed up CRC32 calculations by using a larger lookup table.
      was renamed
      drop an unnecessary 'stack'
      Speed up unquoting of quoted double quotes and backslashes.
      Add dm_zalloc and use it and dm_pool_zalloc throughout.
      Allow CC to be overridden at build time (for 'scan-build make').
      Add --setuuid to dmsetup rename.
      restrict last checkin to devs consisting entirely of error target
      Don't take write lock in vgchange --refresh, --poll or --monitor.
      Add global/metadata_read_only to use unrepaired metadata in read-only cmds.
      Use a more-generic name for the new kernel flag so list_devices can share it.
      fix header #defines
      pre-release
      post-release
      Update VG metadata only once in vgchange when making multiple changes.
      Fix regex optimiser not to ignore RHS of OR nodes in _find_leftmost_common.
      lost line
      pre-release
      post-release
      forgotten to regenerate last time configure.in was updated
      Regenerate configure with 'autoreconf' for --enable-ocf. (2.02.76)
      Extend cling allocation policy to recognise PV tags (cling_by_tags).
      Support repetition of --addtag and --deltag arguments.
      Remove tag length restriction and allow / = ! : # & characters.
      Fix _output_field crash from field_id free with DEBUG_MEM. (Phillip Susi)
      pre-release
      post-release
      Fix default /etc/lvm permissions to be 0755. (2.02.66)
      Suppress 'No PV label' message when removing several PVs without mdas.
      Fix memory leak when VG allocation policy in metadata is invalid.
      Fix debug logging of derived flag LCK_CACHE in clvmd.
      pre-release
      post-release
      Cope better with an undefined target_percent operation in _percent_run.
      Rename vg_release to free_vg.
      .
      .
      Fix scanning of VGs without in-PV mdas.
      Fix device.c #include to ensure 64-bit fopen64 use. (2.02.51)  (robbat2)
      pre-release
      Copyright notices for new files.
      post-release
      Using Fedora 14's autoreconf.
      Add aclocal.m4 (for pkgconfig).
      pre-release
      post-release
      reissue 2.02.80
      post-release
      add fio
      Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80)
      pre-release
      post-release
      remove unused definitions
      Add change_tag to toollib.
      Fix lvchange --test to exit cleanly.
      Bring lvscan man page up-to-date.
      pre-release
      post-release
      Use O_DIRECT when reading block devices.
      Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested.
      a few more comments
      Warn if secure data flag requested but not supported by kernel.
      pre-release
      pre-release
      post-release
      pre-release
      post-release
      Handle decimal digits with --units instead of ignoring them silently.
      Various changes to the allocation algorithms: Expect some fallout.
      Fix check for log-only allocation in new alloc normal loop.
      Improve pvremove error message when PV belongs to a VG.
      mention vgreduce in pvremove man page
      Fix _create_and_load_v4 not to lose the --addnodeoncreate setting (1.02.62).
      Fix dm_udev_wait calls in dmsetup to occur before readahead display not after.
      Accept multiple mapped device names on many dmsetup command lines.
      Use empty string instead of /dev// for LV path when there's no VG.
      Avoid possible endless loop in _free_vginfo when 4 or more VGs have same name.
      Fix last checkin - added error message text wrong.
      Use hard-coded /dev/mapper/control details for 2.6.36+ kernels and simplify
      Rename _check_version
      Adjust pvmove man page wording.
      Add missing pkg_config_init check with --enable-udev_sync.
      Set pv_min_size to 2048KB to exclude floppy drives.
      clean up critical section patch
      pre-release clean-ups
      pre-release
      commands/toolcontext.c:578: warning: ‘udev_dir’ may be used uninitialized in this function
      wake buildbot
      post-release
      test
      test
      test
      test
      test
      test
      test
      test
      test
      test
      test update without WHATS_NEW to check it gives warning now
      Add and use dev_open_readonly and variations.
      test
      test
      test
      test
      test
      test
      test
      test
      test
      test
      test
      Report sector containing label in verbose message.
      Permit --available with lvcreate so non-snapshot LVs need not be activated.
      Report sector containing label in verbose message.
      Defer writing PV labels to vg_write.
      Propagate test mode to clvmd to skip activation and changes to held locks.
      missing space in mesg
      Major pvmove fix to issue ioctls in the correct order when multiple LVs
      Fix --mirrorlog mirrored.
      Disable critical section internal errors until this can be fixed properly
      Fix 'pvs -o pv_all' to include label fields.  (Also removed recursion.)
      Maintain a count of the number of suspended devices in libdevmapper
      Fix fields in warning message.
      Fix last snapshot removal to avoid table reload while a device is suspended.
      Return immediately dm_lib_exit() if called more than once.
      remove unused var after recent patch
      Move udev_only logic inside stacked node op code.
      Extend debug log messages to distinguish between the 3 states:
      Move _set_lvm_fallback into toolcontext, fix string comparison (/devtest
      Selectively enable/disable udev rules.
      Remove enforcement of udev verification when using non-standard /dev location.
      Change to still sync with udev (to test waiting for rules) then to verify udev
      more fixes to readahead etc.
      More readahead tests.
      Temporary conversion to internal error and failure, to see how many
      Remove temporary failures now, but continue to give INTERNAL_ERROR.
      use dmsetup remove -f as a better way of simulating a device "disappearing"
      Add uuids to dmsetup create cmds.
      Append 'm' attribute to pv_attr for missing PVs.
      debug log readonly flag with ioctls
      Reinstate correct permissions when creating mirrors.
      remove any stray semaphores after tearing down devs
      print any loop devs that weren't torn down
      teardown aborts if it hits an error, so better teardown semaphores earlier
      make udev teardown conditional on using udev
      Add age filter to dmsetup udevcomplete_all to minimise concurrency problems.
      test attempt to remove stray loop devs
      Try to remove any stray loop devices left behind by earlier aborted tests.
      teardown stray filesystems too
      use remove -f
      When suspending, automatically preload newly-visible existing LVs
      update pv_attr check for new missing attr
      Add framework for validation of ioctls.  Doesn't do any checks yet.
      Report internal error if suspending a device using an already-suspended dev.
      reinstate accidentally-removed lines to fix pvmove again
      first attempt to fix test
      Fix conditions using no_merging: only those using lv_is_merging_cow() should
      Snapshots LVs are never loaded in their own right, only along with their
      decode cookie flags in debug msgs
      Always perform preload logic before suspending - not only in the case when we
      Abort operation if dm_tree_node_add_target_area fails.
      Cope with a PV only discovered missing when creating deptree.
      report which dev was not found
      Move snapshot deactivation logic into lib/activate, fixing the
      Move snapshot removal activation logic into lib/activate.
      Log cookie values when incrementing/decrementing to give clues about races.
      Need to snapshot lookup by uuid instead of name in case it's renamed.
      Ignore activation/verify_udev_operations if dm kernel driver vsn < 4.18.
      Remove dev name prefix from dmsetup line output if exactly one dev requested.
      missing ifdef when new fn unused
      move doc to doc dir
      Downgrade error message - it isn't strictly an internal error in the
      pre-release
      remove unnecessary lvconvert.h
      post-release
      Fix read-only identical table reload supression.
      Remove support for the original dm ioctl interface version 1.
      autoreconf
      pre-release fixes incl make distclean and configure --with-raid=none/shared
      pre-release
      Drop CCS* variables no longer used.
      more pre-release fixes
      post-release
      core removed with clean not distclean
      makefile fixes
      Add -V as short form of --virtualsize in lvcreate.
      _ for static fns
      restrict dm_tree_node_add_null_area
      pre-release
      avoid multi-line calc with incorrect intermediate var contents
      revert incomplete inconsistent log message change for now
      spaces->tabs
      tweak split/track/merge
      clarify comment
      post-release
      Remove incorrect error message added in 2.02.87.
      .
      Fix raid shared lib segtype registration (2.02.87).
      thin - hide unimplemented dso fn; remove duplicate origin_lv field; add
      seg_is_thin includes both thin_pool and thin_volume
      same for segtype_is_thin
      Only build libdaemon.a when we need it at the moment.
      Add comments & remove always-included header.
      Comments, FIXMEs, name changes.
      Move cascade inside libdm etc.
      temp notes on dealing with cascade
      Remove incorrect requirement for -j or -m from lvchange error message.
      lvcreate parsing for thin provisioning.
      only thin volumes need converting
      tdata->tpool
      else
      Start using 64-bit status flags - most of the code already handles them.
      add thin_manip.c like the other manip files
      pool attach fns & more field renaming
      Terminate pv_attr field correctly. (2.02.86)
      lvcreate/remove thin_pool and thin volumes (--driverloaded n only)
      Add 7th lv_attr char to show the related kernel target.
      Add a new 'thin_pool' output field to 'lvs.
      Append z to lv_attr if new blocks will be zeroed.
      FIXMEs to note problems with some error paths.  (Perhaps safer to disable
      missing Makefile dep
      explain why we may now retry
      correct thin_pool width
      typo
      better -m0 error message, but there's an internal logic error to fix instead
      Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely.
      Replace incomplete pvmove activation failure recovery code with a message.
      Introduce revert_lv for better pvmove cleanup.
      Clarify multi-name device filter pattern matching explanation in lvm.conf.5.
      Clarify multi-name device filter pattern matching explanation in lvm.conf.5.
      Pass exclusive LV locks to all nodes in the cluster.
      Add missing lvrename mirrored log recursion in for_each_sub_lv.
      Must not override alloc policy specified by user.
      Move gentoo MAKEDEV to /sbin in lvm2create_initrd. (James Le Cuirot)
      Incomplete documentation is worse than no documentation.
      Make dmsetup.static and lvm.static build when dmeventd is disabled.
      Include a copy of kernel DM documentation in doc/kernel
      Don't ignore configure --mandir and --infodir.
      Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.
      Add activation/use_linear_target enabled by default.   (prajnoha)
      refer to kernel docs for target info
      update old comment
      tag uninit var
      reinstate !first_time check
      Update comments.  CLUSTER_VG belongs firmly to args[0].
      Don't pass LCK_LOCAL to clvmd - it's unused.
      Test for LCK_CLUSTER_VG directly in args[0].
      Only use built-in stack size in clvmd - ignore lvm.conf.
      When dropping the VG metadata from the cache during a VG revert, we must
      update FIXMEs
      Reinstate support for format1 snapshots, but issue deprecated warning.
      Add dm_uuid_prefix/dm_set_uuid_prefix for non-lvm users to override hard-coded
      Give priority to emcpower devices with duplicate PVIDs.
      Add activation/read_only_volume_list to override LV permission in metadata.
      Add activation/read_only_volume_list to override LV permission in metadata.
      Show read-only activation in display tools.
      Make error message hit when preallocated memlock memory exceeded clearer.
      Add dmsetup 'wipe_table' to replace table with one that uses error target.
      improve comment
      .
      Attempt to improve clustered 'lvchange -aey' behaviour to try local node before
      Add CLVMD_FLAG_REMOTE to skip processing on local node.
      Reorder fns in libdm-deptree.
      add const
      Fix metad help.
      Use chunk_size consistently for thin_pool within LVM.
      Caller is still entitled to reference an LV that's unlinked, so don't
      Make commented out code more obvious
      & -> &&
      pre-release
      pre-release
      post-release
      Automatically detect whether corosync clvmd needs to use confdb or cmap. (fabio)
      lp.pool may be (null) too
      Track unreserved space for all alloc policies and then permit NORMAL to place
      lost line
      Adjust comments
      pre-release
      post-release
      give standard error message if lstat fails unexpectedly
      remove unused bits after fid changes
      missing error mesg
      use stack consistently if 0 is considered an error
      FMT_INSTANCE_PV is no longer used
      FMT_INSTANCE_VG is redundant now
      pre-release
      post-release
      pre-release
      post-release
      Check all tags and LV names are in a valid form in vg_validate.
      pre-release
      post-release
      Fix empty string warning logic in _find_config_str. (1.02.68)
      Check return values after calling new lvmetad fns
      I don't think -u is meant to be used with lvmetad
      spacing
      Define LVMETAD_SUPPORT in source code
      If lvmetad fails, don't set _has_scanned
      Add LVMETAD_SUPPORT
      Bypass lvmetad fns when not configured to use lvmetad.
      Invert some return codes (which used to get ignored anyway) in cases when
      Series of commits to move daemon code into separate top-level dir and
      new makefiles
      move daemon files
      remove old makefile
      Reflect new file locations, include file updates etc.
      expose new include files to build
      Pass 'single_device' parameter down to suppress 'Can't find uuid' messages
      Reinstate error if e.g. daemon comms fails.
      Allow multiple device names with pvscan --lvmetad.
      Change pvscan --lvmetad to pvscan --cache.
      Pass struct device around internally rather than dev_t.
      missing reply frees
      fix non-lvmetad pvscan macro
      a fixme
      pre-release
      .
      post-release
      Reinstate accidentally-deleted line.
      Obtain VG list from lvmetad before relying on get_vgs, otherwise PVs in VGs
      Scan all devices for lvmetad if 'pvscan --cache' used without device list.
      Switch pvscan --cache major:minor to --major --minor.
      re-word warnings to be clearer to user
      Adjust wording
      pre-release
      Change pvscan --cache syntax
      close ]
      update reworded string
      post-release
      Fix error message when pvmove LV activation fails with name already in use.
      First veritysetup version using configure --with-veritysetup.
      fixes/improvements
      Rename verity dir
      add make install_verity
      spacing
      Remove 'up' from rounding message that sometimes rounds down.
      .
      .
      Handle replacement of an active device that goes missing with an error device.
      Remove statement that snapshots cannot be tagged from lvm man page.
      Log value chosen in _find_config_bool like other variable types do.
      Uncomment allocation section to match style of rest of file.
      Refactor _has_matching_pv_tag to provide a fn that takes PV structs.
      Always include debug mesg when cling to allocated is set.
      Append _TO_LVSEG to names of internal A_CONTIGUOUS and A_CLING flags.
      Fix allocation policy loop so it doesn't continue beyond cling using later
      Fix cling policy not to behave like normal policy if no previous LV seg.
      Warn of deadlock risk when using snapshots of mirror segment type.
      Refer to details of snapshot of raid problem.
      indicate when deptree detects but ignores size change in debug msg
      add major:minor to table size changed debug message
      Set delay_resume_if_new on deptree snapshot origin.
      Re-enable partial activation of non-thin LVs until it can be fixed. (2.02.90)

Andres Salomon (29):
      install all the manpages (another make-lintian-happy exercise)
      initial lvm2 debian packages; still missing some manpages, but otherwise lintian passes
      stop init script from returning w/ non-zero if not really an error
      ah, it was that "set -e" that was the culprit..
      fix various issues
      proper /etc/lvm/lvm.conf now
      convert from debian native package
      heh, whoops.  s/device-mapper/LVM2/g.
      all people to actually uninstall lvm2 (*grin*)
      Updated for new release
      dh_installinit makes a perfectly find postrm script..
      ditto
      updated for 0.95.05-2.
      forgot to add Conflicts against lvm1 packages
      Make lvm2 compile on big endian archs; use the kernel/glibc's endian
      updated.
      implement our own swabbing functions, instead of relying on the kernel's.
      synch w/ -3 "oh shit" release
      support recursive mkdir in create_dir()
      update create_dir() comment
      ack, missing include
      update for .08
      update, synch w/ debian
      Wow, learn something new every day.  Apparently, the signed-ness of char is
      synch w/ debian
      agk, I recall you saying you had a massive commit pending; if you need me
      it's about that time again
      close another bug
      Update packages.

Andy Grover (7):
      python-lvm: Remove liblvm object
      python-lvm: whitespace and Yoda conditionals
      python-lvm: Implement proper refcounting for parent objects
      python-lvm: Small fixups to new create_lv_snapshot
      python-lvm: whitespace in python/liblvm.c.
      python-lvm: Make second lv.snapshot() argument optional
      lvm2app: No special behavior for 0 for max_snap_size in lvm_lv_snapshot()

Ben Lutgens (1):
      test add

Benjamin Marzinski (10):
      changed client_path and sever_path from 'char *' to 'const char *' to stop
      more variable initialization.
      get the makefile to clean up the .o's
      removed the -lmultilog for now.
      stopped printing a string after we erased the pointer to it.
      dmeventd was looking for dsos with libdmeventd<name>.so
      fixed dmevent so that it doesn't do a double free when you run
      oops. Those are char **'s not char *'s
      Timeout event implementation:
      Fixing some makesfiles, so that the correct things link against pthreads.

Bryn M. Reeves (7):
      Make lvm_dump.sh list /dev recursively to aid identifying devices.
      re-commit lvm_dump.sh change
      Make lvm_dump.sh capture a listing of /sys/block entries.
      Allow vgcfgrestore to list metadata backup files using -f
      Fix lvmdiskscan volume reporting when run in the lvm shell
      Add is_orphan_vg() and change all hardcoded checks to use it.
      Convert pvchange, pvdisplay, pvscan to use is_orphan()

Christine Caulfield (38):
      Include limits.h so it compiles with newer headers.
      Fix potential thread deadlock.
      When reallocating the node IDs array, make it bigger rather than smaller!
      Fix a couple of uninitialised variables. The newfd one could cause
      Fix another allocation bug with clvmd and large node IDs.`
      If lvm.conf was touched, clvmd attempted to update the toolcontext
      Add config file overrides to clvmd when it reads the LVs list so that
      Simplify locking code by using saLckResourceLock rather than
      The attached patch is a try to make clvmd work correctly on openais stack.
      . remove_lock_wait.diff remove the definition of "struct lock_wait",
      Make clvmd-cman use a hash rather than an array for node updown info.
      Fix uninitialised mutex in clvmd if all daemons are not running at startup.
      Don't call openlog for every invocation of debuglog.
      Make clvmd return immediately if other nodes are down in a gulm cluster.
      Make clvmd return immediately if other nodes are down in an openais cluster.
      Fix a starup race in clvmd that could result in huge waits for the first command to be processed.
      Add a corosync/DLM cluster service to clvmd.
      Mention --with-clvmd=corosync in ./configure
      Allow clvmd to be built with all cluster managers & select one on cmdline.
      Allow clvmd to start up if its lockspace already exists.
      Add option to /etc/sysconfig/cluster to select cluster type for clvmd.
      Remove duplicate cpg_initialize from clvmd startup.
      Add a fully-functional get_cluster_name() to clvmd corosync interface.
      Fix error returns in clvmd-corosync interface to DLM.
      Fix unlocks in clvmd-corosync.
      Block SIGINT & SIGTERM in clvmd subthreads so they don't delay shutdown.
      Make sure clvmd-corosync releases the lockspace when it exits.
      Fix clvmd-corosync to match the new corosync API.
      Document the -I option to clvmd
      Fix locking in clvmd
      Fix compilation warning in clvmd.c
      Add some code to clvmd to look in the corosync confdb to see what cluster
      Stop clvmd from automatically doing lock conversions. Now, if a lock
      Add LCK_CONVERT flag I missed on the last checkin.
      Make clvmd return 0 on success rather than 1.
      Make clvmd -V return zero status rather than 1.
      Fix a thread race in clvmd that could cause lockups on very busy systems
      Add -S command to clvmd, so it can restart itself and still

Dave Wysochanski (697):
      Add stub for pvck, a command to check physical volume consistency.
      Add dev_read_circular, read 2 regions on same device.
      Add 'scan_sector' parameter to label_read and _find_labeller to add
      Add count_chars and count_chars_len functions, two
      Update pvck to read labels on disk, with flexible --labelsector
      Add support functions for analysis of config sections,
      Update pvck to include text metadata area and record detection.
      Fix warnings on x86_64 involving ptrdiff_t:
      Fix vgrename man page to include UUID and be more consistent with lvrename.
      Fix vgcfgrestore man pg to show mandatory VG name and remove LVM1 options.
      Add --maps to pvdisplay.
      Small fixes to pvdisplay --maps: 1) rename struct pv_segment vars from 'seg' to 'pvseg', 2) Change heading
      Remove 'Type' from pvdisplay --maps as there is no 'Type' of a physical segment, only logical segments
      Fix redundant segment display when PV is given to 'pvdisplay --maps' cmdline.
      Fix pvdisplay --maps to not display segment header for orphan PVs.
      make code consistent with pvresize code - good candidate for common code cleanup
      Add vg_check_status to consolidate vg status flags checks and error messages.
      Add wrappers to functions related to pv commands in preparation for exported LVM lib
      Add get_pv_* functions to return PV fields in prep for external LVM library
      Change PV_HANDLE_DEREF to pv_field and add paren's
      Convert find_pv_in_vg_by_uuid and pv_create to use PV handles
      Fix a couple benign warnings by adding variable initializations.
      Add typedef pv_handle_t
      Convert pv_handle_t to pv_t * and tidy up whitespace
      Remove casts in pv_create and find_pv_in_vg_by_uuid
      Convert pv->pe_alloc_count to get_pv_pe_alloc_count
      Convert pv->pe_count to get_pv_pe_count
      Convert pv->pe_start to get_pv_pe_start
      Convert pv->pe_size to get_pv_pe_size
      Convert existing_pv dereferences to get_pv_*
      Convert pv->size to get_pv_size
      Convert pv->dev to get_pv_dev
      Convert pv->status to get_pv_status
      Convert pv->vg_name to get_pv_vg_name
      Update WHATS_NEW for get_pv* conversions
      Convert pv->vg_name to get_pv_vg_name
      convert pv->vg_name[0] to \!is_orphan(pv)
      Fix inverted logic on last checkin for pvremove
      Update vgcfgrestore man pg
      Remove get_ prefix from get_pv_* functions
      Make vg_extend() format_instance * parameter internal to vg_extend()
      Add vg_status function and clean up vg->status in tools directory
      Convert vg->status checks to use vg_check_status function.
Rename status_flags to status in vg_check_status.
      Don't use index and rindex functions marked by SUSv3 as legacy - Jakub Bogusz <qboosh at pld-linux.org>
      Convert _add_pv_to_vg to usable LVM library function.
      Fix WHATS_NEW for last checkin until further patches for LVM library are ready.
      Add pv_read_path, a proposed external LVM library function to take a device path and return a PV handle
      Refactor vg_extend error path.
      Turn _add_pv_to_vg() into external library function add_pv_to_vg()
      Change pv_read_path to pv_by_path
      Add vg_lock_and_read() external library function.
      Add CORRECT_INCONSISTENT and FAIL_INCONSISTENT flags to vg_lock_and_read
      Fix error introduced with previous checkin
      Update lvconvert and lvrename to use vg_lock_and_read
      Trivial fix to lvdisplay man pg to correct volume size units
      Trivial fix to lvdisplay man pg to recommend lvs
      Factor out core of lvrename to lv_rename library function.
      Add support for renaming mirrored LVs.
      Add entry for last checkin of lvrename mirror support
      Update a few comments
      Some simple fixups for last checkin:
      A few more cleanups for lvrename of mirrors checkin:
      Remove extra checks for sub LV renaming.
      Fix "lvconvert -s" from always failing with argument error message.
      Remove unneeded WHATS_NEW entry
      Prepare to move guts of lvremove into lvm library
      Move lv_remove_single() into library (lv_manip.c, metadata-exported.h).
      Update WHATS_NEW for last checkin
      Prepare to move guts of vgremove into lvm library.
      Move guts of vgremove into lvm library.
      Modify lvremove to prompt for removal if LV active on other cluster nodes.
      prepare to move guts of pvresize into library
      move guts of pvresize into library
      prepare to move guts of vgrename into library function
      Fixup _lvresize error return codes and modularize function
      Fix last checkin
      Add pvseg_free field to 'pvs' output
      Undo previous checkin - output format not good, info already available in other form(s)
      Add %PVS extents option to lvresize, lvextend, and lvcreate.
      add tests to validate lvextend %PVS
      Refactor lvcreate stripe parameter validation.
      Refactor lvcreate mirror parameter validation.
      Some const fixups for previous checkins
      Remove unused pargc parameter
      Non-functional change - refactor vg_add_snapshot fid parameter.
      Non-functional change - refactor lv_create_empty().
      Accessor functions for PV will not modify the given PV.
      Add pv_dev_name() to access PV device name.
      Add _alloc_pv() and _free_pv() from _pv_create() code and fix error paths.
      Remove comment about allocation of pv->vg_name.
      Fix compile warnings / minor errors introduced recently.
      Refactor vgcreate for parameter validation and add tests
      Fix warning on conditional compile, unused variable
      Update lvm man page to enumerate lvm tools.
      Refactor vgsplit for accepting existing vg as destination
      Fixup lvm man pg
      Allow vgsplit into existing vg.
      Allow vgcreate options as input to vgsplit when new vg is split destination.
      Update WHATS_NEW for vgsplit changes
      Move more parameter validation into the library.
      Remove unused 'list' param from vgsplit - conflict with maxlogicalvolumes param.
      Create vgs_are_compatible() fn to check whether vgs are compatible for merging.
      Fix 'make check' runnable with recent versions of dmsetup.
      Fix descriptions in the newly added test cases
      Fixup vgsplit man page
      Minor test fix
      More test script fixes.
      Add a test case for 'vgreduce --removemissing' on stacked mirror
      Fix vgsplit - print error if vgcreate option given w/existing vg destination
      Fix vgsplit - print different message on successful split of existing / new vg
      Fix vgsplit tests 12-13
      Fix vgsplit test mode
      Fix default preferred_names filter to use /dev/mapper/mpath devices.
      Reflect actual default setting of preferred_names in example.conf and
      Fix t-vgsplit-operation.sh lv1 definition to include test signature.
      Fix t-vgsplit-operation.sh lv2-3 definitions to include test signature.
      Add vgsplit test to check failure when PV not in source volume group.
      Refactor _move_pv() in vgsplit.
      Update vgsplit tests.
      Update vgsplit tests.
      Const cleanups in find_* functions.
      Add LV and VG name restrictions to the lvm man page.
      Update vgsplit tests to execute twice (existing and new VG as destination).
      Fixup vgsplit tests in preparation for vgsplit changes.
      Add vgsplit tests to verfy attributes of new VG match source VG.
      Add 'is_reserved_lvname()' helper function.
      Add list_move() support function for list manipulation.
      Add pvseg_is_allocated() for identifying a PV segment allocated to a LV.
      Use list_move() in applicable places.
      Add vgmerge tests.
      Enhance test debugging by updating verbose mode of check_*_field_ functions.
      Add find_lv_in_lv_list() and find_pv_in_pv_list().
      Fix redundant lvresize message if vg doesn't exist.
      Fix lvresize to dump stack if vg_lock_and_read() fails.
      Suppress "Volume group not found" message when vgsplit of new VG.
      Fix vgsplit locking and remove unneeded error messages when split into new VG.
      Add check to vg_commit() to ensure lock is held before writing new VG metadata.
      Fix vgsplit error paths to release vg_to lock.
      Fix vgsplit error display - fully remove log_suppress.
      *** empty log message ***
      Update vgsplit to take "-n LogicalVolumeName" on the commandline.
      Update vgsplit man page to reflect lvnames on cmdline.
      Update vgsplit tests for lvnames on the cmdline.
      Fix vgsplit to only move hidden 'snapshotN' LVs when necessary.
      Add vgsplit tests to verify mirror is not moved unnecessarily.
      Fix lvm tool exit code display in some tests.
      Add _move_one_lv() helper function for vgsplit.
      Minor vgsplit cleanups.
      Add vg_is_clustered() helper function.
      Update vgsplit tests that count LVs for adjusted LV counting.
      Add lv_is_active() to determine whether an lv is active.
      Update vgsplit to only restrict split with active LVs involved in split.
      Update vgsplit test to verify loosening of active LV restriction.
      Fix vgsplit and vgmerge tests for updated lv counting.
      Fix internal snapshot_count when vgmerge with snapshots in source VG.
      Update test function _check_{vg|lv|pv}_field to aid in test debug.
      Fix vgsplit internal counting of snapshot LVs.
      Add test for rhbz440405 - lvconvert -m0 fails incorrectly if all PEs allocated.
      Trivial fix to lvchange man pg for consistency.
      Add simple test case to repro pvs segfault with duplicate vgnames.
      Add ommitted unlock_vg() call when sigint_caught() during vg processing.
      Fix return values for reporting commands when run with no PVs, LVs, or VGs.
      Trivial fix to lvcreate man page for --mirrorlog option.
      Fix identifier 'error_message_produced' used ambiguously.
      Suppress 'sb_offset' compiler warning by using enum for md superblock versions.
      Add uninitialized_var macro to suppress invalid compiler warnings.
      Suppress invalid 'sb_offset' compiler warning (FC8) with uninitialized_var().
      Refactor pv_create() to take cmd_context - no functional change.
      Test script cleanup.
      Add pvcreate sanity tests, check for label_write() failure in _text_pv_write().
      Update pvcreate and vgsplit tests.
      Only use lvm2 metadata for now.
      Refactor _lvcreate() - no functional change.
      Add more pvcreate tests to validate writing lvm2 label using --labelsector.
      Refactor pvcreate to divide parameter parsing & validation from create logic.
      Refactor pvcreate - divide parameter parsing & validation from create logic.
      Refactor pvcreate - move labelsector parameter parsing & validation.
      Remove dead code, is_lvm_partition() - no functional change.
      Add pvcreate tests for uuid and restorefile.
      Refactor pvcreate - move uuid and restorefile options.
      Refactor pvcreate - use '0' for no --uuid or --restorefile options.
      Refactor pvcreate - --force parameter.
      Refactor pvcreate - --yes argument
      Refactor pvcreate - simplify return codes.
      Fix trivial typo in pvcreate man page.
      Add pvcreate tests to verify failure on md array detection.
      Fix symbolic link creation in test infrastructure.
      Add ctype.h header file to silence compile warning on 'isdigit'.
      Fix vgdisplay return code and exit status.
      Fix lvhange and lvcreate man pages to properly describe permissions option.
      Make man pages consistent with either-or options (use "|" everywhere).
      More man page cleanup - convert "+/-" to "+|-"
      Fix "lvremove -f vgname" when vgname contains snapshots.
      Fix vgcreate race which could allow two parallel vgcreates to succeed,
      Fix test-utils.h for rhel4 backward compatability.
      Add generic function to read /dev/urandom, used in uuid calculation.
      Make _init_rand() thread safe - use rand_r() instead of rand().
      Add liblvm interactive test infrastructure to build.
      Replace _apply_settings() after create_toolcontext() with equivalent inline.
      Remove init_debug() calls immediately after create_toolcontext() call.
      Remove init_verbose() calls immediately after create_toolcontext() calls.
      Remove handles_missing_pvs assignment after call to create_toolcontext().
      Move init_test() from _apply_settings into _init_logging().
      Remove archive_enable() calls after create_toolcontext() calls.
      Remove backup_enable() calls after create_toolcontext() calls.
      Remove redundant set_activation() call after create_toolcontext() calls.
      Remove redundant init_msg_prefix() and init_cmd_name().
      Move initialization of cmd->fmt into init_formats().
      *** empty log message ***
      Create _init_globals() and call from bottom of create_toolcontext().
      Fix segfault when invalid field given in reporting commands.
      Rename 'cmd' to 'clvmd_cmd' to remove ambiguity.
      Move arg_* functions from toollib.c to lvmcmdline.c.
      Remove struct arg * from struct cmd_context and create_toolcontext().
      Create global is_static() to eliminate from the library init function.
      Add pv_mda_size to 'pvs' and vg_mda_size to 'vgs'.
      Add pv_mda_size to pvs and vg_mda_size to vgs.
      Fix pvs segfault when run with orphan PV and vg_mda_size or vg_mda_free fields
      Fix fsadm lvresize for filesystem block sizes != 1024.
      Add skeleton of fsadm nightly test but skip (doesn't work yet).
      Rename _parse_options() to _parse_fields() for naming consistency.
      Add --rows option to pvs, vgs, lvs man pages.
      Add --nameprefixes to pvs, vgs, lvs man pages.
      Add missing --segments to pvs man pg.
      Add --unquoted to pvs, vgs, lvs man pages.
      Rename get_vgs() to get_vgnames() and clarify related error messages.
      Move locking_type reading inside init_locking().
      Update vgchange and vgmknodes man pages to include --refresh.
      Rename liblvm to liblvm-internal.
      Add new liblvm build directory and move lvm_base.c.
      Move lvm.h from lib to liblvm.
      Add DSO generation for new LVM application library.
      Remove unnecessary linker flags for liblvm.
      Fix liblvm version symlink.
      Add missing liblvm/.exported_symbols
      Fix error messages when PV uuid or pe_start reading fails.
      Remove unnecessary includes in lvm_base.c.
      Fix some distclean rules.
      Fix some clean rules, fix previous distclean checkin.
      Fix whitespace in t-mdata-strings.sh
      Add libdevmapper to test/api building.
      Remove some trailing whitespace so git won't complain.
      Update columns.h comment to describe macro args.
      Fix error path in vg_make_handle().
      Use liblvm.so instead of .a
      Fixup whitespace.
      Fixup whitespace.
      Update columns.h comment.
      Validate chunksize and originsize for snapshots.
      Add tests to check vgcreate --physicalextentsize and field vg_extent_size.
      Add tests to check pv_mda_size and vg_mda_size.
      Update tests for region_size.
      Add test for seg_start, seg_count, seg_start_pe
      Update t-read-ahead.sh to validate lv_read_ahead and lv_kernel_read_ahead.
      Remove NON_BLOCKING lock flag from tools and set a policy to auto-set.
      Update test-utils to cope with ":" in device names and allow configurable names.
      Add test - lvconvert from linear (on multiple PVs) to mirror.
      Add vgrename test to check for existence of new vg.
      Add vg_lock_newname() library function.
      Update vgrename to use vg_lock_newname.
      Update vgcreate to use new vg_lock_newname().
      Update vgsplit to use new vg_reserve_newname() function.
      Update WHATS_NEW
      In the new _vg_read_for_update(), we always do the check for CLUSTERED vg
      Cleanup pvs, vgs, and lvs "-o" section in man pages (rhbz 500861).
      Convert the straight instances of vg_lock_and_read to new vg_read(_for_update).
      Fix incomplete revert for lvconvert.
      Convert the straight instances of vg_lock_and_read to new vg_read(_for_update).
      Rework the toollib interface (process_each_*) on top of new vg_read.
      Convert vgreduce to use vg_read_for_update.
      Convert vgrename to vg_read_for_update.
      Don't segfault in vg_release when vg->cmd is NULL.
      Convert vgsplit to use vg_read_for_update.
      Add lvmcache_init() to polldaemon initialization.
      Fix t-inconsistent-metadata.sh.
      Update WHATS_NEW for vg_read commits
      Fix vg_read() error paths to properly release upon vg_read_error().
      Fix compile warning in lvmcmdline.c - use C99 PRIu64 for uint64_t.
      Remove LOCK_KEEP and READ_CHECK_EXISTENCE from vgsplit.
      Remove unneeded LOCK_KEEP from vg_read() interface.
      Remove READ_CHECK_EXISTENCE and vg_might_exist().
      Remove unneeded LOCK_NONBLOCKING from vg_read() API.
      Update WHATS_NEW for vgread cleanup
      Make destroy_toolcontext() better able to handle NULL pointers.
      Fix segfault in persistent_filter_dump() if lvm init fails.
      Add t-lvm-init.sh - test lvm init routines and error paths.
      Refactor a couple log_error() statements in prep for larger log_error() patch.
      Make exit paths more robust when some init function fails.
      .
      Fix memory leak in vgsplit when re-reading the VG.
      Update t-vgcreate-usage.sh to check for default vg properties.
      Add defines for default vgcreate parameters.
      Update vg_change_pesize() to contain all validity checks.
      Remove unused 'cmd' from vg_change_pesize().
      Rename vg_change_pesize to vg_set_extent_size and use vg_t.
      Add vg_set_max_lv() liblvm function and move vgchange logic inside.
      Add vg_set_max_pv() liblvm function and move vgchange logic inside.
      Add vg_set_alloc_policy() liblvm function and move vgchange logic inside.
      Change vg_create() to take only minimal parameters and obtain a lock.
      Update WHATS_NEW for recent vgcreate changes
      Remove unnecessary parameters from vg_remove_single().
      Remove force parameter from vg_remove_single, now the liblvm function.
      Move orphan lock inside vg_remove_single.
      Move orphan lock obtain/release inside vg_extend().
      Change lock ordering of vgcfgrestore to be consistent with other tools.
      Update WHATS_NEW for vgremove and ORPAHN_LOCK refactoring
      Remove unused code vg_lock_and_read() and related flags.
      Remove READ_REQUIRE_RESIZEABLE from vgextend by moving check inside vg_extend.
      Refactor vgsplit - move move_pvs_used_by_lv and move_pv inside library.
      Remove READ_REQUIRE_RESIZEABLE flag from vgsplit.
      Remove READ_REQUIRE_RESIZEABLE flag from vg_read() interface - no users.
      Define handles to liblvm objects for pv, vg, lv, lvseg, pvseg.
      Add default cmd->cmd_line initialization for liblvm lvm_create().
      Add lvm_vg_* APIs to create and modify VGs.
      Add VG APIs to liblvm/.exported_symbols.
      Add liblvm test case for creating of a vg.
      Add a few negative tests which should fail cleanly if pv, vg, lvs don't exist.
      Fix vgck and vgremove segfault if non-existent vg given.
      Fix pvremove test breakage.
      Fix FAILED_INCONSISTENT case in vg_backup_single - typeo on 'if' condition.
      Check for certain vg_read errors in _process_one_vg iterator.
      Fix memory leak in _process_one_vg error path.
      Fix memory leak in process_each_pv path.
      Change default errno value to 0 (no error) and add prototypes in lvm.h
      Remove extraneous messages for extent_size and alloc_policy upon vgcreate.
      Remove 'is already' message from vg_set_* functions.
      Fix compile warnings in vgcreate liblvm api unit test case.
      Rename test/api/vgcreate.c to vgtest.c to reduce filename conflicts in tree.
      Fix build environment of test/api: Make it usable for more than one test case.
      Export lvm_errno and lvm_errmsg in liblvm.
      Fix lvm_vg_close() when locking fails.
      Update test/api/vgtest.c to use lvm_errno and lvm_errmsg.
      Update api/test/vgtest.c error handling.
      Add lvm_vg_open() to open an existing VG for reading or writing.
      Add a couple lvm_vg_open() calls to vgtest.c.
      Update lvm_vg_create to use NULL / non-NULL return for the time being.
      Remove lvseg_t and pvseg_t typedefs from liblvm/lvm.h.
      Add list structure definitions for liblvm objects.
      Add lvm_vg_list_{pvs|lvs} - return lists of pv/lv handles for a vg.
      Add lvm_{pv|vg|lv}_get_{uuid|name}.
      Update test/api/test.c for simple tests involving pv/vg/lv name/uuid attributes.
      Update WHATS_NEW for liblvm commits
      Update test/api/test.c to not segfault if null lists of pvs/lvs returned.
      Remove redundant validate_name in vgreduce.
      Add lvm_list_vg_names and lvm_list_vg_ids liblvm functions.
      Add lvm_scan_vgs liblvm fn to scan the system for LVM metadata.
      Add tests for lvm_vg_name_list, lvm_vg_id_list and lvm_scan_vgs.
      Revert previous patch that moved VG_ORPHAN lock inside vg_extend.
      Update lvm_vg_extend() to obtain VG_ORPHAN.
      Eliminate compile warning introduced by previous commit.
      Remove unneeded pv_create wrapper function.
      Move bulk of pvcreate logic into library.
      Allow pvcreate_single to be called with NULL for default pvcreate params.
      Change pvcreate_single to return pv_t and update function description.
      Move ORPHAN_VG lock outside pvcreate_single.
      Update lvm_vg_extend to do an implicit pvcreate on the device.
      Remove use of void * from pvcreate_single.
      Refactor _lvcreate - move *_ARG into _lvcreate_params and get 'cmd' from 'vg'.
      Refactor extents calculations / updates in _lvcreate.
      Move percent_t from struct lvcreate_params to struct lvcreate_cmdline_params.
      Move 'size' from lvcreate_params into lvcreate_cmdline_params.
      Comment lvcreate_params struct.
      Move pvs and pv_count fields from lvcreate_params to lvcreate_cmdline_params.
      Move _lvcreate into the internal library and rename to lv_create_single.
      Move extents_from_size from lvcreate into internal library so we can reuse.
      Add lvm_vg_create_lv_linear liblvm function.
      Update test/api/test.c to handle read/write open modes.
      Update test/api/test.c to call lvm_vg_create_lv_linear.
      Update WHATS_NEW for recent checkins
      Rename vg_size to vgsize to avoid naming conflicts.
      Refactor a few report field calculations into separate functions.
      Use vg_size in vg_set_extent_size.
      Add most all liblvm 'get' functions needed for anaconda.
      Update test/api/test.c for liblvm 'get' functions.
      Update test/api/test.c - correct list_vg_names and list_vg_ids.
      Add lvm_vg_remove_lv liblvm function.
      Update test/api/test.c to call lvm_lv_remove.
      Rename lvm_vg_get_free_count to lvm_vg_get_free_extent_count.
      Rename lvm_list_vg_ids to lvm_list_vg_uuids.
      Rename lvm_vg_get_free to lvm_vg_get_free_size.
      Update lvm.h handle and handle list comments.
      Update lvm.h - comments describing function behavior, divide into sections.
      Rename lvm_scan_vgs to lvm_scan.
      A few more lvm.h updates that got missed.
      Update liblvm status return codes to be consistent.
      Update a few liblvm calls with log_errno.
      Update test/api/*.c to use consistent liblvm error returns.
      Implement lvm_lv_activate and lvm_lv_deactivate liblvm calls.
      Add lvm_lv_is_active and lvm_lv_is_suspended.
      Update test/api/test.c to call lv_deactivate and lv_activate.
      Update test/api/test.c to display lvm_lv_is_active and lvm_lv_is_suspended.
      Update WHATS_NEW for latest liblvm changes
      More liblvm header file cleanups.
      Update display.c to use vg_free(vg) instead of duplicating the calculation.
      Rename lvm_reload_config to lvm_config_reload.
      Update error return and comments for lvm_list_vg_names/uuids.
      Add vg_reduce to metadata.c and metadata-exported.h
      Add lvm_vg_reduce to liblvm2app
      Update test/api/vgtest.c to include lvm_vg_reduce.
      Update test/api/test.c to include lvm_vg_reduce and lvm_vg_extend.
      Add skeletons of lvm_lv_resize and lvm_pv_resize - not yet implemented.
      Refactor _override_settings to take the new config string as input.
      Rename _override_settings into override_config_tree_from_string and move.
      Add lvm_config_override - allow caller to override config, similar to --config.
      Update return code for lvm_config_reload.
      Add config_reload and config_override to test.c, change prompt.
      Remove unnecessary 
's from log_error in liblvm.
      Update WHATS_NEW for latest liblvm changes
      Add warning to lvm.h stating API development in progress.
      Update lvm.h to address feeback.
      Rename lvm_create to lvm_init and lvm_destroy to lvm_quit.
      Use dm_malloc and dm_free in liblvm instead of malloc/free.
      Add lvm_library_get_version() and update unit tests to display version.
      Fix lvm.h formatting.
      Update lvm.h - remove remaining FIXMEs, note limitations of a few functions.
      Add lvm_vg_get_seqno, updating lvm.h and unit test.
      Update interactive unit test for liblvm - add vg_write, general cleanup.
      Update interactive unit test - fix silly vg_close error.
      Add an open_mode to the vg struct for liblvm - enforce read / write semantics.
      Add doxygen mainpage tag to lvm.h
      Remove unneeded struct on return from lvm_lv_create_linear.
      Don't include lvm-version.h in exported liblvm file!
      Move FIXME from user visible lvm2app.h to lvm_vg.c
      Update test/api/test.c to call lvm_vg_create and lvm_vg_remove.
      Remove useless _pv_write wrapper.
      Update man pages to clarify usage of PE ranges.
      Fix vgextend error path - if ORPHAN lock fails, unlock and release vg.
      Update WHATS_NEW for recent checkins.
      Make lvm2app vg_t handle definition consistent with lvm_t.
      Make lvm2app lv_t handle definition consistent with lvm_t.
      Make lvm2app pv_t handle definition consistent with lvm_t.
      Update WHATS_NEW
      Fix error paths for vgcfgrestore when locking fails.
      Add alphabetical vgname ordering tests for vgsplit, vgmerge, vgrename.
      Fix vgsplit test to require -M on ordering of vgnames.
      Refactor vgsplit to move existing_vg logic in a separate 'if' statement.
      Refactor vgsplit - remove bad2 label.
      Refactor vgsplit - add 'lock_vg_from_first' flag.
      Refactor vgsplit - create _vgsplit_to function which creates or opens dest vg.
      Refactor vgsplit - create _vgsplit_from function to open source vg.
      Refactor vgsplit: _vgsplit_from or _vgsplit_to failure cleanup depends on order.
      Refactor vgsplit - reorder _vgsplit_from and _vgsplit_to based on flag.
      Change vgsplit behavior to open/lock first vg based on alphabetical ordering.
      Refactor vgmerge - introduce lock_vg_from_first flag.
      Refactor vgmerge - create _vgmerge_from and _vgmerge_to.
      Refactor vgmerge - combine _vgmerge_to and _vgmerge_from into _vgmerge_vg_read.
      Change vgmerge behavior to open/lock first vg based on alphabetical ordering.
      Refactor vgrename into vg_rename_old and vg_rename_new.
      Update vgrename to take into account vgname lock ordering.
      Enforce an alphabetical lock ordering for vgname locks.
      Rename internal library function vg_remove to vg_remove_mdas.
      Split vg_remove_single into 2 functions - the second part commits to disk.
      Update vg_remove_single_* functions to use the removed_pvs list.
      Update lvm_vg_write() to handle the deferred commit of lvm_vg_write().
      Update lvm2app vgtest to take vgname and devices as parameters.
      Restore umask when device node creation fails.
      Add lvm2app.sh to nightly testsuite.
      Remove 'test' interative api unit tests from 'TARGET' line.
      Fix path to test/api/vgtest in nightly testsuite.
      Add daemons/cmirrord files to git - somehow got messed up with cvs rename.
      Restore umask when device node creation fails.
      Add lvm2app.sh to nightly testsuite.
      Remove 'test' interative api unit tests from 'TARGET' line.
      Fix path to test/api/vgtest in nightly testsuite.
      Update lvm2app unit test vgtest - fix remove bug.
      Add max_pv and max_lv vg 'get' lvm2app exports.
      Update lvm and vgs man pages to clarify 'partial' is a VG missing PVs.
      Add most relevant vg_attr fields as lvm2app 'get' functions.
      Use vg_is_exported(vg) macro everywhere.
      Fix build failure when enabling dmeventd and applib.
      Fix process_each_vg / _process_one_vg when vg_read() returns FAILED_LOCKING.
      Add vg_is_resizeable() and cleanup references.
      Fix lvm2app test to run under test/api subdirectory only when configured.
      Trivial cleanup to lvcreate man page - use virtualsize in example.
      Update nightly tests to deal with unit changes.
      Refactor vg_extend - add vg_extend_single_pv.
      Add pvcreate_params to vg_extend_single_pv.
      Add pvcreate_params to vg_extend.
      Allow calling fill_default_pvcreate_params from tools.
      Refactor pvcreate - split pvcreate_validate_params into recovery/non-recovery.
      Refactor vgcreate/vgextend validation of vgname/pvname(s).
      Move pvcreate_validate_params into toollib to allow calling from mutiple tools.
      Add implicit pvcreate support to vgcreate and vgextend.
      Update vgcreate and vgextend man pages to clarify implicit pvcreate.
      Add implicit tests for implicit pvcreate during vgcreate and vgextend.
      Update help messages for vgextend / vgcreate to mention PHYSICAL DEVICE OPTIONS.
      Add --pvmetadatacopies as a synonym for --metadatacopies in various commands.
      Add --pvmetadatacopies as a synonym for --metadatacopies in various commands.
      Cleanup comment and some whitespace.
      Minor fix to vgcreate/vgextend man pages for PHYSICAL DEVICE OPTIONS.
      Update lvcreate/lvconvert man pages to explain PhysicalVolume parameter.
      Document --all option in man pages, cleanup {pv|vg|lv}{s|display} man pages.
      Add to vgcreate and vgextend nightly tests.
      Add vg_mda_count library function.
      Add vg_set_clustered() - move logic from vgchange.
      Update vgcreate to call vg_set_clustered().
      Update vgsplit to call vg_set_clustered().
      Rename pvcreate_params processing functions to better match <object><action>.
      Add vgcreate_params_set_defaults().
      Rename fill_vg_create_params to vgcreate_params_set_from_args.
      Rename validate_vg_create_params to vgcreate_params_validate.
      Remove old, and now incorrect, vgextend man page description of pvcreate options.
      Remove unnecessary / duplicate dm_list macros and functions.
      Fix setting of readahead in lvcreate.
      Add tests to check for readahead value in lvcreate.
      Update a few more uint64_t's related to the 64-bit status change.
      Fix activated/deactivated log_verbose message
      Correct 'void *' usage in pvcreate_single.
      Remove useless memory allocation for pv->vg_name in _alloc_pv().
      Call _alloc_pv() inside _pv_read() and clean up error paths.
      Remove unnecessary "dmsetup resume" after "dmsetup create".
      Add copy constructor for struct metadata_area.
      Fix off by 512 sizes for lvm2app.
      Export lvm_pv_get_size(), lvm_pv_get_free(), lvm_pv_get_dev_size in lvm2app.
      Update simple lvm2app unit test for new size apis.
      Update lvm2app.h comments to remove hidden VG comment list vgnames/vgids.
      Add get_{pv|vg|lv}_field() nightly test helper functions.
      Add nightly test to cover vg/lv tags add/delete.
      Refactor _vgchange_tag() to vg_change_tag() library function.
      Refactor vgcreate to call new vg_change_tag() function.
      Refactor lvchange_tag() to call lv_change_tag() library function.
      Add dm_pool_strdup to allocate memory and copy a tag in {lv|vg}_change_tag()
      Add tag_list_copy() supporting function inside lvm2app.
      Add lvm_vg_get_tags(), lvm_vg_add_tag(), and lvm_vg_remove_tag().
      Add lvm_lv_get_tags(), lvm_lv_add_tag(), and lvm_lv_remove_tag().
      Update lvm2app interactive unit test for vg/lv tags.
      Update doxygen comments for lvm2app.h.
      Add Doxygen file for lvm2app to generate documentation from lvm2app.h.
      Update WHATS_NEW.
      Add pvchange -u --all to testsuite.
      Avoid scanning all pvs in the system if operating on a device with mdas.
      Update WHATS_NEW for last checkin.
      Add pv to vg->pvs after check for maximum value of vg->extent_count.
      Refactor _read_pv() code that updates vg->extent_count and vg->free_count.
      Refactor format1 vg->pvs list add and vg->pv_count.
      Add add_pvl_to_vgs() - helper function to add a pv to a vg list.
      Update WHATS_NEW
      Check for duplicate paths (pvids) on the commandline of vgcreate.
      Remove unnecessary parameter from import_pool_pvs().
      Move increment of vg->pv_count from import_pool_vg() to import_pool_pvs().
      Add del_pvl_from_vgs() and move prototypes into metadata-exported.h
      Call add_pvl_to_vgs() and del_pvl_from_vgs() from more places.
      Use del_pvl_from_vgs() in vgreduce paths.
      Add pv->vg to solidify link between a pv and a vg.
      Update WHATS_NEW
      Fix teardown in t-pvcreate-operation-md.sh nightly test.
      Add missing readline linkage to lvm2app test.
      Use vg->vgmem to allocate vg/lv/pv string properties instead of dm_malloc/fr
      Change lvm2app version number from 1 to 2.
      Add device creation to basic nightly test.
      Add pvid_from_devname() lvmcache function.
      Add lvmcache_vgname_from_pvid().
      Add find_vgname_from_{pvname|pvid} functions.
      Update pvchange to always obtain a vg handle for each pv to process.
      Add lvm2app interfaces to lookup a vgname from a pvid and pvname.
      Test lvm_vgname_from_{pvid|device}.
      Update WHATS_NEW
      Fix warnings with conversion of uuid.
      Remove hack in pvchange to unlock orphan VG.
      Remove another pvchange hack involving orphan VG names.
      Do not fail lvm_init() if init_logging() generates an errno.
      Revert _init_rand() to reset errno - restores original init behavior.
      Add device name to output of error messages in raw_read_mda_header().
      Change 'filler' to 'flags' in on-disk 'raw_locn' structure.
      Add text format specific 'rlocn' ignore flag and access functions.
      Add location independent flag and functions to ignore mdas.
      Move dev_open / dev_close outside _vg_read_raw_area().
      Move dev_open/dev_close outside vgname_from_mda().
      Allow raw_read_mda_header to be called from text_label.c.
      Ensure in-memory state matches on-disk state of mda ignore bit.
      Add mda_locns_match() internal library function for mapping pv/device to VG mda.
      Add mda location specific mda_copy constructor.
      Use vg_mda_count() in vgdisplay.
      Rename fid->metadata_areas to fid->metadata_areas_in_use.
      Add metadata_areas_ignored list and functions to manage ignored mdas.
      Define new functions and vgs/pvs fields related to mda ignore.
      Add --metadataignore to pvchange, allowing for ignoring of metadata areas.
      Update pvchange, pvs and vgs man pages for metadata ignore.
      Implement ignore of mda if bit set by skipping r/w of metadata.
      Add mdas_empty_or_ignored() helper function.
      Use mdas_empty_or_ignored() in place of checks for empty mda list.
      Update _vg_read and _text_create_text_instance to use fid_add_mda[s].
      Refactor vg_commit() to add _vg_commit_mdas().
      Before committing each mda, arrange mdas so ignored mdas get committed first.
      Add tests for phase 1 of metadata balance - manage per-PV ignore bit.
      Define vgmetadatacopies in vgchange man page.
      Add mda_copies to VG structures and initialization.
      Add vg get/set methods for VG metadata copies.
      Make vg->mda_copies persistent in on disk vg metadata.
      Add vg_mda_copies display field to 'vgs' command.
      Update vgchange tool to accept --vgmetadatacopies.
      Implement _vg_adjust_ignored_mdas and call from vg_write() path.
      Set vg_mda_copies when pvchange --metadataignore is given.
      Add --vgmetadatacopies to vgcreate man page, command, and lvm.conf.
      Ensure fid mda lists are populated correctly during vgextend.
      Update check in vg_split_mdas to account for ignored mdas list.
      Update _vgmerge_single() to move fid->metadata_areas_ignored.
      Add --vgmetadatacopies to vgsplit man page and command.
      Ensure --metadatacopies parameter gets interpreted based on command.
      Allow 'all' and 'unmanaged' values for --vgmetadatacopies.
      Update example.conf.in to describe vgmetadatacopies.
      Update tests to handle phase 2 (vg based) metadata balance.
      Fix compile warning in vgchange.c regarding mda_copies initialization.
      Update t-covercmd pvck to take proper device argument.
      Update WHATS_NEW for --metadataignore and --vgmetadatacopies changes.
      Attempt to fix intermittent failure with non-debug configured vgcfgbackup.
      Add more initializations of 'mda->flags' field.
      Add error message if backup_to_file fails because of empty in_use mdas list.
      Move code into pv_change_metadataignore library function.
      Add some log_verbose debug statements related to metadataignore.
      Improve logging for metadata ignore by printing device name.
      Improve logging for setting --vgmetadatacopies.
      Add --metadataignore to pvcreate.
      Update pvcreate tests for --metadataignore.
      Add pvmetadatacopies to lvm.conf and pvcreate man pages.
      Add --metadataignore to vgextend and man pages.
      Update nightly tests for vgextend --metadataignore.
      Update nightly tests for vgextend --metadataignore.
      Only attempt to guarantee 1 mda ignored if there's at least one mda in the vg.
      Refactor vg_remove_check to place pv removal into separate function.
      Check for missing_pv in vg_remove loop.
      Update metadata-balance test for --vgmetadatacopies 0.
      Minor changes to man pages for --metadataignore.
      Test failed commit of mda on new pv - failed vgextend.
      Add warning to vgextend and pvchange if metadataignore given on cmdline.
      Add prompt if using --metadataignore argument with vgmetadatacopies.
      Add --force to pvchange, and allow override of prompt involving metadataignore.
      Shorten prompt for pvchange and vgextend.
      Init mda->list in mda_copy.
      Pass metadataignore to pv_create, pv_setup, _mda_setup, and add_mda.
      Remove unnecessary list of includes in liblvm files.
      Add log_error when strdup fails in {vg|lv}_change_tag().
      Update WHATS_NEW
      Update comments about memory handling in lvm2app.h.
      More comment updates in lvm2app.h.
      Minor man page updates related to metadataignore and vgmetadatacopies.
      Clarify help text for vg_mda_count.
      Remove unneeded "active" variable in vgchange_monitoring().
      Remove irrelevant comments relating to vg_mda_copies.
      Add vg_mda_size and vg_mda_free functions.
      Add 'flags' field to columns.h and define FIELD_MODIFIABLE.
      Remove explicit double quotes from columns.h 'id' entries.
      Add macro definitions to report infrastructure for character array length.
      Add properties.[ch] to lib/report, defined based on columns.h.
      Define GET_NUM_PROPERTY_FN macro to simplify numeric property 'get' functions.
      Add implmentation for simple numeric 'get' property functions.
      Define GET_NUM_PROPERTY_FN macro to simplify numeric property 'get' functions.
      Update WHATS_NEW
      Update configure for snitm changes
      Update vg_mda_free 'get' function to multiply by SECTOR_SIZE.
      Refactor metadata.[ch] into vg.[ch] for vg functions.
      Refactor metadata.[ch] into pv.[ch] for pv functions.
      Refactor metadata.[ch] into lv.[ch] for lv functions.
      Add lib/metadata/pv.[ch] new files.
      Add lib/metadata/vg.[ch] and lib/metadata/lv.[ch].
      Add {pv|vg|lv}_attr_dup() functions and refactor 'disp' functions.
      Simplify logic to create 'attr' strings.
      Add id_format_and_copy() common function and call from _uuid_disp.
      Add pv_uuid_dup, vg_uuid_dup, and lv_uuid_dup, and call id_format_and_copy.
      Add tags_format_and_copy() common function and call from _tags_disp.
      Add pv_tags_dup, vg_tags_dup, lv_tags_dup functions that call tags_format_and_copy.
      Add supporting functions vg_name_dup, vg_fmt_dup, vg_system_id_dup.
      Make generic GET_*_PROPERTY_FN macros and define secondary macro for vg, pv, lv.
      Add 'get' functions for vg fields.
      Add pv_mda_size, pv_mda_free, and pv_used functions, call from 'disp' functions.
      Add pv_name_dup() and pv_fmt_dup() helper functions.
      Add pv 'get' functions for all pv properties.
      Add pv_get_property and create generic internal _get_property function.
      Update WHATS_NEW for commits related to generic property functions
      Fix copyright dates on new files lib/metadata/{lv|vg|pv}.[ch].
      Rename 'flags' to 'status' for struct metadata_area.
      Add some lv 'get' functions that require no refactoring.
      Refactor and add code for (lv) 'lv_path' get function.
      Refactor and add code for (lv) 'origin_size' get function.
      Refactor and add code for (lv) 'move_pv' get function.
      Refactor and add code for (lv) 'convert_lv' get function.
      Refactor and add code for (lv) 'lv_kernel_{major|minor}' get functions.
      Refactor and add code for (lv) 'mirror_log' get function.
      Refactor and add code for (lv) 'modules' get function.
      update WHATS_NEW
      Fix lv_modules_dup segfault.
      Refactor and add code for (lv) 'lv_name' get function.
      Refactor and add code for (lv) 'lv_origin' get function.
      Add lv_read_ahead and lv_kernel_read_ahead 'get' functions.
      Rename fields in lvm_property_type.
      Add lv_get_property() internal lvm function.
      Add 'is_integer' flag into internal lvm_property_type.
      Add lvm_vg_get_property() generic vg property function.
      Add lvm_pv_get_property() generic function to obtain value of any pv property.
      Add lvm_lv_get_property() generic function to obtain value of any lv propert
      Add interactive tests for lvm_{pv|vg|lv}_get_property().
      Update WHATS_NEW for lvm2app property functions
      Add "dmsetup ls --tree" output to lvmdump.
      Update WHATS_NEW for lvmdump change.
      Add nightly test for vgimportclone and querying of vgnames with duplicate pvs.
      Add vgimportclone symlink for nightly test.
      Disable nightly test for vgimportclone until proper fix is made.

David Teigland (1):
      clvmd: verify messages before processing

Fabio M. Di Nitto (13):
      Remove unwanted Makefiles and don't purge lvm2.po that's
      Fix --with-clvmd=all to deal with the case where no cluster managers are available.
      Drop clogd Makefile from CVS since it's always autogenerated from Makefile.in
      Fix cmirrod build directory while we wait to do a proper rename of the
      Merge Debian patch 05 debian: keep libdm-abi consistent.
      Disable realtime support by default.
      configure.in: don't set default file owner and group
      - fix whitespaces all over (tabs/spaces)
      Fix clvmd init script stop function to not deactive non-clustered volume groups.
      Add dm_create_lockfile to libdm to handle pidfiles for all daemons.
      Fix clvmd init script return code when executed as non-root user.
      Based on auto-detection or user requested cluster managers for clvmd,
      In the new corosync world, dlm is a standalone service.

Heinz Mauelshagen (33):
      Added GPL disclaimer
      more todo
      Typos in error messages
      added before 2.1 item
      removed ~64limit for PEs per PV agk introduced
      Check that vgname doesn't already exits in dev_dir
      fixed div bug in calculation of end in calculate_extent_count
      Zero gap after PV structure on write to disk in order to make non LVM tools happier (AED's idea and patch for LVM1)
      Date changed
      quotes around names in output
      Poor mans lvmdiskscan
      > 2TB numbers in vgdisplay_full
      spaces
      LV maximum size limit of 2TB ensured in _lv_setup()
      test printf removed
      First cut on "pvcreate -s"
      Forgot to remove test printf :-)
      Second path on "pvcreate -s"
      Removed wrong 'lv->vg' argument from lv_is_cow() call. Is used in lv_is_cow internally.
      Avoid ambigous volume_group argument in vg_add_snapshot()
      lvmdiskscan
      pvresize command
      Changed DEFAULT_PV and DEFAULT_LV to 256 (has been fixed in LVM1 before)
      Corrected lvcreate synopsis.
      tiny tidying
      minor cleanup
      first changes to get comms back to work after flock changes
      o checking in instrumented code for AJ to follow up on comms and logging
      Introduce exit() in main() and cleanup signal settings for parent/child
      more dm_get_registered_device() code
      working dm_get_registered_device(). dmevent.c update to use it.
      o libmultilog needs introducing of list locking in order to stand
      Exit after last unregister_for_event()

James Antill (2):
      Fix Py_BuildValue for i386
      python-lvm: Add snapshot support

Jim Meyering (62):
      Don't leak a file descriptor in _lock_file when flock fails.
      Introduce is_same_inode macro, now including a comparison of st_dev.
      In _line_append, use "sizeof buf - 1" rather than equivalent "4095"
      Use gcc's printf attribute wherever possible.
      Eliminate uses of strdup+basename. Use last_path_component instead.
      dm_fclose: new function
      libdevmapper, dmeventd: be paranoid about detecting write failure
      Detect stream write failure reliably; new fn: lvm_fclose; use dm_fclose
      Introduce log_sys_* macros from LVM2.
      Make the libdevmapper version of create_dir equivalent to the LVM2 one.
      Export dm_create_dir (was create_dir) to help fix LVM2 link error
      Remove create_dir function; use now-equivalent dm_create_dir instead.
      Don't leak a file descriptor in fcntl_lock_file(), when fcntl fails.
      Make lv_rename's interface "const correct".
      For consistency, rename local variable: s/newname/new_name/g.
      Add "const" attributes where possible: first cut.
      factor out some duplication -- mostly I/O redirection
      Avoid static link failure with some SELinux libraries.
      Include strerror string in dev_open_flags' stat failure message.
      Diagnose invalid PE values given on the pvmove command line (64-bit systems).
      Avoid static link failure with some SELinux libraries.
      configure: regenerate, to remove vestige of an upcoming patch
      Create a symlink, e.g., libdevmapper.so.1.02, in the build dir,
      Add testing framework, along with first few tests.
      Allow relative dir name in: --with-dmdir=../device-mapper
      Clean up shared-lib support in test/.
      Test how lvcreate handles its command-line options.
      Clean-up and wording changes; add copyright notices.
      test/Makefile.in (lvm-wrapper): Use $(DMDIR)/lib/, not $(DMDIR)/lib/ioctl/.
      * configure.in (AC_CONFIG_FILES): Remove the test/*/Makefile names
      test/t3000-lvcreate-pvtags.sh: Use better test names.
      Correct typo in comments: s/is part of the LVM2/is part of LVM2/.
      Rename test scripts not to include the 4-digit number.
      After a diagnostic, suggest --help, rather than printing all --help output.
      Print --help output to stdout, not stderr.
      Don't emit a trailing newline to stderr.
      Avoid over-quoting in shell scripts.
      doc/testing.txt: Fix typo: s/this/thing/.
      Avoid link failure when building fsadm.
      Arrange for "make clean" to remove the symlink, too.
      Revert last change.  fsadm must not depend on -llvm.
      Fix the fsadm build failure without using -llvm.
      Allow $DM_DEV_DIR envvar to override default of "/dev".
      Run tests with LVM_SYSTEM_DIR pointing to private root and /dev dirs.
      Avoid spurious test failure when compiled with readline support.
      is_orphan: make parameter "const" to avoid compiler warning
      Remove redundant if-before-free tests in clvmd.c.
      Remove redundant if-before-free tests.
      * lvm-utils.sh (init_root_dir_): Correct a diagnostic.
      break (rather than return) so we have only one point of return
      Makefile.in: correct distclean rule
      Don't deref uninitialized log_lv upon failed mirror addition.
      Begin syncing configure.in for merge/unification with device-mapper.
      avoid compiler warning about cast in OFFSET_OF macro
      avoid link failure when configuring without --enable-readline
      avoid link failure when configuring without --enable-cmdlib
      configure: regenerate
      lvm2_run: don't return uninitialized for _memlock_inc or _memlock_dec
      Don't make configure fail when readline library is not available.
      configure: regenerate
      Avoid compiler warnings (provoked by new configure.in bug) on RHEL5.
      configure: regenerate

Joe Thornber (388):
      o checked in the new driver, and the uml dir
      o added a description
      Just syncing with the office.
      o missed one
      o proc interface is getting there.
      o changed _dev_lock to a rw_semaphore
      o implemeted dm_start_table/dm_add_entry/dm_complete_table as used by
      o dm_activate/dm_close
      o Populating with stuff from experimental
      o 2.4.9 support
      o make dm.c compile
      o dm-table compiles
      o dm-target compiles
      o wasn't including dm-fs.o in the build
      o dm-fs compiles, I've forgotten to register the device in /proc though
      o quick hack to get the proc entry registering
      o call dm_init_fs
      o set permissions on /proc/device-mapper/control to -w-w-w
      o _get_workd was always returning the end on iput
      o fix get_word
      o _tok_cpy was broken
      o wu macro was doing a read unlock
      o added brackets to make t->name = (char *) (t + 1) more explicit
      o fs_add and fs_remove actually create/remove the device now
      o chagngesd alloc to return 0 on success
      o map loads ok now
      o dm_add_target was returning 0 an error when it shouldn't
      o you can now load maps repeatedly without hanging
      o a couple of patches we'll need for deviec-mapper
      o ACtual source code patch
      o added proper suspend/resume support, it now waits for all 'in flight' io's
      o more deferred io stuff
      o change format of table line to <start> <len> <target> ...
      o various little tidy ups
      o split uml part out
      o rebuilt 00_latest
      o stray return -ENXIO in reuqest [Jens Axboe]
      o allocate io_hooks from a slab
      o tidy ups
      o split struct mapped_device into mapped_device and dm_table
      o added reference counting to the destination devices, make sure that the
      o added global dm_table_lookup_device(path)
      o Various tidy ups [Andrew Clausen]
      o added new constant CHILD_PER_NODE to make things clearer
      o Added two new functions get_child [Andrew Clausen] and get_node.  I think
      o more tidy ups from Clausen.
      o first sattab at custom fs.  Very rough ATM.
      o quick tidy up
      o remove steve's insane ramblings from my code.
      o typos
      o It should build now
      o table creation works again.
      o rewrite of dm_user_bmap, not tested though.
      o generic hash table to store void *'s, not efficient, but adequate for LVM.
      o logical data structures
      o list.h from kernel for userland tools to use.
      o I'm splitting dev-manager in two.  dev-cache is the bottom layer that
      o added filter type.
      o missing *
      o drop the reference counting in the devices.
      o get block size moved to dev-io.c
      o changed dev-manager to a dev_filter
      o Test program for dbg_malloc unit.
      o test program for the hash table.
      o test program for the device cache
      o code sync for dev-cache.c
      o I've moved the dev-cache and dev-io into here since this directory has a
      o moved dev-cache to device dir
      o added dev-cache.c, dev-io and sorted source files alphabetically
      o Use the __alignof__ extension to set DEFAULT_ALIGNMENT to that required
      o got dbg_malloc_t working, Alasdair could you look at the Makefile.in it
      o forgot to add this before
      o define the uintN_t types
      o vg_read for format1
      o finished writing extent reading code
      o low level write path
      o replace {stack; return 0;}'s with a macro (just for this file).
      o end of day sync
      o test program for reading a vg
      o get things compiling
      o makefile for read_vg_t
      o read_vg_t compiles
      o we were stuill building dev-mgr files
      o sync
      o dev_cache_t program works
      o read_vg works (or so it claims)
      o added pretty printing to read_vg_t, run this on your system
      o get_pvs for format 1
      o test program for get_pvs
      o get_pvs now works for format 1
      o pv_Read works
      o get_vgs works
      o vg_write compiles
      o hack, hack, hack
      o remove spurious log message
      o change pv_read to take a name rather than a device
      o dev-mgr disappears
      o proposed interface to the kernel driver
      o spot empty list in build_vg
      o remove another spurious error message
      o fix seg fault while reading extents
      o stub pv_write to stop tools crashing
      o Code to calculate the metadata layout.
      o add munging for format1 and 2
      o pv_write for orphan pv's
      o metadata.h was in here twice
      o AC_INIT was pointing to an old file
      o pv_setup for format1, this is the last one !
      o check for orphaned pv's when reading
      o return data not 1 in read_ov
      o dev_write
      o forgot to init a list head
      o sizeof(NAME_LEN), don't do that
      o uuid_list->id should be NAME_LEN wide
      o zero all of uuid
      o allocate and zero the extents before exporting the lv's
      o builds a very sub-optimal table
      o sync
      o pe_start wasn't being set properly when exporting to disk
      o calculate pv_numbers and lv_numbers for LVM1 support
      o vg->pv_act
      o pv->system_id
      o set PV_ALLOCATABLE flag correctly
      o a very quick hack to get vg_number right
      o initalise list_heads, initialise list_heads, initi ..
      o if contained &= instad of &
      o try incrementing pv_number from 1
      o pvcreate
      o made _single static
      o rename _single pvcreate_signle
      o lift call to check out of pvcreate_single
      o make ios the first argument to pv_create
      o vgcreate
      o First pass at the regex code.  lib/regex/matcher takes an array of regex's
      o Filter for the dev cache that takes values from config file:
      o tidying
      o removed 00_latest since it never is.
      o Filter which caches valid devices in a file.  Pass in init == 1 to the
      o composite filter that allows us to merge filters.  Think of it as &&'ing
      o forgot 'static'
      o forgot to retry on EINTR or EAGAIN, doh !
      o rethink of the persistent filter
      o test program for the new persistent filter.
      o forgot to use the path passed into _read_array.
      o removed old files
      o Updated 00_makefile
      o Merged common code between hash_destroy and hash_wipe.
      o added aliases list to struct device.
      o  Trivial binary tree
      o  Shuffle the keys to stop degeneracy.
      o  Remove a couple of warnings, and one bug in ttree.  Spotted by the optimiser
      o use dev_name(dev) to get the name of a device, this operation is cheap
      o  rfilter now checks all aliases for a match
      o  It's a bit of a hack, but the regex filter now makes sure a device path
      o  pfilter stores results for all aliases.
      o was freeing memory from the wrong pool
      o  rfilter was no longer accepting by default
      o  Add read_ahead and stripes to struct logical_volume
      o  random little fixes
      o  LGPL list implementation
      o  First pass at activation
      o build lv name from <vg>_<lv>
      o  adjacent extents are now merged into a single target when activating.
      o  code for building free area lists on a pv.  Compiles but not run.
      o  lv_manip.c will contain the code for lv_create, lv_extend and lv_reduce.
      o  Contiguous allocation
      o  lv_reduce
      o  Factor _allocate out for use by lv_extend
      o  lv_extend
      o  Another pass at the activation code
      o  pool_empty was very wrong
      o  Added lvs_in_vgs_opened
      o  Lot's to do
      o  more todo
      sync only, not ready yet
      o  Ready for testing
      o  Compile errors
      o  Split struct io_space into:
      o  Plug in fs_(add|del)_lv
      o  add uplink from vg to cmd_context
      o  add fs.c to the Makefile
      o  check result of an allocation
      o  if any pattern rejects a device, and there were no accepts then reject !
      o  Add ALLOC_SIMPLE
      o  Stuff
      o  Put underscore between vg and lv name.
      o  Deal with sparse lv arrays (on disk)
      o  Added dev_open and dev_close functions
      o  Prefix static var with '_'
      o  lvcreate no longer needs the explicit -n flag
      o  Use new info interface to dm.
      o  _emit_target wasn't spotting contiguous targets properly.
      o  Sync. only
      o  Oops, I thought this was checked in ages ago.
      o  Migration of device-mapper from LVM_WORK to it's own (public) repository.
      o  Don't use dmt->dmi until it has been initialised.
      o  Use MKDEV to build the dev_t for mknod
      o  Change name of libdm.h
      o  Remove hard coded path to /dev/device-mapper/control
      o  Removed _check_devfs
      o  You can now specify the dev directory for libdm
      o  There's no need to prefix dm_dir() with /dev/ anymore
      o  use the major number returned from dm_ioctl.
      o  Display major number
      o  Remove an old debug statement
      o  Make sure that every switch has a short option, even if it's
      o  sync the new in core rep. for Alasdair.
      o  segments will have to be held as an array of pointers since they're now
      o  make it obvious that stripe_segment is variable sized.
      o  More metadata changes.
      o  change chunk_size to stripe_size
      o  Sync up todays work on converting to the segmented representation of
      o  Get format1 building.
      o  These now compile.
      o extra error checking
      o  Turn on pool debugging by default (-DDEBUG_POOL)
      o  pool-debug.c contains an alternative implementation of pool that gets
      o  pool_free was leaving one block hanging around.
      o  Output the correct format for the stripe target
      o  I was reading striped volumes incorrectly.
      o  Striped allocator
      o Comparison function was sorting things in ascending rather than
      o  sync
      o  Pretty print and read for uuid's
      o  Update sample to a format that supports multiple vg's per file.
      o  Split import-export.c into two files.
      o  flags.c reads and writes a status bitset
      o  Add output_date
      o  pool-debug versions of begin_object, grow_object etc.
      o  Add error checking in _new_chunk
      o  pool-debug version of end_object wasn't returning the object.
      o silly bugs
      o Man page for dmsetup
      o  I figure if I can't remember how to use my code, then I should add
      I had another look at the argument processing code:
      o  Remove LVM_CONFIG_FILE environment variable.
      o  lvm_snprintf
      o  Add symlink for lvm-string.h
      o Use lvm_snprintf
      o  Changed the macro name in args.h from 'xx' to 'arg'
      o Shuffled completion functions around so we dont have to declare them
      o  history is now saved in ~/.lvm_history
      o sync the backup stuff
      o  sync backup changes
      o  Debug version of the pool_grow stuff.
      o  Added a quick vgcfgbackup, needs parameters as yet.
      o  Added section on the syntax of the config file, with an informal grammar.
      o  Added -r, --read-only switch to dmsetup for use with create and reload.
      o  High level archiving and backup functions.
      o  Revert to the 6-4-4-4-4-4-6 format for uuid's
      o sync laptop to test machine.
      o  Get format-text.c compiling.
      o  Added find_config_bool
      o  sync tool changes for backup stuff.
      o  tidy up renaming of archive files.
      o  New function 'merge_segments'
      o  vgcreate wasn't setting vg->cmd
      o  Introduction to pool for those without psychic powers.
      o  Remove anomalous punctuation.
      o  Reformat comments.
      o  new function backup_remove(const char *vg_name), to be called from vgremove.
      o  Let the comment wars begin.
      o  Put in the 'out of memory' log_err for pool.
      o  First pass at import.c.  Still waiting for label code for the uuid->pv
      o  vgcfgrestore.
      o  Moved the current label.[hc] sideways to lvm2_label.[hc]
      o  _read_id function for import.c
      o  label.c now compiles.
      o  Put in the pv_hash which stores the pv section name -> pv struct mapping.
      o  Reformat comment and correct typo.
      o  LVM1 labeller.
      o  Non-caching implementation of new vgcache interface.
      o  split the uuid -> device map out from vgcache
      o  vgcfgrestore works ! (with the couple of examples I tried).
      o  Actually check in vgcfgrestore.
      o  Knock out the "'%s' is not a block device" debug message.
      o  Add pvmove to the stub file.
      o  Set the segment counter back to 1, for a new LV.
      o  lvm.conf file that contains the same settings that would be assumed if it
      o save before committing
      o  move the path building functions to lib/activate/names.c
      o  removed display_uuid
      o  lvdisplay now gives a segment map for the -m option.
      o names.[hc]
      o  Changed find_pv_in_vg, and find_lv_in_vg to return a struct pv_list * and
      o  Changed
      o  Typo in comment
      o  fail if create_pv_list would produce an empty list.
      o  Similar changes for lv_list.
      o  Allow fractional parts for size args. eg, lvcreate -L 34.4M
      o  Fix inverted logic in list_empty test.
      o  added BUGS file.
      o  Cut and paste description of how pvmove works that I was mailing someone.
      o typo
      o  Remove pointless calculation.
      o extra fid parameter to lv_manip fns
      o  Add extra parameter to lv_manip fns
      o Add check for > 65k extents in a single lv.
      o  Limit for number of extents should be 65534.
      o  Tidy
      o  There were some alignment problems with pool-debug which I've resolved
      o  Remove redundant dbg_free.
      o  Add cmd_line field to struct cmd_context
      o I decided that the archive_format shouldn't really be a format at
      o  Added functions to display what's in the archive.
      o  Little recipe for testing LVM2 with loopback devices.
      o  Split activate.c into a high level (remaining in activate.c) and low level (ll-activate.[hc]) API.
      o Turn the device_create_* functions into device_populate_*, they only
      o  First changes to add snapshot support.
      o  First pass at format1 snapshot support.
      o snapshot support for the text format.
      o  Define _read_uint32
      o  Initialise the snapshot list properly in vgcreate.
      o  split lvcreate into seperate functions for parsing the command line,
      o  Add support for the -s and -c flags to lvcreate.
      o  small bug in the format1 export code for snapshots.
      o  Removed the -z (suspend) option from the tools
      o  misc little fixes.
      o  add find_cow function.
      o  typo
      o Added a macro called hash_iterate, that is similar to list_iterate
      o hash_iterate -> hash_iter
      o  Remove the vg argument from find_cow
      o  Sync with cvs, dev_manager still needs to be wired into activate.c
      o  More dev_manager work.
      o  In go the populate functions.
      o  More dev_manager fns.
      o  Removed old files
      o _build_name was allocating 1 byte too few, which meant the
      o  Format1 wasn't recording the snapshot chunk size properly
      o point snapshots at origin:real rather than origin:top, and *ping*
      o  Break creating a snapshot down into:
      o  I was tearing down device bottom-up instead of top down.  Which
      o  Bad dependency, meant the origin was always getting activated.
      o  Add a line to lvdisplay to say if the volume is a snapshot.
      o  Add support for getting dependencies for a device.
      o  Rename dmsetup dependencies -> dmsetup deps
      o Top level device is now just called <vg>-<lv> (there's no 'top'
      o  Add comment describing what we're aiming for with dev_manager.
      o  First cut at dev scanning.
      o  Add active_list to dev_manager
      o  knock out the offset for origin targets.
      o Comment out some new code that was preventing pjc activating
      o  dm->active_list now filled in, ATM this is based on the layer name rather
      o This should complete the dev_manager alg.  Please could people now
      o  Actually check that the vg directory is empty rather than speculatively
      o  Mention that vgscan needs to be run after changing the filter var.
      o dev_manager_suspend, untested.
      o  Perform a BLKFLSBUF ioctl whenever a block device is closed.
      o  Drop the default chunk size for snapshots down to 16k.
      o  Added support for chunk_size to lvcreate.
      o  Stop printing errors if flushing fails (could be an unconfigured device).
      i)  Put back chunksize_ARG for lvcreate.
      Drop the default chunk size for snapshots down to 8k
      o	Remove ext3 incompatibility bug
      o  Knock the version check out of the makefile, Alasdair will no doubt put it back :)
      o  Add version number to text format.
      i)  There's now a seperate field in struct logical_volume that stores the
      i)  Added a little macro to aid defining the status flags.
      i)  Add the VISIBLE flag to the text format.  (Other changes are pending
      o  Test program for the config unit.  Just reads a config and then writes it
      o  0 was used rather than NULL in a couple of places.
      o  Added new value type CFG_EMPTY_ARRAY, to indicate '[]', useful since we use
      o  Make sure the status parsing code can deal with an empty array.
      o  Remove e2fsadm to stop people waiting expectantly for something that isn't going
      o  Anchor support for the regex engine.
      o  Give an example filter that uses anchors.
      o  inline _step_matcher
      HAT_CHAR and DOLLAR_CHAR were defined to the same value !
      Report generators for unit tests and memory checks.  Configure with
      Move tests from old-tests/regex to unit-tests/regex.  unit-tests will
      Wire the regex tests up to the reports
      Add a unit test for the recent changes to dm_bit_get_next()
      [UNIT-TESTS] add test for the recent dm_bitset_equal() function
      [UNIT-TEST] test for recent dm_bit_and() function
      [REGEX] add a fingerprinting facility to allow test code to compare dfas
      [REPORT-GENERATORS] cut down stylsheet.css to what we actually use
      [REGEX] another matcher_t test with a larger set of regexes, only interested in the fingerprint
      [REGEX] reduce the number of charset nodes that are produced
      [REGEX] factor _calc_state() out of _calc_states()
      [REGEX] remove the state_queue structure.
      [REGEX] calculate dfa states on demand
      [REGEX] matcher_t unit test now takes a flag to turn on fingerprinting
      [REGEX] add a unit test for regexes containing chars with value over x80
      [REGEX] Parse regexes that contain chars with value > 0x80
      [REGEX] fix bug in matcher that was causing segfault with chars of 0x80 and over.
      [MM] Make valgrind aware of the pool allocators
      [REGEX] fix a long standing off-by-one error (found by valgrind-pool)

Jonathan Brassow (93):
      TEST (lvcreate-raid): Allow more time for RAID arrays to sync
      TEST (lvconvert-raid): localize a function variable
      TEST (lvconvert-raid):  Turn on RAID conversion testing under snapshots
      RAID:  Fix extending size of RAID 4/5/6 logical volumes.
      TEST (lvresize-raid):  Don't run test when RAID module doesn't exist
      TEST: Add library functions for checking and waiting for sync
      TEST:  Replace old sync test/wait functions with new library functions
      RAID: Fix segfault when attempting to replace RAID 4/5/6 device
      Forgot to update WHATS_NEW for commit 5555d2a000ed4e3d5a694896f3dc6a7290543f43
      TEST:  Conditionalize RAID tests on whether the dm-raid module exists
      vgextend:  Allow PVs to be added to VGs that have PVs missing
      RAID: Improve RAID argument handling.
      RAID:  Add support for RAID10
      TEST (lvresize-raid):  Also test resizing of RAID10
      cleanup:  Use segtype->ops->name() instead of segtype->name where applicable
      RAID: '--test' should not cause a valid create command to fail
      RAID:  Disallow addition of RAID images while array is not in-sync
      cleanup:  Reduce indentation by short-circuiting function
      cleanup:  Restructure code that handles mirror resyncing
      RAID:  Properly handle resync of RAID LVs
      TEST:  Add missing test for RAID module version
      RAID1:  Like mirrors, do not allow adding images to LV created w/ --nosync
      RAID1:  Clear the LV_NOTSYNCED flag when a RAID1 LV is converted to linear
      mirror:  'lvconvert --resync' should reset LV_NOTSYNCED on corelog mirror
      RAID: Fix problems with creating, extending and converting large RAID LVs
      RAID:  Do not allow RAID LVs in a cluster volume group.
      [lv|vg]change:  Allow limited metadata changes when PVs are missing
      TEST:  Add lvchange-partial.sh and vgchange-partial.sh to the test suite
      Clean-up:  Adjust message to be clearer on action taken and why
      RAID:  Add "raid10" to lvcreate man page.
      TEST:  Re-add testing of lvconvert-raid for kernels < 3.2
      mirror/raid:  Move 'copy_percent' to common code (mirror.c -> lv_manip.c)
      RAID:  Make RAID 4/5/6 display sync status under heading s/Copy%/Cpy%Sync
      WHATS_NEW:  Entry for commit e1917809477c4850cc1094121001d61a2b70ef26
      mirror:  Avoid reading from mirrors that have failed devices
      mirror:  Avoid reading mirrors with failed devices in mirrored log
      mirror:  Mirrored log should be fixed before mirror when double fault occurs
      RAID:  Do not allow --splitmirrors on RAID10 logical volumes.
      RAID:  If no stripes argument is given for RAID10 create, default to 2
      man page (lvcreate):  Better explain stripes option for RAID 4/5/6.
      pvmove/RAID:  Disallow pvmove on RAID LVs until properly handled
      RAID:  Limit replacement of devices when array is not in-sync.
      Test (RAID):  Test for RAID10 activations when devices are missing
      RAID:  Add RAID status accessibility functions
      RAID:  Cache previous results of lv_raid_dev_health for future use
      RAID:  Improve 'lvs' attribute reporting of RAID LVs and sub-LVs
      WHATS_NEW:  Better description of previous change
      clean-up:  Another functiont that can use 'lv_layer'
      clean-up:  Rename lvm.conf setting 'mirror_region_size' to 'raid_region_size'
      RAID: Make 'vgreduce --removemissing' work with RAID LVs
      RAID:  Allow remove/replace of sub-LVs composed of error segments.
      clean-up:  Remove a FIXME question that has been settled
      RAID:  Add new 'raid10_segtype_default' setting in lvm.conf
      vgimport:  Allow '--force' to import VGs with missing PVs.
      RAID:  Make 'lvchange --refresh' restore transiently failed RAID PVs
      clean-up:  Typo 's/should had/should have/'
      RAID:  Code changes missing from previous commit (bbc6378)
      test: Fix the way in_sync calculates the sync field location
      RAID:  Capture new RAID kernel sync_action status fields
      WHATS_NEW: Include entry for RAID status func improvements
      mirror:  Fix overly-concerning warning on mirror up-convert failure.
      RAID:  Add scrubbing support for RAID LVs
      RAID:  Revert previous commit that allowed identical table loads.
      WHATS_NEW:  Add WHATS_NEW entry for previous commit.
      CLEAN-UP:  Better string checking to avoid substring matches
      RAID:  Add writemostly/writebehind support for RAID1
      Clean-up: Replace 'lv_is_active' with more correct/specific variants
      Clean-up:  Fix copy-n-paste error
      DM RAID:  Add ability to throttle sync operations for RAID LVs.
      TEST: Fix 'dd' overrunning device size and causing test failure
      RAID:  s/int/uint32_t for dev_count in dm_status_raid struct
      RAID: Remove optimization using static vars in lv_raid_dev_health
      RAID/MIRROR: Honor mirror_segtype_default when upconverting linear LVs
      Clean-up: WHATS_NEW
      TEST: Test RAID syncaction, writemostly, & refresh under snapshots
      cleanup:  Remove message used for development
      RAID: Fix segfault when reporting raid_syncaction field on older kernel
      TEST: Update syncaction test to match latest kernel updates
      TEST: Support testing new RAID features in RHEL6 kernels
      Man Pages:  Update man pages to reflect changes to various RAID options
      Clean-up:  Addressing a few FIXME's
      Revert a previous change
      dmeventd: Fix memory leak
      RAID: Make "raid1" the default mirror segment type
      RAID: Make "raid10" the default striped + mirror segment type
      TEST: Be explicit about which mirror segment type to use.
      Mirror/RAID1: When up|down-converting default to segtype of current LV
      Mirror: Fix issue preventing PV creation on mirror LVs
      WHATS_NEW: update WHATS_NEW for previous commit
      RAID: Fix bug making lvchange unable to change recovery rate for RAID
      WHATSNEW: typo
      RAID: Fix bug making lvchange unable to change recovery rate for RAID
      Mirror: Fix inability to remove VG's cluster flag if it contains a mirror

Jonathan Earl Brassow (212):
      - make noop use multilog
      - likely cut and paste error.  Fix wrong function name in debug
      lib/activate/activate.c:_lv_activate tries to monitor a device
      - cleanup excessive indentation in tools/lvconvert.c:lvconvert_mirrors
      This patch changes the arguments that specify the mirror
      minor updates to the lvcreate/lvconvert man pages.
      - change new log_ARG variable to more explicit mirrorlog_ARG.
      When mirrors are created with the --nosync option, a status flag
      - I neglected to update this file on last check-in, which fixed
      - The automatic log module loading patch proposed for the upstream kernel
      Initial import of the cluster log daemon from the 'cluster' repository.
      - Updating cluster log with latest code changes/bug fixes before
      Rebasing the cluster log daemon code from the most current
      After rebasing the cluster logging code, adjustments need to be
      Making adjustments to go along with the changes to the kernel.
      Remove old custom list macros and replace with libdevmapper list
      Cluster log daemon (clogd): use LVM bitops in place of ext2 bitops
      cluster log daemon (clogd): Add to LVM build system
      update WHATS_NEW
      mirror table generating code:  Properly handle 'block_on_errors' and 'cluster' features
      configure script:  A couple unwanted changes snuck in.
      Cluster log server (clogd):  Add new build files.
      cluster log daemon (clogd): Adjust for kernel CTR arg reordering
      '_emit_areas_line' returns 1 for success and 0 for failure.  This always
      I saw this in a bug report:
      Clarify message:
      s/=/==/  Typo was causing sub test to always return success.
      The patch fixes some lvconvert issues (WRT mirror <-> mirror).
      - forgot to update WHATS_NEW along with bug fix for keeping
      This patch adds the capability to split off a mirror legs.
      udpate WHATS_NEW file for --splitmirror checkin
      Add the new mirror log type "redundant".  The options are now:
      update comment
      Found 2 problems with my previous check-in:
      Testsuite updates and fixes for recently added features.
      Add new test cases for mirrors that are under snapshots.
      Off-by-one count was causing not all the mirror table parameters
      At some point "clustered_[core|disk]" was changed to "clustered-[core|disk]".
      udpate WHATS_NEW*
      When moving the cluster log server into the LVM tree, the in memory
      Make the intermachine communication structures architecture independant
      initial cmirrord man page
      Initial version of the cmirrord init script
      Use tabs, not spaces.
      Fix some compiler warnings.
      Fill in a little more on the man page for cmirrord
      a little more information for the cmirrord man page
      Was using dm_list_iterate_items when I should have been using
      Adding a new mimage (leg/copy) to a mirror behaves differently
      Add ability to create mirrored logs for mirror LVs.
      For the mirror repair tests, we should use --ignoremonitoring because
      We only need one extent for the mirror log.  So, when specifying
      Arguments to the --mirrorlog option are described in the synopsis as
      Disallow the primary mirror image from being removed when the
      Disallow the addition of mirror images while a mirror up-convert
      The following tests in the testsuite have race conditions:
      Patch to fix bug 586021 and mantain historical behavior of
      Fix comment from last commit.  Additionally, there is no need
      Don't attempt to convert the log type of an LV if the LV
      Test all combinations of mirror conversion, both while the LV
      If we are checking if '--nosync' was called with the mirror argument,
      Disallow toggling the cluster attribute of a volume group if there
      daemons/cmirrord/functions.c (part of cmirrord) was referencing
      Add error checking for calls to sprintf - it can fail for more
      Mirrors can be layered - as in the case of an converting 2-way
      The function that runs to compress a stacked mirror after
      Committing Taka's patch...  He found a problem during
      update WHATS_NEW file with entry for simultaneous mirror image and
      Fix for bz608048 from Taka...
      Fix for bug 607347: failing both redundant mirror log legs...
      Finish fix for bug 607347: failing both redundant mirror log legs...
      Failed to test for the case where a log was requested to be removed
      Fix for bugs: 612248 & 612291 Split mirror issues
      Fix for bug 612311: Split of linear provides no error msg
      Fix reversal of LV list before performing a split mirror.
      Fix for bug 614164: No check for existing name when splitting mirror
      It's not enough to check for the kernel module in the case of cluster
      Building without the '--enable-cmirrord' option means that
      Initial import of document describing LVM's policies
      Disallow mirrored logs in cluster mirrors.
      Taka's fix for handling failure of all mirrored log devices and
      A misunderstanding of the return value of 'dm_bit' has been causing a data
      Fix for bug 619221 - log device splitting regression
      Fix for bug 612291: dm devices of split off mirror images are not removed
      Fix for bug 596453: multiple mirror image failures cause lvm repair...
      This patch fixes a potential for I/O to hang and LVM commands
      This patch fixes a problem where the mirror polling process
      This patch fixes an issue where cluster mirror write I/O
      Fix for bug 637936: killing both redundant logs causes deadlock
      Fix bug 632681: cmirrord shouldn't fail 'start' if already started
      Change to correct cmirrord return code is user visible - update WHATS_NEW
      Fix bug 635949: lvconvert man page clarification
      Prevent the user from simultaneously adding a mirror log while removing
      Reverting recent commit to disallow adding/removing mirror log while
      Add disk to mirrored log type conversion.
      s/log_verbose/log_error/ - Increase log level on error message.
      Add test to make sure that a log device is retained when a
      Remove duplicate statement (pasted twice by patch at some point?)
      fix bad 'strcmp's in 'decode_lock_type' - missing !'s
      Allow snapshots in a cluster as long as they are exclusively
      orginal WHATS_NEW entry was changed to be less in-line with change it
      bug 659264: more examples for pvmove
      Fix for bug 677739: removing final exclusive cmirror snapshot,
      gdbinit - A GDB init file to help while debugging LVM.
      detect RAID* LV and segment flags.
      lv_status_r has been fixed-up so that it supports infinite LV stacking
      lv_status_r now prints out status of attached log LVs
      Watch out for collisions in GDB global namespace.
      cosmetic change - swapping one macro for another
      Replace malloc with zalloc when creating segment_type's
      Fix unhandled condition in _move_lv_segments
      s/MIRROR_NOTSYNCED/LV_NOTSYNCED/ - Flag will may refer to more than just mirrors
      gdbinit update
      This patch adds the ability to extend 0 length layered LVs.  This
      Thanks to Zdenek Kabelac (kabi) for pointing out that I was using
      Fix issue preventing cluster mirror creation.
      Fix to preserve exclusive activation of mirror while up-converting.
      Remove unnecesary conditional.
      Fix error message - the parameter name is '--mirrorlog' not '--log'
      RAID updates for gdbinit file
      LVM2 RAID design doc
      Fix potential null ptr deref in 'origin_from_cow'
      Remove and unneeded parameter from build_parallel_areas_from_lv()
      Add basic RAID segment type(s) support.
      Fix compiler warning.
      Fix renaming of RAID logical volumes.
      Add RAID metadata devices to considered devices in _add_lv_to_dtree.
      Add dmeventd monitoring for RAID devices.
      Need 'ifdef' checks around RAID monitoring functions as well to catch the
      Add ability to down-convert RAID1 arrays.
      Add some log_error msg's and fix potential segfault
      Add missing checks for function return codes.
      Various code clean-ups (s/malloc/zalloc/, new msgs, etc)
      Compiler warning fixes, better error messaging, and cosmetic changes.
      When down-converting RAID1, don't activate sub-lvs between suspend/resume
      Add --splitmirrors support for RAID1 (1 image only)
      Add the ability to split an image from the mirror and track changes.
      Add support for m-way to n-way up-convert in RAID1 (no linear to n-way yet)
      Add ability to merge back a RAID1 image that has been split w/ --trackchanges
      Move RAID convert tests to new file, t-lvconvert-raid.sh
      Fix for bug 732142: Unsafe table load during mirror image split
      Updates to gdbinit file
      Adjust gdbinit script to new RAID status flag values.
      reorder some status flag printing in gdbinit file.
      Fix for bug 733114.
      Fix for bug 737125 - unable to create mirror on 1K extent size VG
      Changing RAID status flags to 64-bit broke some binary flag operations.
      Better fix for bug 737125 - unable to create mirror on 1K extent size VG
      Fix for bug 737200 - Can't create mirrored-log mirror on a VG with small extents
      Fix bug 733400 - Mirror down conversion when specifying the secondary leg is broke
      Fix for bug 734252 - problem up converting striped mirror after image failure
      Additional fixes for lv_mirror_count.
      After suspend/resume following a splitmirror op, call sync_local_dev_names
      Fix Bug 738832 - core to disk log conversion fails with internal error
      fix compiler warning.
      When up-converting a RAID1 array, we need to allocate new larger arrays for
      Disallow the creation of mirrors (mirror or raid1 segtype) with only one leg.
      Add 'Volume Type' lv_attr characters for RAID and RAID_IMAGE.
      Update the RAID design doc to reflect some of the new options introduce (e.g.
      update man page for new RAID lv_attr characters.
      New handy gdb debugging function, "dm_list_size"
      Fix vgsplit when there are mirrors that have mirrored logs.
      This patch fixes issues with improper udev flags on sub-LVs.
      Revert initial solution to bug 733114 - I/O error message during splitmirror
      Fix splitmirror in cluster having different DM/LVM views of storage.
      Allow 'nosync' extension of mirrors.
      Add the ability to convert linear LVs to RAID1
      Add the ability to convert LVs of "mirror" segtype to "raid1" segtype.
      Update stale libdm/misc/dm-log-userspace.h
      cmirrord now returns log name to kernel in CTR so it can be registered
      Use a more correct macro for 'seg_is_linear'
      Fix bad lvconvert help output.
      Disallow 'mirrored' log for cluster mirrors.
      Update lvconvert man page to describe '--type <segtype>' argument
      Support the ability to replace specific devices in a RAID array.
      The LV_REBUILD flag is not internal - bad comments in metadata-exported.h updated
      Do not allow users to change permissions on RAID sub-LVs.
      WHATS_NEW for previous commit.
      Do not allow users to change the name of RAID sub-LVs or the name of the
      Don't allow size change of RAID LV that is tracking changes for a split image
      Don't allow two images to be split and tracked from a RAID LV at one time
      Add policy based automated repair of RAID logical volumes
      Preserve exclusive activation of cluster mirror when converting.
      Fix the way RAID meta LVs are added to the dependency tree.
      Use suspend|resume_origin_only when up-converting RAID LVs, as mirrors do.
      Fix bug that caused RAID devices to be unable to activate if sub-LV was missing.
      Fix possible NULL pointer dereferences when updating mirror log.
      Change confusing message that is printed when a RAID device fails.
      Make conversion from a synced 'mirror' to 'raid1' not cause a full resync.
      Fix a bad return code in 'lvconvert_raid'
      Add some messages that indicate completion of RAID device replacement.
      *** empty log message ***
      Allow 'lvconvert --repair' to operate on RAID 4/5/6.
      Fix allocation code to allow replacement of single RAID 4/5/6 device.
      Require number of stripes to be greater than parity devices in higher RAID.
      Allow cluster mirrors to handle the absence of the checkpoint lib (libSaCkpt).
      s/CPG_/CS_: Various CPG constants are going away, even though CPG itself stays
      Fix name conflicts that prevent down-converting RAID1 when specifying a device
      Add a couple new functions to gdbinit file and decode a couple lv->status flags
      Commit ID 46a75dedb4f6aa815a804f27cafbd3fd16a62011 consolidated code from the
      RAID LVs could not handle a down-convert if a device other than the last one
      Fix inability to split RAID1 image while specifying a particular PV.
      Fix code that performs RAID device replacement while under snapshot.
      Fix for bug 807776: invalid lvconvert --merge output should mention raid1 now
      Unlike 'mirror' segtype, 'raid1' should perform flush	on suspend.
      Prevent resume from creating error devices that already exist from suspend.
      Allow a subset of failed devices to be replaced in RAID LVs.
      Disallow changing cluster attribute of VG while RAID LVs are active.
      Fix bug in cmirror that caused incorrect status info to print on some nodes.
      Make a note that "raid1" is not cluster-aware in the example lvm.conf.
      Disallow snapshots of mirror segment types.
      Fix up-convert when mirror activation is controled by volume_list and tags.

Marian Csontos (7):
      lvmetad: Skip redundant checks on no input
      Remove redundant (potentially harmful) semicolon
      [lvmetad] Continue reading/writing on EINTR
      Fix tests to accept extended attribute
      cleanup: remove unused variable
      version: update
      lvmetad: use dm_config_destroy to free pvmeta

Mike Snitzer (131):
      Add vgimportclone and install it and the man page by default.
      Fix rpmlint in clvmd initscript
      Fix 'service-default-enabled' rpmlint in clvmd initscript
      Various vgimportclone fixes:
      Use the MD device's stripe-width, instead of chunk_size, to align the
      Allow commandline sizes to be specified in terms of bytes and sectors.
      Reword the WHATS_NEW commandline sizes update.
      Continue to make --units and --size consistent (in code and man pages):
      Add extended device (blkext) and MD partition (mdp) types to filters.
      Check MD devices for a partition table during device scan.
      Cast MAJOR() and MINOR() to int when used with "%d" in dm_snprintf() call.
      Cast MINOR() in _md_sysfs_attribute_snprintf()'s dm_snprintf() call.
      Formalize pe_start policy as split between .pv_setup and .pv_write.
      Fix _mda_setup() to not check first mda's size before pe_align rounding.
      Remove legacy support for preserving pe_start if a PV already has data
      Preserve pe_start in .pv_setup and .pv_write if pe_start was supplied.
      Add --dataalignmentoffset to pvcreate to shift start of aligned data area
      Revert 'preserve_pe_start' related code in _text_pv_setup
      Disable the "new pe_start policy"
      Fix compile warnings from recently added log_very_verbose() in _text_pv_write()
      Add devices/data_alignment_offset_detection to lvm.conf.
      Add devices/data_alignment_detection to lvm.conf.
      Improve ability to lookup primary device associated with a partition
      Retrieve MD sysfs attributes for MD partitions
      Fix error handling of device-related stat() calls to be ENOENT aware.
      Added basic pvcreate --dataalignmentoffset testing to t-pvcreate-usage.sh
      Fix pvcreate on a partition (regressed in 2.02.51).
      Switch status from 32-bit to 64-bit
      Add a [--poll {y|n}] flag to vgchange and lvchange to control whether
      Return error to dm_tree_preload_children() and
      Return error to dm_tree_suspend_children() callers.
      Return error to dm_tree_deactivate_children() callers.
      Add missing 'stack;' for all suspend_lv and resume_lv callers.
      Add missing 'stack;' for all activate_lv and deactivate_lv callers.
      Use snapshot metadata usage to determine if snapshot is empty
      update WHATS_NEW and WHATS_NEW_DM with previous commits' changes
      . update documentation for --poll in the vgchange and lvchange man pages
      Change background polldaemon's process name to "(lvm2)".
      remove unused variable 'i' that was recently introduced in lv_add_segment
      Reset _vgs_locked in lvmcache_init()
      remove errant comment fragment
      Only allow one return from poll_daemon().  If a child polldaemon was
      Add 'SNAPSHOT_MERGE' lv_segment 'status' flag.
      Add support for "snapshot-merge" target.
      Conditionally push down either the "snapshot-origin" or
      Merging device is loaded with "-cow" suffix and with base name of the
      Add --merge support to lvconvert to start merging a snapshot into its
      Do not allow merging over mounted logical volumes.
      Report merging snapshot as 'S' instead of 's':
      When there is merging snapshot, report percentage on the origin LV.
      Background poll for lvconvert --merge command.
      Start background polling of merging stores on:
      Reload origin if merging has stopped.
      When turning merging origin into non-merging origin, there is bad sequence:
      Merge on activate support.
      Update lvconvert manpage for snapshot --merge
      Add snapshot merge wrappers to abstract the associations and flags used
      Rename segment and lv status flag from SNAPSHOT_MERGE to MERGING.
      update WHATS_NEW and WHATS_NEW_DM to include snapshot-merge changes
      Improve target type compatibility checking in _percent_run().
      Detect case of both merging_store and cow_store supplied in
      Change dev_manager_mirror_percent()'s 'struct logical_volume *' to be
      update test/t-pvcreate-operation-md.sh attempt loading raid0.ko if raid0
      Add a common way to establish a scsi_debug-based 4K drive for use by an
      test/t-topology-support.sh requires scsi_debug from >= 2.6.31
      add test/t-snapshot-merge.sh to provide coverage of snapshot-merge support
      Add t-topology-support.sh and t-snapshot-merge.sh tests.
      Preload the origin prior to suspend IFF snapshot(s) still exist after a
      Removed inactive_table check from _lv_has_target_type.  This check
      Eliminate extra ioctls just to check open_count in _add_new_lv_to_dtree.
      Default to checking LV's progress before waiting in _wait_for_single_lv.
      move WHATS_NEW entries whose changes were made after 2.02.60 to 2.02.61
      Add %ORIGIN support to lv{create,extend,reduce,resize} --extents option
      Prepare for _get_lvconvert_vg() reuse as part of a larger lvconvert.c
      lvconvert --merge @tag support
      Switch lvconvert_single() over to using get_vg_lock_and_logical_volume()
      Add multiple snapshot lv 'lvconvert --merge @tag' support via process_each_lv().
      Remove false "failed to find tree node for <lv>" error from _cached_info().
      Add 'fail_if_percent_unsupported' arg to _percent() and _percent_run().
      Add 'fail_if_percent_unsupported' arg to _percent() and _percent_run().
      Refactor snapshot-merge deptree and device removal to support info-by-uuid
      Do not reload origin again in lv_remove_single() if it had a merging
      Handle a misaligned device that reports a -1 alignment_offset.
      testsuite: get stacktrace if test drops core
      Don't allow resizing of internal logical volumes.
      Improve activation monitoring option processing
      Revert having clvmd consult the lvm.conf "activation/monitoring".
      Fix clvmd cluster propagation of dmeventd monitoring mode.
      Use a real socket for singlenode clvmd to fix clvmd's high cpu load.
      Do not allow {vg|lv}change --ignoremonitoring if on clustered VG.
      Add additional test to start the snapshot merge (which had just failed
      Re-enable t-topology-support.sh
      When removing a snapshot avoid preloading the origin if the
      Remove redundant check in _lvs_single now that the caller
      Disallow the direct removal of a merging snapshot.
      Document 'clear' in dmsetup man page.
      Add --type parameter description to the lvcreate man page.
      Cleanup sentences of the example provided in the vgimportclone man page
      Use more standard naming for PVs and VG in vgimportclone example.
      Avoid changing aligned pe_start as a side-effect of very verbose logging.
      Require logical volume(s) to be explicitly named for lvconvert --merge.
      Require --restorefile when using pvcreate --uuid.
      Change default alignment of pe_start to 1MB.
      fix t-pvcreate-operation-md.sh to require kernel.org Linux >= 2.6.33 for
      Add some v1 to v2 metadata upgrade testing.
      Update heuristic used for default and detected data alignment.
      Switch to using configure --with-default-data-alignment=<NUM> to
      Verify that pvcreate --dataalignment really does override the topology
      Make example.conf description for 'default_data_alignment' more generic.
      Convey need for snapshot-merge target in lvconvert error message and man
      Never scan a device which is using the error target
      Explicitly have grep print the matching filenames (needed to
      Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange.
      Fix "it's" typo to be "its" in lvconvert error message.
      Improve lvcreate "insufficient extents" errors to "insufficient free space".
      Add inactive table query support for kernel driver >= 4.11.6 (RHEL 5.7).
      fix s/then/than/ typos in 'pv_min_size' section and fold floppy example
      fix s/then/than/ typo in lvm.conf.5.in
      Add "devices/issue_discards" to lvm.conf.
      Use uint32_t rather than uint64_t.
      Improve the discard documentation.  Also improve discard code in
      Fix _get_proc_number to be tolerant of malformed /proc/misc entries.
      Add missing free() for line that is malloc()'d by getline().
      Lookup snapshot usage percent of origin when a snapshot is merging.
      Differentiate between snapshot status of "Invalid" and "Merge failed".
      Use m and M lv_attr to indicate that a snapshot merge failed in lvs.
      Allow removal of an invalid snapshot that was to be merged on next activation.
      Prompt if request is made to remove a snapshot whose "Merge failed".
      Fix alignment of PV data area if detected alignment less than 1 MB
      snapshot: Rename snapshot segment returning methods from find_*_cow to find_*_snapshot
      lvconvert: Rename _swap_lv to _swap_lv_identifiers and move to allow an additional user

Mikulas Patocka (7):
      Suppress warning on 64-bit big-endian computers (Sparc 64).
      Change exit() to _exit() in the child process. exit flushes stdio file buffers,
      WHATS_NEW
      Pass struct cmd_context as a first argument to init_multiple_segtypes.
      Don't kill the parent if debugging.
      A missing space in the error message.
      Fix scripts/relpath.awk to work with mawk

Milan Broz (354):
      Fix create mirror with name longer than 22 chars.
      Print warning instead of error message if cannot zero volume
      Fix vgremove to require at least one vg argument.
      Fix processing of exit status in init scripts
      Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata).
      Fix creation and conversion of mirrors with tags.
      Fix libdevmapper-event memory leaks
      Fix a segfault if a device has no target (no table)
      Fix and clarify vgsplit error messages.
      Remove symlinks if parent volume is deactivated.
      Fix missing lvm_shell symbol in lvm2cmd library. (2.02.23)
      Fix vgsplit if splitting all PVs from VG.
      Add kernel and device-mapper targets versions report to lvmdump.
      Fix snapshot cow area deactivation if origin is not active. (2.02.13)
      Fix compilation warning in util.c.
      Fix loading of persistent cache if cache_dir is used. (2.02.23)
      Fix clvmd if compiled with gulm support. (2.02.26)
      Update --uuid argument description in man pages.
      Fix a segfault if using pvs with --all argument. (2.02.29)
      Add metadata test for escaping double quotes in device names (bz431474).
      Add validation of LV name to pvmove -n.
      Add detection of clustered mirror log capability.
      Fix output if overriding command_names on cmdline.
      Update lvmcache VG lock state for all locking types now.
      Drop cached VG metadata before and after committing changes to it.
      Fix vgchange to not activate mirror leg and log volumes directly.
      test vgsplit: reject to give away pv with the last mda copy (Jaroslav Stava)
      add tests for pvchange and vgreduce usage (Jaroslav Stava)
      Fix vgcfgbackup to properly check filename if template is used.
      Fix allocation bug in text metadata format write error path.
      - fix environment variable prefix to LVM (this is not GIT:-)
      Add pvremove usage test (Jaroslav Stava)
      Fix lvmdump metadata gather option (-m) to work correctly. (Jaroslav Stava)
      add vgrename by uuid test (Jaroslav Stava)
      add vgcreate rejects repeated invocation test
      fix vgreduce tests to detect partial command failure (Jaroslav Stava)
      Not detecing label on disc is not error, remove <backtrace> from debug log
      format1: Not detecing label on disc is not error, remove <backtrace> from debug log
      Fix vgconvert logical volume id metadata validation.
      Fix setting of volume limit count if converting to lvm1 format.
      Do not scan for lvm1 entries in /proc if not running 2.4 kernel.
      Fix pvresize to not allow resize if PV has two metadata areas.
      Fix vgreduce test,  now requires --force flag. (Jaroslav Stava)
      Add more vgreduce tests. (Jaroslav Stava)
      Fix validation of --minor and --major in lvcreate to require -My always.
      Fix mirror DSO to call vgreduce with proper parameters.
      Try to fix possible infinite loop in dependency tree walking (by mornfall).
      Fix handling of PVs which reappeared with old metadata version.
      Fix misleading error message when there is no allocatable extents in VG.
      Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
      Fix lvm2.static build.
      Remove status=noxfer from test, not all dd versions support this (RHEL4 for example).
      Fail add tree node when requested major/minor is used.
      Calculate mirror log size instead of hardcoding 1 extent size.
      Do not issue write behind lv size.
      Fix "Calculate mirror log size" commit, the le_count should be always set.
      Fix lvmdump /sys listing to include virtual devices directory.
      Fix problems with static build
      Use tools.h in for lvm-static.
      Fix pvs segfault when pv mda attributes requested for not available PV.
      Separate PV label attributes which do not need parse metadata when reporting.
      Fix lvm.static build dependence (to properly propagate changes in libdevmapper).
      Comment out pvcreate pagesize alignment test for now.
      Fix validation of dataalignment value introduced in previous commit.
      Try to avoid full rescan if label scan is enough.
      pe_start can be overwritten in VG metadata, so it is not PV label-only field.
      vgname_from_mda now tries to parse for vgname even
      Fix possible increasing in memory allocation if refreshing_context
      Fix clvmd build after liblvm commit.
      Fix lv_count when manipulating with snapshots and max_lv is set.
      Fix warning in previous commit.
      Fix segfault for vgcfgrestore on VG with missing PVs.
      fix some issues when compiling with -D DEBUG_POOL
      Add some more special chars for device name test.
      Do not use pointer from released memory pool (cmd->cmd_line).
      Allocate new pv->vg_name from pool, it can be destroyed later.
      Fix debug pool grow object to properly support delta=0
      Fix memory pool leak.
      Use pv from newly read_vg to avoid possible use of not initialized memory.
      Enable use of cached metadata for pvs & pvdisplay.
      Fix mirror log convert validation question.
      Always return exit error status when locking of volume group fails.
      Properly copy the whole pv structure for later use.
      Helper function to catch memory pool leaks.
      Introduce memory pool per volume group.
      Properly release VG memory pool in activation code and clvmd.
      Properly release VG memory pool in archiver code.
      Properly release VG memory pool in metadata manipulation code.
      Properly release VG memory pool in all CLI tools.
      Fix dmsetup.static build.
      Add MMC device type to filters.
      Fix pvs -a for segmented output
      Fix pvseg report for orphan PVs and other devices.
      Tidy lv_hash[_lock] use inside clvmd.
      Move metadata backup call after vg_commit.
      Alloc PV internal structure from VG mempool if possible.
      Fix remote metadata backup for clvmd
      Clean a lot of extra extra whitespaces.
      Fix vgreduce --removemissing failure exit code.
      Fix pool leak in lvmcache_read_vg error path.
      Use zalloc in initialization of device manager (to zero pvmove mirror count).
      Fix PV datalign when for values starting prior to MDA area.
      Do not use generic install if running install_device-mapper.
      Fix device-mapper static build targets.
      Introduce lvm2_install target.
      Fix previous commit (scripts/Makefile targets order)
      Fix first_seg() call for empty segment list.
      Remove snapshot_count from VG and use function instead.
      Fix snapshot segment import to not use duplicate segments & replace.
      Remove vg->lv_count and use counter function.
      Tidy format1 import LV function.
      Introduce link_lv_to_vg and unlink_lv_from_vg functions.
      Fix lv_is_visible to handle virtual origin.
      Introduce lv_set_visible & lv_set_invisible and use lv_is_visible always.
      Merge lv_is_displayable and lv_is_visible.
      Remove unneeded import parameter from lv_create_empty.
      Check max_lv on only place and force the check only for new volume.
      vgcfgrestore should not quietly fail when backup file has missing PVs.
      Use PV UUID in hash for device name when exporting metadata.
      If pvmove fails activating mirror volume, try restore to previous state.
      Fix compilation warning.
      Use lvconvert --repair in dmeventd DSO (mornfall)
      Fix lvconvert check for multiple-segment mirrors (mornfall)
      Add infrastructure for queriying for remote locks.
      Use suspend with flush when device size was changed during table preload.
      Use lock query instead of activate_lv_excl
      Use readahead of underlying device and not default (smaller) one.
      Fix readahead test.
      Fix locking query compatibility with old external locking libraries.
      Temporary disable one of lvconvert tests.
      Fix readahead calculation problems.
      Fix log allocation segfault (fix previous commits).
      Fix convert polling to ignore LV with different UUID.
      Fix rename of active snapshot with virtual origin.
      Build shared parts with 'make' command (mpatocka)
      WHATS_NEW!
      Use lvconvert --repair instead of vgreduce in mirror dmeventd DSO (mornfall)
      Fix double releasing of vg when repairing of vg is requested.
      Suspend virtual origin before real snapshot.
      Fix various problems in tests
      Round readahead more inteligently and print warning.
      Fix the same readahead rounding in lvcreate.
      Support crypt segment in libdevmapper tree.
      Unlock vg when requested automatic update failed.
      Unlock VG in recover_vg if metadata read failed.
      Fix compiler warning.
      Re-instate partial activation support in clustered mode. (mornfall)
      Fix WHATS_NEW - Allow metadata correction even when PVs are missing.
      Fix memory leaks in toolcontext error path.
      Fix lvconvert to not poll mirror if no conversion in progress.
      Destroy toolcontext on exit in clvmd (fixes memory pool leaks).
      Do not fork daemon when dmeventd cannot be found.
      Suggest use lvchange --resync when up converting not yet synced mirror.
      Add WHATS_NEW items.
      Properly destroy toolcontext.
      Fix backward compatibility for major:minor query.
      Fix segment import functions to print segment name and logical volume name.
      Fix confusing metadata syntax error messages.
      Fix and precise metadata read errors for segment areas.
      Enable use of new multi-segment registration for static registration too.
      Fix uuid warning in pvcreate to use terminated (and dash formatted) UUID string.
      Fix global locking in PV reporting commands (2.02.49).
      Do not run mdadm tests if MD module is not loaded.
      Return fail if lv_deactivate did not removed device from kernel.
      Recognise DRBD device part and handle it similar to MD devices.
      Fix lvcreate processing of %PVS argument.
      Fix compilation warning:
      Fix install_device-mapper Makefile target to not build dmeventd plugins.
      Fix pvmove region_size overflow for very large PVs.
      Never activate hidden volumes directly in vgchange.
      Revert vg_read_internal change, clvmd cannot use vg_read now. (2.02.55)
      Fix memory lock imbalance in locking code.
      Return error status if vgchange fails to activate some volume.
      Refresh device filters before full device rescan in lvmcache.
      Move persistent filter dump to more appropriate place.
      Do not try to unlock VG which is not locked.
      Add missing vg_release to pvs and pvdisplay to fix memory leak.
      Use locking_type 3 (compiled in cluster locking) in lvmconf.
      Do not allow creating mirrors of more than 8 images.
      Fix memory leak in lv_info_by_lvid
      Fix tools to report error when stopped by user.
      Print error if VG already exist.
      Fix pvmove test mode to not fail and do not poll.
      Fix memory lock imbalance in lv_suspend if already suspended.
      Remove newly created log volume if initial deactivation fails.
      Get rid of hardcoded 0xffdf cluster lock flag.
      Get rid of magic masks in cluster locking code.
      Get rid of magic masks in cluster locking code - clvmd part.
      Allow implicit "convert" to the same lock mode.
      Allow implicit lock conversion for pre/post callbacks.
      Never ever use distributed lock for LV in non-clustered VG.
      Add memlock information to do_lock_lv debug output.
      Allow manipulation with precommited metadata even when a PV is missing.
      Fix missing include.
      Use more descriptive variable name for temporary layer lv.
      Call explicitly suspend for temporary mirror layer.
      Remove missing flag if PV reappeared and is empty.
      Drop metadata cache after device was autorepaired and removed from VG.
      Explicitly use non-clustered vgcreate in test.
      Fix previous vgcreate commit to not call unpaired unlock.
      Resume volumes in reverse order to preserve memlock pairing.
      Do not set precommitted flag in cache when precommitted metadata does not exist.
      Properly decode flags even for VG locks.
      Move processing of VG locks to separate function (similar to LV locks).
      Add possibility to handle precommitted metadata in lvmcache.
      Proper mask lock mode for vg lock.
      Propagate commit and revert metadata event to other nodes in cluster.
      Use fixed buffer to prevent stack overflow in persistent filter dump.
      Remove empty "repaired" devices if empty in lvconvert.
      Rename mirror_device_fault_policy to mirror_image_fault policy
      Fix clvmd automatic target module loading crash.
      Never scan suspended devices in clvmd.
      Move error message to locking constructor and print
      Fix exported symbols for lvm2 dmeventd wrapper.
      Fix syslog prefix in the first message (dmeventd->lvm).
      Switch memory debugging off for now if compiled with dmeventd,
      Document undocumented commits which fixed some bugs.
      Fix syntax error in cmirror init script
      Fix return code of info callbacks.
      Unlock shared lock if activation calls failed.
      Add some missing vg_revrts calls when pvmove aborts.
      Always query device by using uuid only and not name in clvmd.
      Fix pvmove abort when temporary mirror fails to be cluster-aware.
      Always query device by uuid only.
      Remove lvs_in_vg_activated_by_uuid_only call.
      Add --showkeys parameter description into dmsetup man page.
      Add --help dmsetup option as the synonym for help command.
      Fix clvmd Makefile to not overwrite LIBS from template definition
      Fix pvcreate device check.
      Disable long living process flag in lvm2app.
      Use hash table for quick lv reference when reading metadata.
      Remove vg_validate call when parsing cached metadata.
      Optimise PV segments search.
      Do not traverse PV segment list twice.
      Fix all segments memory is allocated from vg private mempool.
      Always use blocking lock for VGs and orphan locks.
      Wipe dm-ioctl parameters in memory after use.
      Mask LCK_HOLD flag in cluster VG locks for compatibility reasons.
      Remove -n argument from vgcfgrestore.
      Currently if clvmd is running and user issues vgscan,
      Do not print encryption key in message debug output.
      Skip also special lvm devices in scan (if ignore suspended is used).
      Fix device_is_usable to properly detect only internal LV names.
      Fix empty layer detection is scan devices.
      Another one internal device layer fix...
      Replace lvm.conf instead of truncating it.
      Use mv -f for replace config in test.
      Fix topology test after last changes to not leak loop devices.
      Require partial option in lvchange --refresh for partials LVs.
      Fix clvmd initscript restart command to start clvmd if not yet running.
      Fix restart of clvmd using -S switch
      Fix segfault in clvmd -R if no response from daemon received.
      Remove C++ private keyword from headers.
      Fix lvm2cmd example in documentation.
      Clean up cluster lock mode and flags definition.
      Fix exit code when requesting help using documented -o help option.
      Let running clvmd process time to reexec.
      Use flexible data[] in cmirrord request to prevent abort in runtime size checks.
      Fix "allocated" warning typo.
      Fix clvmd init script status
      Fix vgremove to allow removal of VG with missing PVs. (2.02.52)
      Remove superfluous suspended device counter from clvmd.
      Fix another segfault in clvmd -R if no response from daemon received.
      Change the pvcreate swap/md logic
      Remove assumption that --yes must be used only in --force mode
      Fix file descriptor leak in swap signature detection
      Detect LUKS signature in pvcreate
      Fix wrong use of LCK_WRITE
      Fix pvmove --abort to work even for empty pvmove LV
      Fix pvmove --abort <dev> return code
      Update configure after last change.
      Fix timestamp.
      Fix return type qualifier to avoid compiler warning.
      Fix previous const removal.
      Currently tests require SI units enabled and data alignment to 1MiB.
      Do not run singlenode clvmd tests if support for singlenode not compiled in.
      Fix handling of partial VG for lvm1 format metadata
      Restrict lvm1 partial mode.
      Try to detect fail in clvmd startup in tests.
      Update configure.
      Fix wrongly paired unlocking of global lock in pvchange. (2.02.66)
      Add -f (don't fork) option to clvmd and fix clvmd -d<num> description.
      Remove DEBUGLOG from dmeventd.
      In some versions (RHEL6) dlm_create_lockspace() always
      If other process finishes (or aborts) pvmove operation and
      Suport DM_SECURE_DATA_FLAG.
      Rephrase backup message.
      Fix some compile warnings on RHEL5
      Fix tests if udevadm missing (old udev).
      Rather return success if skipping udev wait.
      Fix test to use explicit /dev/mapper/ node, /proc/mounts should not change this...
      Use 64bit unsigned value for maximum stripe size test.
      PE size overflows, on most architectures it is catch by "PE cannot be 0"
      Increase check timeout again.
      Fix syslog initialisation in clvmd to respect lvm.conf setting.
      Fix test, "echo n" is not needed when -y is specified.
      Wait until dmeventd properly starts in test.
      Make the lock test a little bit better...
      Move secure flag warning to verbose level.
      Fix hardcoded page size, fixing test fails with 8k page and new kernel.
      Fix test for 8k page (fails on Sparc architecture).
      Fix clvmd return code for bad options.
      Fix dmsetup man page typo (John Bradshaw)
      Mitigate some warnings if running as non-root user.
      Use /var/run/lvm for lvmetad socket.
      Always use append to file in lvmdump (selinux policy - no file truncation).
      Use append but except query for dlm locks:-)
      Fix topology test.
      Accept kernel version 3 (3.0-rc and similar).
      Fix another occurrence of linux kernel version check.
      Fix kernel version parsing in tests, use common function.
      Fix extent rounding for striped segments.
      Validate mirror segments size
      Fix mirrored stripe reduction.
      Fix kernel version test (RHEL: 2.6.32-123).
      Fix lvreduce stripe rounding up from previous commit.
      Fail allocation if number of extents not divisible by area count
      Try to force remove dm devices in after test fails.
      Fix warning for pvcreate over MD linear.
      Remove obsoleted GULM clvmd cluster locking support.
      Initialise clvmd locks before lvm context to avoid open descriptor leaks.
      If anything bad happens and unlocking fails
      Never ever use uninitialised descriptors if pipe() fails
      Fix build of raid without dmeventd.
      Remove dev name prefix from dmsetup line output if major and minor is used.
      Do not remove makefile during "make clean".
      Activate virtual snapshot origin exclusively (only on local node in cluster).
      Fix vgchange activation of snapshot with virtual origin.
      Fix possible overflow of size if %FREE or %VG is used.
      Disable t-lvcreate-large.sh for now with cluster.
      Fix clvmd processing of invalid request on local socket. (rommer)
      Always sent the whole command header in restart/reload clvmd commands.
      Fix alignment warning in bitcount calculation for raid segment.
      Do not scan device if it is part of active multipath.
      Fix function name in previous patch.
      And now add files for real.
      Remove unneeded parameter.
      Fix major number filter structure boundary test.
      Switch locking bits to match RHEL5 version.
      Fix FIXME and comment :-)
      Properly show LV removal message.
      Update autoconf.
      Remove some whitespaces.
      Remove some whitespaces.
      Fix pvmove if LV is activated exclusively but cmirror is not running.
      Remove unused and wrongly set cluster VG flag from clvmd lock query command.
      Use new flag PVMOVE_EXCLUSIVE in update_metatada call.
      Do not allow pvmove if some affected LVs are activated
      Keep exclusive activation in pvmove if LV is already active.
      Also skip pvmove for remotely active LVs.
      Fail early if cmirror is not detected and pvmove requires it.
      There is no hotsname_tags but only hosttags... sigh, even docs is wrong :-)
      Fix exclusive lvmchange -aey to fail if volume is active on different node.
      Avoid closing clvmd socket twice.

Patrick Caulfield (151):
      Set DEFAULT_ALIGNMENT to 8 for Alpha.
      Fix includes so that string functions get prototyped.
      Fix includes so that string functions get prototyped
      Don't store things in _devs[-1] - it's not nice.
      lc->in->f_op->read expects its buffer to be in userspace so surround it in
      Don't include asm/* files
      Fix prototype for malloc_aux
      #include <string.h> for memset
      define FMT_64 to be the right format string for 64-bit types a la GFS
      Use FMT_64 to format 64bit types
      Use POSIX defined PRIu64 for formatting 64 bit unsigned integer types
      Do substitution on LIBS so that those platforms that need -lncurses as well as
      Fix format characters for printing size_ts
      size_ts aren't really pointers but there are no format specifiers for them,
      Don't need EXTRA_LIBS as autoconf fills in LIBS for us with all that is needed.
      file clvm.h was initially added on branch CLUSTER_TAG.
      file cmgr.c was initially added on branch CLUSTER_TAG.
      file cmgr.h was initially added on branch CLUSTER_TAG.
      Add a dev_get_sectsize call.
      Label reading/writing code.
      Fix label filter.
      - Change label format to include a string disk_type and a version number.
      Use a proper CRC calculation.
      Build label code into the library
      made the hard-coded 512 into BLOCK_SIZE just for neatness sake.
      Write the location of both labels in the labels so we can check them. I don't do
      Wipe the first label if writing the second one failed.
      Change lvm2_label to use Joe's new label switch system.
      Couple of typos fixed.
      #include <string.h>
      Fixx OB1 error in max LV and max PV numbers
      use portable <inttypes.h> macros for printing.
      Fill in format_text functions.
      Fix _align so it works on 64-bit machines.
      Make lock type numbers match the DLM numbers in use, and move UNLOCK out
      Fix prototype.
      Implement an external locking interface.
      Remove 
 from log messages.
      Return status from _lv_activate and friends.
      Rename device node during a DM_RENAME command.
      More memory leak plugging.
      add setlocale() call so that localisation of things like number entry
      Add features to get table/status & wait for next event.
      Get rid of compile warnings on 64bit platforms.
      Flush on open as well as close.
      Don't log an error if we can't write the cache file because the FS is read-only.
      Use O_DIRECT for writing to devices.
      Rename lock_resource to file_lock_resource to avoid name clashes
      Remove O_DIRECT as it causes problems with some systems.
      Make sure errors reach syslog().
      Updated file from cman.
      clvmd man page.
      Fix man page for lvchange. The example seems to have been lifted from pvchange.
      Put some locking round the LV hash table as it could be accessed by
      Don't use hold_lock for VG locks as that doesn't stop processes contending
      Make the thread handling a little less cavalier. In particular, calling
      Update WHATS_NEW with latest clvmd change
      Keep client locks (VG locks usually) in their own hash table so
      Remove spurious trailing dot in man page.
      Hold VG lock while doing vgremove.
      Fork a little later in the startup sequence so that we can return
      Make clvmd cope with large gaps in nodeIDs
      Check the UUID length when readingthe output of the "lvs" command at startup.
      Change some perror() calls to log_error() so they'll appear in
      Revert the fork back to where it was as it seems to confuse pthreads.
      Make clvmd -V display the lvm version number too rather than just
      Can now build a gulm version of clvmd instead of a cman one. use
      Report detailed errors in cluster initialisation to syslog, and point the user
      Tidy the socket callbacks so that all the work is done outside the
      Make clvmd_fix_conf.sh UNDOable
      Use new CCS key names for nodes in the GULM version of clvmd.
      Typo in "for" caused first node in ccs to be ignored.
      Improve clvmd failure message if it's already running.
      Some more gulm fixes from "Mr gulm" himself.
      Fix off-by-one error in cluster_locking that could case read hangs.
      You can now build clvmd with cman & gulm support in the same binary.
      Fix clvmd startup bug introduced in cman/gulm amalgamation. bz#145729
      Get rid of libclvm as it's out-of-date and not used at all.
      Make clvmd announce it's startup and cluster connection in syslog.
      Remove superflous &
      Don't print CMAN error if initial probe fails - we could be running with GULM.
      Get rid of "connection refused" message because Corey doesn't like it.
      Make clvmd do a quick sanity check on the clustering bits of lvm.conf
      Make clvmd use the command library rather than popen() to
      Revert last clvmd patch. More testing reveals that this just doesn't
      Fix thread shutdown race which could cause clvmd to hang in pthread_join.
      Make config check a little more tolerant of library names.
      Fix gulm->errno error number conversion.
      Cope with more than one message arriving at the TCP socket, also
      Always manipulate both locks in sync_lock() otherwise they get left
      ./configure --enable-debug now enables debugging code in clvmd
      Fix clvmd-gulm node up/down code so it actually works.
      make clvmd FDs close-on-exec, to avoid warnings when running lvm via popen.
      Don't take out the lvm_thread_lock at startup - it only protects the jobs list.
      Don't allow user operations to start until the lvm thread is fully up.
      set SO_KEEPALIVE on sockets
      Make clvmd work around some "limitations" in gulm's node state notifications.
      Tidy clvmd's SIGHUP handler so it doesn't do all that work.
      Be a bit smarter about reading stuff from the sockets
      Don't defer closing of FDs in clvmd as it can cause trouble.
      Log an error if clvmd can't resolve a host name got from CCS
      Don't send a signal to kill threads that are idling nicely as it upsets them.
      clvmd no longer takes out locks for non-clusteed LVs,
      Use hash functions in libdevmapper.
      Make it compile with debug enabled.
      Get clvmd to use libcman rather than cman ioctl calls. This makes
      Make sure it compiles if gulm is NOT selected AND using an old libcman.h
      allow new cman to shutdown on request.
      Add needed include.
      Fix "Unaligned access" when using clvm
      Add needed new parameter to create_toolcontext().
      Stop clvmd complaining about nodes that have left the cluster
      Add -R switch to clvmd.
      Update man page for clvmd -R
      Make clvmd restart init script wait until clvmd has died before starting it.
      Vastly improve the errors returned to the user from clvmd.
      Fix clvmd bug that could cause it to die when a node with a long name crashed.
      Use strncpy rather than strcpy
      Add clvmd call to return the cluster name.
      Don't allow a node to remove an LV that's exclusively active on anther node.
      Add note to lvremove man page: volumes must be inactive on
      Add -T (startup timeout) switch to clvmd
      Add timeout to RHEL4 clvmd init script.
      Always compile debug logging into clvmd as it's too useful to
      Fix hang in clvmd if a pre-command failed. The pre/post thread was getting
      Fix gulm operation of clvmd. including a hang when attempting to
      Add manpage reference for clvmd -T that got missed out when I
      Flag nolocking as a clustered locking module as we need to be able
      Add some extra error checking & robustness.
      Make clvmd cope with quorum devices in RHEL5
      Fix thread race in clvmd.
      Add some more debuglogs to clvmd startup.
      Misc clvmd cleanups from Jim Meyering
      Add *Experimental* OpenAIS support to clvmd.
      Remove system LV code from clvmd. It's never been used and never should be
      Remove system-lv.[ch]
      Use cpg_local_get() rather then Clm to get the local nodeid.
      Tidy bits of clvmd-openais and improve an error report.
      Add SUN's LDOM virtual block device to filters
      Add more cluster/clvmd information to lvmdump
      Allow clvmd debug to be turned on in a running daemon using clvmd -d
      Call init_full_scan_done() when refreshing the cache. This should fix clvmd -R.
      Force a device scan after init_full_scan_done() per agk.
      Locking P_global causes a cache refresh.
      Fix clvmd logging so you can get lvm-level debugging out of it.
      Make it compile with new lv_info_by_lvid() prototype
      If the pre_command fails then go back and wait patiently for the next
      When we unlock a VG tell the clvmds to see if a backup of the metadata needs
      Tidy the clvmd backup code.
      Remove redundant cnxman-socket.h file.
      Update usage message for clvmd.

Peter Rajnoha (504):
      Added displayable_lvs_in_vg and lv_is_displayable functions to deal with
      Fix vgrename using UUID in case there are VGs with the same name.
      Fix incorrect return value in help function.
      Add "--refresh" functionality to vgchange and vgmknodes.
      Add "--refresh" functionality to vgchange and vgmknodes.
      Add checks for device names in dmsetup and show proper error messages.
      Fix segfault when using -U, -G and -M options in dmsetup.
      Fix wrong arg in lv_is_virtual_origin call while creating snapshots.
      Fix a typo in udev rule (splitname, NOT namesplit)
      '--noudevsync' -- update relevant man pages
      Add --noudevsync option for relevant LVM tools.
      Add --noudevsync option for relevant LVM tools.
      Forgotten '%s' in one of _mk_link warning messages.
      Detect udev problems in _rename_dev_node.
      Fix failure situations in dm_task_run for udev sync.
      Add 'udevcomplete_all' command for dmsetup. Export DM_COOKIE_MAGIC in libdevmapper.h.
      Add 'udevcookies' command for dmsetup.
      Rename template rule file 11-dm-permissions.rules to 12-dm-permissions.rules.
      Remove 11-dm-permissions.rules (is now in 12-dm-permissions.rules).
      Fix semaphore includes in dmsetup for udev sync.
      Use new blkid instead of vol_id in udev rules.
      Fix Makefile to take into account dmsetup's reconfiguration.
      Add y|--yes option for dmsetup to provide a default 'YES' answer to questions.
      Add libudev configuration check.
      Check that udev is running and set internal state appropriately.
      Add one define that is necessary for older (experimental) libudev to work.
      Several changes in udev rules:
      Add manpage entry for dmsetup's udevcomplete_all and udevcookies commands.
      Move dm_cookie_supported check into dm_udev_get_sync_supprt function.
      Add some advisory comments for users in 12-dm-permissions.rules.
      Add more hints in 12-dm-permissions.rules. Add 'dmsetup splitname' and 'y|--yes' to dmsetup manpage.
      Use the same default umask for /dev dirs (DM_DEV_DIR_UMASK).
      Just a cleanup from previous commit. We don't need pvname local var in _activate_lvs_in_vg anymore...
      Add udev flags support in libdevmapper and provide 'dmsetup udevflags' command to decode them.
      Use udev flags support in LVM and provide dm_tree_add_new_dev_with_udev_flags wrapper for dm_tree_add_new_dev.
      Use udev flags in the rules and cleanup the rules:
      Add manpage entry for dmsetup udevflags.
      Rename 11-lvm.rules to 11-dm-lvm.rules and 12-dm-disk.rules to 13-dm-disk.rules.
      Several changes to udev support code:
      Cleanup of previous commit with latest changes in udev support code.
      More cleanup in udev rules:
      Remove 'last_rule' from udev rules.
      Support udev flags even when udev_sync is disabled or not compiled in.
      Give better message for pvmove when all data on source PV is skipped.
      WHATS_NEW for previous commit.
      Disable udev rules on change event with DISK_RO=1.
      Add --noudevrules option for dmsetup to disable /dev node management by udev.
      Add activation/udev_rules config option in lvm.conf.
      Always set environment variables for an LVM2 device in 11-dm-lvm.rules.
      Add support to disable udev checking: DM_UDEV_DISABLE_CHECKING=1 env. variable.
      Add support to disable udev checking: LVM_UDEV_DISABLE_CHECKING=1 env. var.
      Enable udev_sync and udev_rules in lvm.conf by default while running tests.
      Define {DM, LVM}_UDEV_DISABLE_CHECKING=1 env. variables for tests.
      Show a warning message when libudev not found and we're using --enable-udev_sync.
      Substitute UDEV_SYNC value for use in the other files and show a warning message when libudev not found and using udev_sync.
      This is related to liblvm and its lvm_list_vg_names() and lvm_list_vg_uuids() functions
      Rename "stat" to "status" in dmeventd_snapshot.c.
      Several changes in dmsetup and libdevmapper:
      Don't use LVM_UDEV_DISABLE_CHECKING environment variable anymore.
      Use udev transactions in testsuite.
      Update man page for dmsetup: --udevcookie, udevcreatecookie and udevreleasecookie.
      Remove hard-coded rule to skip _mimage devices in 11-dm-lvm.rules.
      Add LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable to suppress error
      Add support for ioctl's DM_UEVENT_GENERATED_FLAG.
      Strictly require libudev if udev_sync is used.
      Autoreconf.
      Export and use only valid cookie value in test suite.
      UDEV_SYNC_SUPPORT, not UDEV_SYNC!
      Use UUIDs instead of names while processing event handlers.
      Allow VGs with active LVs to be renamed.
      Do not reset position in metadata ring buffer on vgrename and vgcfgrestore.
      Set appropriate udev flags for reserved LVs.
      Also include udev libs in libdevmapper.pc when udev_sync is enabled.
      Add support for new IMPORT{db} udev rule.
      Don't run any complex initialisation for the "version" lvm2 command.
      And be consistent with return code as well (previous commit).
      Synchronize "remove" dm task while reverting unsuccessful "create" dm task
      Specify exactly which ioctl doesn't have a cookie set (for better debugging).
      Add new --sysinit option for vgchange and lvchange.
      Use expected union semun for arguments in selected semaphore operations.
      Fix incorrect memory pool deallocation while using vg_read for files.
      Add support for dm-mod module autoload.
      Use early udev synchronisation and update of dev nodes for clustered mirrors.
      Fix udev rules to handle spurious events properly.
      Use "nowatch" udev rule for known inappropriate devices.
      Add more verbose messages while checking volume_list and hosttags settings.
      Addendum for previous patch - show VG/LV name everywhere so the messages
      Revert unsuccessful table load preparation in combined "create, load and resume" scenario.
      Add check for kernel semaphore support and disable udev_sync if not available.
      Use built-in rules for device aliases: block/ < dm- < disk/ < mapper/ < other.
      Recognise and give preference to md device partitions (blkext major).
      WHATS_NEW_DM
      Reinstate detection of inappropriate uevent with DISK_RO set and suppress it.
      Fix udev rules to support udev database content generated by older rules.
      dm-mod autoloading support is in kernel 2.6.36 actually.
      WHATS_NEW_DM
      Fix dm-mod autoloading logic to not assume control node is set correctly.
      Reinitialize archive and backup handling on toolcontext refresh.
      Add random suffix to archive file names to prevent races when being created.
      Use dynamic allocation for metadata's tag buffer (removes 4096 char. limit).
      Revert to old glibc behaviour for vsnprintf used in emit_to_buffer function.
      "goto_bad" should be used in alloc_printed_tags function, not "goto bad".
      Add escape sequence for ':' and '@' found in device names used as PVs.
      Fix memory leak of vg_read while using live copies of metadata in directories.
      Allocate buffer for reporting functions dynamically to support long outputs.
      Use dm_strdup/dm_free instead of strdup/free.
      Clarify error messages when activation fails due to activation filter use.
      WHATS_NEW FIXME
      Add new dm_prepare_selinux_context fn to libdevmapper and use it throughout.
      Create /var/run/lvm directory during clvmd initialisation if missing.
      Missing #elif HAVE_SELINUX
      #ifdef HAVE_SELINUX and #ifdef HAVE_SELINUX_LABEL_H
      HAVE_SELINUX again
      Export DM_CONTROL_NODE_UMASK and use it while creating /dev/mapper/control.
      Set DM_UDEV_DISABLE_OTHER_RULES_FLAG for suspended DM devices in udev rules.
      Add a debug message when uevent is not generated and we call udev_complete internally.
      Change and generalise struct format_instance for PV and VG use.
      Change create_instance to create PV-based as well as VG-based format instances.
      Change the code throughout for recent changes in format_instance handling.
      Add vg_set_fid function to change VG format instance.
      Initialise a new PV-based format instance for a PV that is being created.
      Add format instance support for pv_read code.
      Remove useless mdas parameter for pv_read (from now on, we store mdas in a
      Add new pv_add_metadata_area interface function.
      Add new pv_remove_metadata_area interface function.
      Separate new pv_initialise function out of the original pv_setup code.
      Change the code throughout to use new pv_initialise and modified pv_setup fn.
      Remove unused _mda_setup fn. This functionality is covered by new pv_add_metadata_area fn.
      Change pv_write code to work with the changes in metadata handling interface
      Change pvresize code to work with new metadata handling interface and allow
      Fix vgconvert code to work with changes in metadata area handling and changes
      Add old_uuid field to struct physical_volume so we can still reference a PV
      Fix metadata balance code to work with recent changes in metadata handling
      Temporarily disable 'convert a VG from lvm2 to lvm1 format' test until a known issue is resolved.
      WHATS_NEW
      %ld -> PRIu64
      Remove a few size_t type warnings.
      Fix a bug in metadata location calculation, cleanup pv_add_metadata_area fn.
      Read PV metadata information from cache if pv_setup called with pv->fid == vg->fid.
      Revert the patch for vgconvert to work with recent changes in metadata area handling.
      Allow only orphan PVs to be resized even with two metadata areas.
      vgconvert is fixed now to work with the changes in metadata area handling - enable the tests.
      Allow non-orphan PVs with two metadata areas to be resized.
      Use pv->vg_name directly instead of pv->vg->name in _text_pv_write.
      Add a hint for manual revert if there's an error in pv_write, vg_write, vg_commit for pvresize.
      Make add_metadata_area_to_pv/remove_metadata_area_from_pv static.
      Use a copy if moving an mda from pv fid to vg fid.
      Lower severity of selabel_lookup and matchpathcon failure to log_debug.
      Use new alloc_fid fn for common format instance initialisation.
      Add mem and ref_count fields to struct format_instance for own mempool use.
      Make create_text_context fn static and move it inside create_instance fn.
      Use only vg_set_fid and new pv_set_fid fn to assign the format instance.
      Add new free_pv_fid fn and use it throughout to free all attached fids.
      Call destroy_instance for any PVs found in VG structure during vg_free call.
      Various cleanups for fid mem and ref_count changes.
      Use format instance mempool where possible and adequate.
      Remove compile warning for lock_id.
      Finalize PV format instances properly in lvm_vg_write fn.
      Cleanup fid finalization code in free_vg and allow exactly the same fid to be set again for a PV/VG.
      Require libudev >= 143 when compiling with udev support.
      Move common libudev code to lvm-wrappers.[ch].
      Obtain device list from udev by default if LVM2 is compiled with udev support.
      Use common udev_get_dev_dir() to get current device directory managed by udev.
      autoreconf
      Uncomment obtain_device_list_from_udev setting in lvm.conf.
      Do not issue an error message when unable to remove .cache on read-only fs.
      Use new dev_open_readonly fn to prevent opening devices for read-write when not necessary.
      Clarify error message when unable to convert an LV into a snapshot of an LV.
      Fix a few compile warnings.
      Fix create_temp_name to replace any '/' found in the hostname with '?'.
      Add proper udev library context initialization and finalization to liblvm.
      Disable udev fallback by default and add activation/udev_fallback to lvm.conf.
      Disable udev fallback and add --udevfallback option to dmsetup.
      Add check for library fallback in _deactivate_node.
      Add systemd unit files for dmeventd.
      Configure and makefile changes for newly added systemd unit files.
      autoreconf
      Add support for new oom killer adjustment interface (oom_score_adj).
      Add support for systemd file descriptor handover in dmeventd.
      Change DEFAULT_UDEV_SYNC to 1 so udev_sync is used even without any config.
      Remove unused 'origin' variable in lv_remove_single function.
      Suppress low-level locking errors and warnings while using --sysinit.
      Suppress locking error messages in monitoring init scripts.
      Fix possible format instance memory leaks and premature releases in _vg_read.
      Directly allocate buffer memory in a pvck scan instead of using a mempool.
      Retry DM_DEVICE_REMOVE ioctl if device is busy.
      Add dm_task_retry_remove fn to use retry logic for device removal.
      Add --retry option for dmsetup remove to retry removal if not successful.
      Add dm_set_sysfs_dir to libdevmapper to set sysfs location.
      Add dm_device_has_holders fn to to check use of the device by another device.
      Replace open_count check with holders/mounted_fs check on lvremove path.
      Add dm_tree_retry_remove to use retry logic for device removal in a dm_tree.
      Add activation/retry_deactivation to lvm.conf to retry deactivation of an LV.
      Initialize 'retryable' variable.
      readlink does not append a null byte to the output string!
      Add log_error even for general device in use when we can't do the sysfs checks.
      Add "ExecReload" to dm-event.service for systemd to reload dmeventd properly.
      Avoid 'mda inconsistency' by properly registering UNLABELLED_PV flag (2.02.86).
      --addtag instead of --tag
      Fix last checkin for replicator.
      Fix lvm2-monitor init script to use normalized output when using vgs.
      Use also normalized output for vgchange command in lvm2-monitor init script.
      Add dm_device_get_name to get map name or block device name for given devno.
      Support different device name types on output of dmsetup deps, ls and info -c command.
      Missing const.
      Move dm_task_set_newname from libdm-iface.c to libdm-common.c
      Clean up systemd unit ordering and requirements.
      Stop processing lvextend if trying to extend a mirror that is being recovered.
      Add configure --with-systemdsystemunitdir.
      Superfluous '/' in systemd_dir path.
      Add configure --with-default-name-mangling.
      autoreconf
      Mangle device name on dm_task_set_name/newname call if necessary.
      Add DEV_NAME macro.
      Add dm_task_get_name_mangled/unmangled to libdevmapper.
      Unamngle dm device name list automatically on ioctl return.
      Add --manglename option to dmsetup to select the name mangling mode.
      Add 'mangled_name' and 'unmangled_name' fields to dmsetup info -c -o.
      Add mangle command to dmsetup to provide renaming to correct mangled form.
      Replace any '\' char with '\' in table specification on input.
      Add DM_DEFAULT_NAME_MANGLING_MODE env. variable to override configured value.
      Add dmsetup manpage entries for mangle command and --manglename option.
      Fix segfault in dmsetup when using table specification with --table.
      Add watch rule to 13-dm-disk.rules.
      typo
      Switch to using built-in blkid in 13-dm-disk.rules.
      Check whether udev supports built-in blkid.
      Call built-in blkid conditionaly (udev version >= 176), call standard blkid
      Add configure --with-tmpfilesdir and lvm2 tmpfiles.d configuration file itself.
      Add lvm2 tmpfiles.d configuration file.
      Clean intermediate files.
      Install lvm2 monitoring init script and systemd units only if dmeventd is built.
      Add LVMetaD systemd units.
      Use DEFAULT_RUN_DIR instead of hardcoded value in lvmetad systemd units
      Remove the old systemd socket file, we're using the .in template now.
      Use 'd' instead of 'D' in tmpfiles configuration to not overwrite any existing directory.
      Add skeleton for lvmetad udev rules - 69-dm-lvm-metad.rules.
      Add LVMetaD init script.
      The daemon as well as the first scan must be both executed properly, otherwise it's an error!
      Use '-p PID_FILE' for the status call since the pidfile is in its own lvm subdir and return proper status code.
      Also remove intermediate lvmetad init script file.
      Use 'killproc' fn in lvmetad init script (fn provided by 'functions' init script library).
      Systemd is linux-specific - move the supporting code under the 'ifdef linux'.
      lvmetad.socket
      Fix dm_task_set_name to properly resolve path to dm name.
      Add support for systemd socket handover for common daemon-server code and also add support for new OOM killer adjustment interface.
      LVMetaD socket operates in non-blocking mode.
      Clean up internal mangling interface.
      Check whether device names are properly mangled on ioctl return.
      Fix dm_task_get_name_unmangled to not unmangle already unmangled name.
      Check for multiple mangled names in auto mangling mode.
      Add test for name mangling functionality.
      Use already acquired variable...
      Add 'Restart: on-abort' for lvmetad systemd service.
      Do not unlink the socket on daemon shutdown if activation is done via systemd.
      Detect the lvm binary path in lvmetad udev rules.
      Do not run a new dmeventd instance on restart if there's no existing one.
      WHATS_NEW
      Use SD_ACTIVATION env. var. in systemd units to better detect systemd in use.
      Remove dmeventd fifos on exit if they are not managed by systemd.
      Use pvscan --cache instead of vgscan in lvmetad init script and systemd unit.
      Do exit if LISTEN_PID environment variable not correct during systemd handover.
      Add 'vgscan --cache' functionality for consistency with 'pvscan --cache'.
      Fix tests to work with vgscan --cache fixing inconsistent metadata.
      Detect VG name being part of the LV name in lvconvert --splitmirrors -n.
      WHATS_NEW
      Check if info struct returned is not NULL.
      strcpy -> strncpy in common daemon code.
      Change message severity to log_very_verbose for missing dev info in udev db.
      Add udev info and context to lvmdump.
      Rename (Blk)DevNames header to (Blk)DevNamesUsed in dmsetup info -c output.
      Also rename DevNos header to DevNosUsed in dmsetup info -c output.
      WHATS_NEW
      Use dm_strncpy instead of plain strncpy while setting the socket path.
      Fix division by zero if PV with zero PE count is used during vgcfgrestore.
      Remove VG/PV used in the test.
      Comment on auxiliary metadata areas.
      More comments on metadata area types.
      Re-enable tests for snapshots of mirrors.
      Partial activation working, expect success in tests.
      Remove unsupported udev_get_dev_path libudev call used for checking udev dir.
      systemd: Add Documentation references
      dev-io: open device read-only to obtain readahead value
      configure: run directory configuration cleanup
      udev: udev rules cleanup
      configure: autoreconf
      args: add --activate synonym for --available arg
      activate: add autoactivation hooks
      vgchange: add --activate ay option (autoactivate)
      pvscan: add --activate ay option (autoactivate)
      lvchange: add --activate ay (autoactivate)
      lvcreate: add --activate ay (autoactivate)
      conf: add activation/auto_activation_volume_list
      initscript: call vgchange -aay instead of -aly
      cleanup: static volume filter fn, lvm.conf comment
      man: --activate ay and auto_activation_volume_list
      systemd: add doc reference in dm-event.socket
      activate: skip manual activation for --sysinit -aay
      lvconvert: count % upwards when merging a snapshot
      conf: add a comment about obsolete .cache file
      configure: default tmpfile dir in PREFIX/lib/tmpfiles.d
      daemon-server: fix error message on daemon shutdown
      config: fix one-node dumpconfig, add dm_config_write_one_node
      locking: clarify read-only locking error message
      locking: clarify read-only locking error message v2
      systemd: ensure monitoring is handled after lvmetad
      lvm2app: add lvm_config_find_bool function
      systemd: add lvm2 activation generator
      systemd: integrate lvm2 activation generator with conf+make
      make: use proper libs to make scripts subdir
      systemd: O_CLOEXEC not needed in activation generator
      make: fix make in scripts dir for --disable-applib
      args: increase major:minor limit to 4095:1048575
      mirror: reconfigure_mirror_images not used
      setvbuf: reopen only valid fd
      test: snapshot_extend_threshold -> snapshot_autoextend_threshold
      config: require dm_config_create_value for dm_config_node's value
      make: fix subdir order for distclean
      vgchange: fix -aay to activate proper volumes
      systemd: depend on systemd-udev-settle unit in activation unit
      systemd: remove ExecStartPost from lvm2-lvmetad.service.
      libdm: refactor internal mangling functions
      libdm: add dm_task_get_uuid_mangled/unmangled
      libdm: add mangling support for dm_task_set_uuid
      libdm: add mangling support for dm_task_set_newuuid
      libdm: unmangle dm UUIDs on dm ioctl return
      libdm: introduce and use DEV_UUID macro
      dmsetup: add mangled/unmangled_uuid to for info -c
      dmsetup: also apply 'mangle' command for UUIDs
      man: dmsetup mangle also processes UUIDs now
      WHATS_NEW: update
      libdm: remove dm dev without error even with malformed UUID
      systemd: add deps to order units more properly
      scripts: introduce blkdeactivate
      configure: autoreconf
      WHATS_NEW: update
      blkdeactivate: fix long form of options
      Remove pvscan --cache from lvm2-lvmetad init script.
      scripts: blk-availability - use the same name for lock file
      scripts: blk-availability should be stopped before FCoE
      libdm: fix comments in libdevmapper.h
      scripts: blk-availability - use full name for clarity
      udev_sync: cookie_set=1 on each dm_task_set_cookie call
      lvmetad: whats_new + more explanation for previous commit
      WHATS_NEW: latest changes under libdm 1.02.78
      lvmetad: warn only if use_lvmetad=1 and locking_type=3
      systemd: various updates and fixes
      systemd: do not remove lvm2-activation.service
      systemd: remove quotes in lvm2-monitor.service ExecStop
      pvscan: exit --cache immediately if locking_type=3 || use_lvmetad=0
      udev: do not verify udev operations for --noudevsync
      udev: recognize DM_DISABLE_UDEV environment variable
      udev: _udev_disabled var visible also for !UDEV_SYNC_SUPPORT
      udev: add a warning message if DM_DISABLE_UDEV set and udev running
      Allow empty activation/{auto_activation|read_only|}_volume_list config option.
      activation: don't miss the log on empty {auto_activation|read_only|}_volume_list
      lvconvert: do not ignore -f in lvconvert --repair -y -f
      lvconvert: allow lvconvert --stripes/stripesize only with -mirrors/--repair/--thinpool
      lvmetad: fix compiler warning and add WHATS_NEW line for previous commit
      lvconvert: also allow --type with --stripes
      WHATS_NEW: changelog for fae1a611d2 and 5294a6f77a
      activation: fix autoactivation to not trigger on each PV change
      pvscan: synchronize with udev if pvscan --cache is used.
      dmeventd: close dmeventd FIFO FDs on exec (add FD_CLOEXEC).
      blkdeactivate: fix handling of nested mountpoints and mangled mount paths.
      blkdeactivate: prevent trying to unmount the same mountpoint more times
      report: fix pvs -o pv_free reporting for PVs with 0 PEs
      fix: 'Couldn't read extent size' --> '... extent start'
      pvcreate: fix alignment to incorporate alignment offset if PV has 0 MDAs
      conf: add missing '=' for raid10_segtype_default
      cleanup: add struct pvcreate_restorable_params and move relevant items from pvcreate_params
      cleanup: use struct pvcreate_restorable_params throughout
      pv_header_extension: add supporting infrastructure for PV header extension (flags & Embedding Area)
      pv_header_extension: add support for reading PV header extension (flags & Embedding Area)
      pv_header_extension: add support for writing PV header extension (flags & Embedding Area)
      tools: add embeddingareasize arg to pvcreate and vgconvert
      report: add reporting fields for Embedding Area start and size
      man: update pvcreate/pvs/vgconvert man page to cover embedding area support
      WHATS_NEW: add lines for embedding area support
      lvmetad: fix to properly process embedding area
      cleanup: remove struct pv_header_extension reference from struct pv_header
      config: fix config node lookup inside empty sections to not return the section itself
      config: add vsn macro
      config: add config_settings.h
      config: add structs to represent config definition and register config_settings.h content
      config: refer to config nodes using assigned IDs
      libdevmapper: add dm_config_value_is_bool function
      config: add support for configuration check (config_def_check fn)
      config: use config checks and add support for creating trees from config definition (config_def_create_tree fn)
      dumpconfig: add --type, --atversion and --validate arg
      config: add support for enhanced config node output
      dumpconfig: add --withcomments and --withversions switch
      config: add comment note about advanced and unsupported config nodes
      dumpconfig: add --ignoreadvanced and --ignoreunsupported switch
      WHATS_NEW: add lines for config validation support
      config: make DEFAULT_MAX_HISTORY unconditional
      cleanup: get rid of compiler's warning about possible unitialized variable
      dmsetup: fix 'splitname -o' to not fail if used without '-c'
      cleanup: remove superfluous wrappers
      metadata: add 'allow_orphan' arg to find_pv_by_name fn
      vgextend: do not allow PV with 0 MDAs to be added while already in a VG
      cleanup: remove unused 'pv_by_path' fn
      WHATS_NEW: vgextend and PV with 0 MDAs
      pv_write: clean up non-orphan format1 PV write
      metadata: use PV's internal UNLABELLED_PV flag more consistently
      config: remove typo in handling devices/write_cache_state config
      udev: also autoactivate on coldplug
      udev: add a few comments about variables used to recognize events
      udev: fire pvscan --cache properly on CHANGE event for MD devices
      toolcontext: check dm version lazily for udev_fallback setting
      snapshot: fix check for snapshot-merge target presence
      lvconvert: check for snapshot-merge support before merge init
      WHATS_NEW: for commit 4f6c2951d6495ee335ab69da44ae2647cd341276
      WHATS_NEW: bad day
      refactor: rename embedding area -> bootloader area
      WHATS_NEW: ea_start,ea_size -> ba_start,ba_size
      dmeventd: always return success on dmevetnd -V
      WHATS_NEW: return success on dmeventd -V
      man: ea_start/ea_size -> ba_start/ba_size
      initscripts: add pidfile reference in chkconfig header for clvmd and cmirrord
      cleanup: use libdm's dm_sysfs_dir() for sysfs directory throughout
      refactor: move lib/filters/device-types.h -> lib/device/device-types.h
      refactor: move lib/device/device.c -> lib/device/dev-type.c
      refactor: make device type recognition code common for general use
      dev-type: dev_get_primary_dev fn: use dev_types and provide better return codes
      filter-mpath: detect partitions of mpath components
      cleanup: remove old and unused code to detect partition types
      distclean: add missing items
      dev-type: refine dev_get_primary_dev return codes and add more comments
      man: refine lvm.conf and man page documentation for autoactivation feature
      typo: lvm.conf: auto_activation_list -> auto_activation_volume_list
      conf: refine lvm.conf documentation for autoactivation feature even more
      dev-type: add/fix references for dev_types in non-linux case
      dev-type: dev_get_primary_dev: fix ret value if dev is a partition and we used sysfs
      cleanup: clear outdated comment (TODO already done)
      metadata: log_debug only when BA found in metadata
      refactor: factor out common part of the code to open and read config files
      config: add config_source_t type to identify configuration source
      configure: add configure --with-default-profile-subdir
      config: add support for loading profiles
      config: add override_config_tree_from_profile fn to add the profile to a configuration cascade
      metadata: read VG/LV profile name from metadata if it exists and load it
      config: add profile arg to find_config_tree_node
      config: add profile arg to find_config_tree_str
      config: add profile arg to find_config_tree_str_allow_empty
      config: add profile arg to find_config_tree_int
      config: add profile arg to find_config_tree_int64
      config: add profile arg to find_config_tree_float
      config: add profile arg to find_config_tree_bool
      metadata: add support for storing profile name in metadata (during vgcreate/lvcreate)
      tools: add support for changing configuration profile for existing volumes (vgchange/lvchange)
      toolcontext: add a few comments for struct cmd_context and rename config_valid -> config_initialized
      config: make it possible to run several instances of configuration check at once
      config: add validation for configuration profiles
      lv: add lv_config_profile fn
      thin: make selected thinp settings profilable
      profile: strictly require profiles to be valid
      conf: add separate 'conf' dir for config files
      profile: add default.profile and install it
      report: add vg_profile and lv_profile to report the profile attached to VG/LV
      WHATS_NEW: configuration profile support
      WHATS_NEW: config/profile_dir
      man: document profile config and related options
      man: refine doc for config profiles
      config: fix timestamp comparison during merge
      cleanup: cleanup dumpconfig code
      config: fix use of last config check status if creating CFG_DEF_TREE_MISSING tree
      config: make it possible to do a raw config tree merge
      dumpconfig: add --mergedconfig option
      dumpconfig: add --type profilable
      dumpconfig: honour --atversion with --type profilable
      config: fix unterminated strings in arrays
      lvchange: backup VG after changing profile
      activation: add support for skipping activation of selected LVs
      tools: add --setactivationskip and --ignoreactivationskip to vgchange/lvchange
      lvs: add 's(k)ip activatoin' lv_attr field
      conf: add activation/auto_set_activation_skip
      tests: fix tests to cope with latest changes
      tests: use lvcreate -s -K for thin snapshots
      WHATS_NEW: support for LV activation skip flag
      man: lvs lv_attr 's(k)ip activation'
      api test: remove unused variable
      fix: apply profile and then get the config path + auto_set_activation not profilable
      config_settings: add comment about possible types
      profile: move profile assignment to common lv_create_empty fn
      systemd: generator: add lvm2-activation-net.service
      dev-type: dev_get_primary_dev default error code 0, not -1
      systemd: lvm2-activation-generator: use LOG_DEBUG/ERR severity for kmsg
      tests: comment about pvscan --cache return value
      man: pvs -o ba_start,ba_size -> pv_ba_start,pv_ba_size
      lvconvert: add more checks for lvconvert --type
      systemd: udevadm settle for lvm2-activation-net.service
      filters: fix segfault on incorrect global_filter
      tests: add profileconf fn to generate profiles
      configure: autoreconf
      WHATS_NEW: move line to WHATS_NEW_DM
      thin: apply VG profile if creating a new thin pool
      thin: chunk_size check already part of get_profilable_pool_params fn
      lvmetad: fix mda offset/size overflow if >= 4g (32bit)
      WHATS_NEW: previous commit
      thin: fix commit e195b5227e624cb125b070b4a10e24efdab16d53
      tests: add profiles.sh test
      WHATS_NEW: entry for 19baf84290186a550b212260144523266350252b
      workaround: gcc v4.8 on 32 bit param. passing bug when -02 opimization used

Petr Rockai (536):
      Fix some memory leaks in dmeventd.
      Fix the regression introduced by dmeventd leak fixes.
      Allow keyboard interrupts in yes_no_prompt(). Add code to toollib.c
      Make warnings go to stderr. Adds log_warn macro for that purpose,
      Make warnings go to stderr. Change log_warn to that effect, log_print
      Fix a possible segfault in libdevmapper-event. Thanks to Brian J. Wood
      Fix a bug in lvm_dump.sh checks for lvm/dmsetup binaries quote the
      Fix underquotations in lvm_dump.sh.
      a) use dmsetup version to check for dmsetup, but if it fails, set
      Fix a possible double-free in libdevmapper-event.
      Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs.
      Add snapshot dmeventd library (enables dmeventd snapshot monitoring).
      Amend previous commit. * does not match .files...
      Print warning when lvm tools are running as non-root.
      Fix dmeventd regression where mirror and snapshot monitoring libraries
      Add #include <signal.h> to dmeventd.c, fixes compilation on NetBSD.
      Add "flags" metadata field (akin to "status") for backward-compatible flags.
      Fix gcc warnings.
      Import new test utilities and a test harness.
      Export testlib_cleanup_ from test-lib.sh, which is needed for test-utils.sh to
      Update a bunch of tests to use functionality from test-utils.sh.
      Add a simple test for partial activation.
      Add a test for reappearing lost PVs causing endless metadata correction
      Update test/Makefile.in to use the new harness for calling tests.
      Convert t-pvremove-usage to use the new test-utils.sh.
      Convert t-vgsplit-usage.sh to use the new test-utils.sh. Original conversion by
      Port over t-vgreduce-usage. Should fix testsuite hangs where pvremove -ff would
      More test conversions, all of these are by jstava.
      Fix a syntax error in one of the scripts, introduced by last commit.
      Conversion of t-vgsplit-operation.sh by jstava.
      Fix [ a = b ] usage in t-vgsplit-operation: string comparison is '=', not '=='.
      Improve harness.sh output: also mention failing test's name near the end of its
      Cosmetic: get rid of trailing garbage on comments in t-vgslpit-usage.sh.
      Make harness.sh exit with non-zero status when tests fail.
      More test conversions by jstava. Make check still passes.
      Add a workaround for missing `losetup -s` by jstava, and a print a stacktrace
      Conversion of last 2 tests to use test-utils.sh, by jstava.
      Re-indent test-utils.sh consistently, using tabs.
      Use $(abs_top_builddir) instead of @DMDIR@ and update paths appropriately.
      Also report the tests that have been skipped, at the end of harness.sh.
      Fix typo.
      Set LD_LIBRARY_PATH in init.sh, as it is required to run dmsetup now as well,
      Explicitly check after lvremove -ff vg that it did its job. By jstava.
      Use separate locking directory for each of the tests, as they never share a
      Add bz186013 check -- lvcreate rejects an invalid regionsize (jstava).
      bz429342 lvcreate --nosync
      add bz264241 check
      Minor code and documentation cleanups and changes by jstava.
      Fix t-pool-labels to pass again after the vgdisplay error return fix from
      Include libdm in lcov reports.
      Import a bunch of new tests by jstava. Mostly everything pass, they however
      Add a bunch of sub-tests aimed at testing various bugzillas, by jstava.
      Document current state of inconsistent metadata behaviour of a few commands in
      Fix some checks in lvm-utils.sh. Note that "$(test ...)" is always empty, since
      A C implementation of "not" that handles fatal signals rather more
      Re-implement the test harness in C. This lets us pass through signals and
      Only fail when tests have failed, but not when they have been just skipped.
      Fix test output collection in harness.c.
      In testsuite's not.c, print a notice when program dies of a fatal signal.
      Detect and wipe swap signatures in pvcreate.
      Some extra (paranoid) checks on dev_is_{md,swap} result.
      Missed file from previous checkin.
      Do not include MISSING_PVs in allocation maps.
      A more thorough PV equality test (that also copes better with MISSING_PVs) in
      Refuse adding missing PVs in create_pv_list in toollib when allocatable_only is
      Implement, test and document (first iteration of) lvconvert --repair.
      Avoid scanning non-PV devices in functional tests, otherwise lvconvert --repair
      Update WHATS_NEW wrt a recent patch.
      Complain when lvconvert --repair is used on non-mirror LV.
      Allow metadata correction even when PVs are missing.
      - Ignore suspended devices during repair (Milan).
      Get rid of the mdadm presence check in t-000-basic: no actual test uses
      Refuse to open VG with MISSING_PVs for update unless handles_missing_pvs is set.
      Take just a read lock when activating in lvchange.
      Remove lockingfailed().
      Port process_each_pv to new vg_read.
      Fix bad prototype from previous checkin.
      Un-export vg_read_internal.
      Fix warning.
      Update synopsis in lvconvert manpage to mention --repair.
      Allow LV suspend while --ignorelockingfailure is in force.
      Add test for RHBZ 481793 (passing, thanks to vg_read changes checked in
      Slightly refactor mirror log conversions in lvconvert.
      Make lvconvert honour log mirror options combined with downconversion.
      Refactor file locking, lifting the flock wrapper code into separate
      Make lvchange --refresh only take a read lock on volume group.
      Implement write lock prioritisation for file locking and make it default.
      Do not override the distclean target in liblvm's Makefile, it annoys make and
      Handle metadata with unknown segment types more gracefully.
      Fix the "const discarded" warnings introduced in the unknown segment patch.
      Only announce mirror monitoring to syslog after initialisation succeeds.
      Rudimentary support for running testsuite in a builddir != srcdir situation.
      Issue an Internal error message whenever _memlock_count drops below 0.
      Add an extra memlock_inc() to _remove_mirror_images to properly balance
      Fix another bug in memlock handling, this time the "global" dmeventd memlock
      What's new.
      Fix the dmeventd LD_LIBRARY_PATH in the testsuite.
      Add a missing #include (fix compiler warning).
      Un-export vg_read_internal.
      The double resume in remove_mirror_images does not happen *always*. Only call
      In case we refuse to continue due to missing PVs, print a hint about using
      Add a basic test for snapshots of mirrors, thanks to Jon Brassow.
      More fixes for the testsuite in the $(builddir) != $(srcdir) situation.
      Fix test/api to work with srcdir != builddir.
      Don't fail in the builddir == srcdir case, though. (testsuite)
      The sourcedir instances of the test scripts are not PHONY.
      Optionally abort on internal errors (and leverage this option in the
      If aborting due to an internal error, always print the message causing this.
      #define an INTERNAL_ERROR macro and use it throughout LVM.
      Revert unintended change that slipped in with last checkin.
      Also clean up MISSING devices in --removemissing --force in vgreduce.
      Fix removal of multiple devices from a mirror (+ regression test).
      Revert another unintended change that snuck in.
      In lvconvert --repair --use-policies, for the allocate policies, return success
      Allow vgremove of a VG with PVs missing.
      Make lvconvert --repair --use-policies exit with success when no action is needed.
      In testsuite, catch also failures that happen in the middle of a pipeline.
      Relax a check on blkid exit value, which seems to be different in different
      Add _mlog devices to dependency trees using UUID, not name, in activation.
      Add infrastructure for running the functional testsuite with locking_type set
      Skip locking_type 3 tests instead of failing when system-wide clvmd is running.
      Run both locking_type 1 and 3 tests (forgot to uncomment locking_type 1 before
      Also honour abort_on_internal_errors when log_fn is set.
      When a scsi_debug modprobe fails, skip the test instead of failing it.
      Enforce distinct-PV allocation of snapshot/origin pairs in vgsplit test.
      Work around a problem in t-mirror-lvconvert: different PV order on the
      Re-run failing tests with log/verbose=4 (-vvvv) to help with debugging.
      Do not pass NULL to setenv in the test harness.
      Put back the `lvconvert -m+1 --mirrorlog disk' test in t-lvconvert-mirror.sh.
      Move a fragile testcase toward the end of t-mirror-lvconvert.sh.
      Keep the testsuite stats correct in spite of failed-test repetition.
      In test harness, use fwrite(3) in place of write(2) to avoid mixing fd-level
      Refactor the test utilities, dropping the legacy test-lib.sh and curtailing
      Avoid spurious skips in the testsuite due to obsoleted
      Set ulimit -c to unlimited to allow coredumps to be collected and analysed in
      Fix a mis-override of $PWD in test-utils.sh.
      Don't forget to cd into $TESTDIR in test-utils.sh / prepare_testdir.
      Do not pollute /tmp with testing byproducts.
      Add a new helper script for the testsuite, that makes checking for various
      Explode t-mirror-basic into a number of smaller tests.
      Absorb t-mirror-lvconvert-usage into t-lvconvert-mirror.
      More testsuite helpers for check.sh.
      For the testsuite, set a default polling interval to 0 in lvm.conf. Cuts down
      Fix t-lvcreate-usage, as lvcreate ... -i1 no longer prints "Redundant stripes
      Make it easy to run just a subset of tests by saying `make check T="regex"`.
      Disable the rather-dangerous prepare_scsi_debug_dev in the testsuite.
      Optionally disable the verbose repeat of a failed test (export
      Fix a reversed exit status from test harness.
      Process all core dumps that exist upon a test failure (this would hopefully
      Add check_cluster and check_local targets in addition to just "check".
      SIGTERM testing clvmd before SIGKILL-ing it.
      Allow incomplete mirror restore in lvconvert --repair upon insufficient space.
      What's new.
      Add a "should" alongside "not" to the test utilities. When a "should" command
      Suppress duplicate error messages about read failures and missing devices.
      What's new.
      Add some basic provisions for automated testing of dmeventd.
      Add a basic test for dmeventd triggering lvconvert --repair. Needs improvement.
      Improve the "check" testing utility: slightly refactor and provide
      The "should" testing utility should actually only give a warning when the
      Rename t-partial-activate to t-activate-partial (more activation tests coming).
      Add a test for activation in presence of missing devices. This partially covers
      Revert the huge device creation in t-lvconvert-mirror and downgrade the
      A fairly extensive refactor of the mirror testing code. The exhaustive
      Revert the "repeat failed tests with -vvvv" feature. Instead, dump debug logs
      Bump the debug.log level from 4 to 9 (the numbering is different from verbose).
      Run tests in alphabetical (and thus stable across machines) order.
      Chop up the big t-lvconvert-mirror-basic loop across 4 separate test scripts
      Skip t-pvcreate-operation-md if mdadm fails to create the required device.
      Account for mirror transient status when doing lvconvert --repair.
      t-lvconvert-repair-transient hangs on .33 and on RHEL6 kernel -> disable
      Add a test of wait_for_locks behaviour (adapted from an original by Dave).
      Refactor the handles_missing_pv logic in lvchange.
      Minor shell style cleanup.
      Maintain memlock balance in clvmd.
      .
      Restore the "removemissing" behaviour of lvconvert --repair --use-policies.
      .
      Don't fail t-pvcreate-operation-md if mdadm is broken.
      Make vgck warn about missing PVs.
      Do not create a clustered volume group in t-nomda-missing.
      Reduce severity of the "mirror transient status" log message (this was never
      Never scan internal LVM devices.
      Update WHATS_NEW.
      test-utils: Fix a slight bug in the dmeventd-already-running error message.
      Add an option to skip some tests in make check (regex based, like T=): eg.
      Make lvconvert respect --yes/--force in the inactive log conversion
      Implement vgextend --restoremissing (BZ 537913), which makes it possible to
      Add a test for vgextend --restoremissing.
      Update WHATS_NEW.
      Give correct error message when creating a too-small snapshot (BZ 587063)
      Update WHATS_NEW.
      Limit repeated accesses to broken devices.
      Update WHATS_NEW.
      Tweak the lvm.conf comment about devices/disable_after_error_count.
      Tweak WHATS_NEW for devices/disable_after_error_count.
      Add a VERBOSE option to make check (make check VERBOSE=1).
      Fixes for the devices/disable_after_error_count documentation.
      Implement automatic snapshot extension with dmeventd, and add two new options
      Update WHATS_NEW.
      Avoid an extraneous orphans unlock in vgextend --restoremissing.
      Fix a deadlock in clvmd.
      Revert some debug statements that slipped in with last checkin.
      Implement dmeventd -R, allowing dmeventd to be restarted without losing
      Add a test for BZ 509182 (vgchange --monitor y breaks with max_lv).
      Reduce a (huge) timeout in t-mirror-names.
      Let's rely on the exit code and do not test for empty output.
      Use a more generous timeout for dmeventd in t-lvconvert-repair-dmeventd.
      Fix a double close in clvmd.
      Update WHATS_NEW.
      Add a missed test for dmeventd -R.
      Alasdair correctly pointed out that if the two closes are concurrent (I haven't
      Add code to the dmeventd snapshot plugin to automatically unmount snapshots
      Update WHATS_NEW.
      Add generic infrastructure to internal library to 'set' a property.
      Implement lvm_vg_set_property() by calling internal 'set' property function.
      Add vg_set_property to the interactive lvm2app test program.
      Make value.string const char *, in properties.h, to fix a warning introduced by
      Add a new type and function to lvm2app to enumerate lvsegs.
      Add the macro and specific 'get' functions for lvsegs.
      Add lvm2app function to query lvseg properties.
      Add a new type and function to lvm2app to enumerate pvsegs.
      Add the macro and specific 'get' functions for pvsegs.
      Add lvm2app function to query pvseg properties.
      Update interactive tests for lvm2app lvseg and pvseg apis.
      The _free_vg that is created as a placeholder when reporting segments in pvs
      This patch adds helpers to allow users to lookup a lv or pv handle by
      This patch adds helpers to allow users to lookup a lv or pv handle by
      Add interactive tests for functions to lookup a pv|lv by name|uuid.
      All 'size' values of lvm2app properties should be in bytes.
      Disallow certain lvconvert operations that need to both allocate and free
      Update WHATS_NEW.
      Avoid the automatic MISSING_PV recovery path in commands with special
      Fix a failing test (it used a combination of lvconvert parameters that is no
      Refactor the percent (mirror sync, snapshot usage) handling code to use
      What's new.
      First go at a somewhat more comprehensive mechanism to run "unit" tests for the
      Do not build vgtest (superseded by vgtest.t). Fix the build line for .t files.
      Only build the required bits under api/ on make check.
      Fix the sed expression to get "base" names of tests.
      Remove a redundant %.o: %.c rule from test/api/Makefile.in.
      Add a validation step for pvmoveN internal LVs to vg_validate.
      Hack up the RUN_BASE computation in the test Makefile.in a bit more (so that it
      Add further consistency checking to vg_validate, ensuring that all segment
      Add getters for copy_percent and snap_percent to the lvm2app API.
      Fix sed substitution in copying tests to builddir (test/Makefile.in).
      Use system assert in test/api/percent.c, for now.
      Substantial rework of the functional test support code. Some new features:
      Fix a couple of bugs in the new (test/lib/)aux.sh.
      Move the mkdtemp functionality into test/lib/utils.sh.
      Fix typo in t-pvcreate-operation-md.sh.
      Add a test for RHBZ 640621 (metadata/dirs + no PV MDAs broken).
      Fix another bug in t-pvcreate-operation-md (should pass now).
      Re-enable t-lvconvert-repair-transient, avoiding the deadlock by running mkfs
      Remove obsolete bits of support code from test/.
      Fix up the make clean target in test/.
      In aux, exit 200 no longer works as skip -- replace with real skip call.
      Relax the mirror test in test/lib/check.sh.
      Disable activation/monitoring in testing lvm.conf by default.
      Remove *.t in test/api's make clean target.
      Fix a typo in the new relaxed mirror check (test/lib/check.sh).
      Add a test for the interaction of transient errors and dmeventd mirror repair.
      Add a test for the interaction of snapshots of mirrors and lvconvert --repair.
      Skip the api/percent test on kernels <= 2.6.32.
      Kill clvmd properly after locking_type 3 tests (using clvmd/singlenode).
      Fix a typo in pvmove.8 (fixes BZ 673618, spotted by John Bradshaw).
      Allow overriding the DM_DEV_DIR used by the test suite (fixes BZ 672796). Use
      Avoid flooding syslog with redundant messages when a snapshot is invalidated
      Fix an lv_postorder bug where it failed to clear temporary flags, making it
      As requested in BZ 454618:
      Do not run past the end of an array in dmeventd's _handle_request when faced
      In some cases, we could end up with a mirrored LV without a MIRRORED flag. In
      What's new.
      Add rudimentary versioning to the dmevend protocol, allowing us to detect the
      This patchset refactors some reporting code and completes the remaining
      Make the mirror log checks in t-lvconvert-repair-policy a bit more strict
      Always copy all tests to builddir regardless of T/S, since subsequent runs
      Make vg_mark_partial_lvs also clear existing PARTIAL_LV flags, so it can be
      When glibc needs buffers for line buffering of input and output buffers, it
      Add a new entry point in the mirror lvconvert code, for removing missing mirror
      Rewrite vgreduce --removemissing --force, using existing primitives:
      Update WHATS_NEW.
      Initial design document for LVMetaD, building on the draft from June of last
      First stab at the prototypes of the daemon-common functionality (to be
      First go at the lvmetad client-side interface.
      Start filling in some of the common daemon (server-side) functionality, taking
      More scavenging of common daemon code, this time the clvmd local socket setup
      More work on the common daemon framework. Make things compile, too.
      Mention code layout in lvmetad DESIGN.
      First draft of a document describing how we will automatically and
      Add an API test that shows how to find a value of pe_start for a VG without
      Also check in the pe_start API test that the disks have not been touched.
      Common daemon code: Implement basic socket-based communication infrastructure
      Add a skeleton for lvmetad, a test client, and a temporary Makefile to build
      Fix RHBZ 651590 (failure to lock LV results in failure to repair mirror after
      What's new.
      Sketch out the actual on-wire format in daemon-client.h documentation, and add
      Call daemon_close before exit in the testclient.
      Do not open the socket with SOCK_NONBLOCK in daemon-client, since we have no
      Implement daemon_send_simple and use it in the testclient.
      LVMetaD build hack: link to lvm-internal &c. and add a simple test script.
      Parse the incoming config tree in daemon-server.c, providing the
      Also parse the config_tree on the client end (daemon-client.c).
      Add int/str lookup routines specific to the reply (in client) and request (in
      Differentiate the request and response format, in daemon/common.
      Fix t-vgreduce-usage to stop relying on the persistent cache not seeing a
      Add a couple missing #includes in uuid.h.
      Add a missing libdevmapper.h #include to lvm-types.h (for dm_list).
      Slightly refactor the config code to allow better reuse (no functional change).
      Revert the #include changes. Need to fix this at the #include site for now, and
      Improve format_buffer in daemon-shared.c, adding block formatting in addition
      Various improvements to the daemon-common code, including automated response
      Start filling in the core LVMetaD functionality and the corresponding
      More work on cache maintenance code in lvmetad: keep track of PV status.
      Work out some more details in metadata update in lvmetad.
      Add an API to config.h for creating values in the config_tree mempool.
      Make it possible to represent type-correct single-item arrays in config trees.
      Towards MISSING (PV) flag management in lvmetad.
      Make lvmetad report the VG ID and status (complete, partial) in reply to pv_add
      Add code to lvmetad's testclient that scans an actual physical device,
      Make lvmetad also report VGID in reply when adding a PV without MDAs (this
      Can't have a global memory pool in lvmetad (that would constitute an ongoing
      Fix two small (but eventually unbounded) leaks in daemon-server.c.
      Free up allocated memory before exiting, in lvmetad.
      Optimise PV -> VG lookups by using a UUID (hash) map.
      lvmetad: Avoid stale PV -> VG mappings on metadata update.
      First stab at making lvmetad-core threadsafe. The current design should allow
      lvmetad: Robustify update_pv_status and remove an useless lookup.
      lvmetad: Fix a possible infinite loop in vg_status.
      lvmetad: Obliterate vg_status by returning the same information from
      lvmetad: A couple of TODOs, and fix a few trivial memory leaks.
      lvmetad: Check integrity of multiple metadata copies, i.e. ensure that seqno
      lvmetad: Edit the MISSING_PV flags only after making a "reply" copy of the
      Move the core of the lib/config/config.c functionality into libdevmapper,
      Adapt the daemon/common code to use the new dm_config interface.
      Adapt LVMetaD to use the new dm_config interfaces.
      A compromise integration of LVMetaD into the build: I have kept all the
      Get rid of the old lvmetad Makefile.
      Fix warnings in daemons/common.
      Fix warnings and constness handling in lvmetad-core (adjusting the
      Do not call prepare_lvmetad just yet in tests.
      Mention --enable-lvmetad in WHATS_NEW.
      Replace const usage of dm_config_find_node with more appropriate value-lookup
      When resizing LVs, always round in the safe direction, regardless of whether we
      Update WHATS_NEW.
      Fix the divisibility check in the allocator for the mirror+stripe case (require
      Update WHATS_NEW.
      Keep the LVM-based dmeventd plugins from trying to manipulate the dmeventd
      New.
      Remove a redundant (and in some cases, misleading) message about snapshot
      In t-lvcreate-large, do not create a clustered VG. LV activation/suspend does
      Do not repeat a failed test's output when VERBOSE is in effect.
      Correctly handle concurrent read (CR) locks in singlenode clvmd. This means
      Implement a CUnit-based runner for unit tests. Copy and adapt (actual unit)
      Fix a syntax error.
      Tidy the shell tests into their own subdir. We now have:
      Fix the fallout in shell tests from the t-XXX -> shell/XXX move.
      Fix the last fix (t-XXX -> shell/XXX).
      Fix a bug in dmeventd snapshot monitoring code where the monitoring threshold
      Update WHATS_NEW.
      More of WHATS_NEW.
      Fix clvmd to respect DMEVENTD_MONITOR_IGNORE. Fixes a bug where dmeventd
      Update comment on LCK_*DMEVENTD*.
      Nowadays, lvm-version.h is generated from lvm-version.h.in, and lives in the
      Use pkg-config to look for CUnit (needed for systems where it's not on the
      In the dm_config_*get_* functions, make the actual value retrieval optional
      Start a rudimentary unit test for the dm_config_* interface.
      Add a unit test for dm_config_clone_node.
      Autoreconf.
      Add a shell test for config parsing and merging (lvm dumpconfig).
      Move dm_config_write out of libdm, back to lib/config, as config_write.
      Use a more canonic regex escaping in the default lvm.conf file for testing.
      Fix a compiler warning.
      Make a cleaner split between config tree and config file functionality. Move
      Fix up lvmetad for the minor API change in dm_config_create.
      Add a unit test for config cascade (overlay). Needs expanding though.
      Fix a couple of resource leaks in daemon-common server code -- filehandles and
      Unfortunately, blank lines are sometimes produced by config serializer, and
      Fix prototypes for daemon_send_simple (const char).
      Fix a boundary condition in read_buffer in daemon-shared.c.
      Beef up the lvmetad code with more functionality and a bunch of bugfixes. There
      Remove a dubious log message ("another thread is handling an event") from LVM
      What's new.
      Move lvmcache data structures behind an API (making the structures private to
      What's new: lvmcache.
      Keep a global (per-format) orphan_vg and keep any and all orphan PVs linked to
      What's new.
      In the test harness, do the back-substitution (@TESTDIR@, @PREFIX@) also on the
      Fix pool names of the format1/format_pool orphan VGs.
      Do not forget to initialise the error value in daemon_reply.
      lvmetad server-side update:
      Turn a warning to an error in vgreduce --removemissing, since we exit with a
      In lvmetad, also nuke VGs when all their PVs are stolen by another VG (vgmerge
      (lvmetad) Remove unused variable.
      Run tests with lvmetad if we have it.
      Update lvmetad: use device major/minor pair to track devices. Keep a pvmeta
      Drop the now-redundant pvid_to_status hash.
      Tweak lvmetad a bit more:
      Also use DEFAULT_RUN_DIR for the lvmetad socket on the client side.
      The lvmetad client-side integration. Only active when use_lvmetad = 1 is set in
      Missed update for include/.symlinks.in to include lvmetad.h.
      Add -ldaemon to make.tmpl.in.
      We need daemons/common now even if the lvmetad server side is not built.
      Add a missed dependency that is required to pull in dameons/common in an early
      Kick out a debugging call to valgrind in lvmcache-exercise.sh.
      Add a vgscan to lvcreate-repair.sh. The old test applied device filter hacks to
      Couple of improvements in the daemon (common + lvmetad) code:
      Make the calls to pvscan --lvmetad in the testsuite slightly more civilised.
      Fix an error path in daemon_open.
      Clean up the lvmetad state more thoroughly upon shutdown.
      Fix server-side leaks in lvmetad.
      Add tentative documentation of pvscan --lvmetad to the pvscan manpage.
      Improve error handling & reporting in common daemon code.
      - Improve error reporting on lvmetad connection failure.
      A bit of documentation for lvmetad_vg_lookup.
      Fix a possible SEGV in lvmetad client code, and a minor leak in pvscan
      Attempt a fix for lvm shell accumulating copies of orphan PVs with each "pvs"
      Fix a whitespace bug in the last checkin.
      Use 64 bit integers whenever extracting numbers from daemon replies.
      Add a regression test for the PSize bug in pvs/lvmetad.
      Use 64 bit integers for device size & label sector in _pv_populate_lvmcache in
      Add a toplevel check_lvmetad target.
      Fix a regression in handling --major/--minor arguments to lvcreate & lvchange,
      It's new.
      Relax the active-minor test a bit.
      Add a rudimentary lvmetad manpage.
      Add provisions to flag tests that we know will fail, without flagging the build
      Add a (currently failing) test for RHBZ 816672.
      lvmetad: Implement --test (fixes #832033).
      TEST: Add lvmetad-test; checks --test with lvmetad.
      libdm-string: Add dm_vasprintf.
      lvmetad: Fix an obscure error message.
      libdaemon: Draft logging infrastructure.
      TEST: Kill lvmetad early in teardown.
      filters: Alwayz zalloc the filter struct.
      dev-cache: Make it possible to pass in a NULL filter.
      libdaemon: Extend and refactor APIs.
      lib/cache/lvmetad: Refactor to use dm_config_tree in requests.
      example.conf.in: The command to refresh lvmetad is pvscan --cache.
      Implement devices/global_filter.
      lvmetad: Use "%" PRId64 in place of "%d" for extra clarity.
      lib/cache/lvmetad: s/pvscan_lvmetad/lvmetad_pvscan/ in the API
      Makefiles: Build libdaemonclient unconditionally.
      TEST: Add LVM_VALGRIND_LVMETAD to testing options.
      lvmetad: Make vgscan --cache an alias to pvscan --cache.
      lvmetad: Clear metadata/PV cache before a token-triggered rescan.
      lvmetad: Fix #845269: SEGV on corrupt lvmetad response.
      lvmetad: Give inconsistent metadata warnings in pvscan --cache.
      lvmetad: Initialise debug_config also if no -d is given.
      TEST: Workaround for lvmetad vs inconsistent metadata.
      lvremove: Ask before discarding data areas.
      lvremove: Revert to allowing removal of partial LVs.
      libdaemonclient: Use dm_{malloc,free} in place of {malloc,free}.
      libdaemonclient: Use log_sys_error in place of perror.
      libdaemon: Split daemon-shared.[hc] into daemon-io.[hc] and config-util.[hc].
      TEST: Add lvmetad-pvscan-cache to check that pvscan --cache works.
      TEST: Only run the pvscan --cache test with lvmetad active.
      lvmetad: Avoid overlapping locks that could cause a deadlock (BZ 862253).
      lvmetad: In pvscan --cache, update the token directly.
      dev-cache: Make dev_iter_create work with a NULL filter.
      libdaemon-server: Fix a memory leak in daemon_log_multi.
      libdaemon-server: Optimize logging for a fast no-output path.
      libdaemon-client: Fix a memory leak in daemon_send.
      lvmetad: Fix a typo-induced leak in destroy_metadata_hashes.
      TEST: When INTERACTIVE=1, allow scripts to control a TTY.
      TEST: Wait for lvmetad socket to appear in "aux prepare_lvmetad".
      TEST: Give lvmetad a chance to exit gracefully upon teardown.
      lvmetad: Fix a leak in an error path in update_metadata.
      lvmetad: Fix a leak on duplicated PVs (same PVID, different device).
      TEST: Check that LVM1 VGs work when using lvmetad (BZ 863401).
      example.conf: Warn about running lvmetad with use_lvmetad = 0.
      TEST: Avoid building unit tests with --disable-testing.
      libdaemon-server: Do not create pidfile if NULL.
      lvmetad: Only create pidfile when running as a daemon (no -f).
      configure: Use pkg-config to look for valgrind/memcheck.h.
      test: Skip thin tests if thin support is configured out.
      lvmetad: Fix the -f pidfile (non-)creation logic.
      lvmetad: Warn if lvmetad is running but disabled.
      test: Check that lvmetad is refreshed correctly on restart.
      lvmetad: Fix help output (flags and their meaning).
      pvscan --cache: Also read metadata from LVM1 PVs (BZ 863401).
      test: Skip the topology test if setting up scsi_debug fails.
      libdaemon: Make buffer handling asymptotically more efficient.
      test: Skip lvconvert-raid on kernels < 3.2 since they BUG out.
      lvmetad: Implement a "dump" request to capture lvmetad state.
      test: Add lvmetad-dump.sh.
      lvmdump: Fix systems with tr on PATH outside of /usr/bin.
      lvmdump: Add -l, to collect a state dump from lvmetad.
      lvmetad: Make --sysinit suppress connection failure warnings.
      lvmetad: Fix the fix for 813766 (lvmetad connection warning).
      Update WHATS_NEW.
      lvmetad: Only print scanning messages when scanning 1 device.
      lvmetad: Disable and warn when locking_type is 3.
      lvmetad: Init lazily, to avoid socket access on config overrides.
      test: Check that overriding use_lvmetad with --config works.
      Document use_lvmetad and global_filter in lvm.conf.5.
      Automatically restore MISSING PVs with no MDAs.
      lvmetad: Fix autoactivation for MDA-less PVs.
      toollib: Avoid a global lock in process_each_pv if lvmetad is used.
      Update WHATS_NEW.
      lvmetad: Fix a possible deadlock.
      lvmetad: Fix a possible race in remove_metadata.
      lvmetad: Fix a race in metadata update.
      lvmetad: Call _lvmetad_handle_reply in lvmetad_vg_lookup.
      Update WHATS_NEW.
      configure: Respect pkg-config --cflags for udev.
      lvmetad: Mark PVs visible to lvmetad but not to us as MISSING.
      lvmetad: Check for reappeared PVs.
      lvmetad: Fix a memory leak introduced in 15fdd5c90dd.
      test: Invalidate .cache after vgimportclone.
      test: Re-instate exec in lvm-wrapper, catching crashes inside not.
      libdaemon: Print a diagnostic when we fail to lock the pidfile.
      vgimportclone: override global_filter in lvm.conf
      filters: toplevel filter not persistent
      lvmetad: no use of persistent filter with lvmetad
      tests: add hide_dev/unhide_dev to aux
      tests: skip the double log failure test on 2.6
      tests: set up global_filter instead of just filter
      tests: make filter extension more robust
      tests: run all the test flavours in a single batch
      tests: collect all test results in files
      tests: do not expose duplicate PVs in vgimportclone.sh
      test: Avoid hardcoding path to bash (not all systems have /bin/bash).
      Move export_vg_to_config_tree alongside export_vg_to_buffer.
      Add and track an "ondisk" pointer to struct volume_group.
      locking: Make it possible to pass down an LV to activation code.
      Actually pass LV metadata to activation code, when available.
      metadata: Fix a pool CRC failure due to "late" ondisk copy creation.
      activation: Pass both ondisk and incore LV to suspend.
      format1: Fix snapshot reload in lv_remove.
      lvm2api: Make the vg_list_* functions work with lvmetad (+ test).
      metadata: Do not try to maintain an ondisk copy of orphan VGs.
      TEST: Add a regression test for the ondisk/orphan bug.
      metadata: Do not ignore errors in _vg_update_vg_ondisk.
      metadata: Fix tracking of read_status flags in _vg_make_handle.
      pvscan: Respect lvmetad (global) filter in --cache w/ a device.

Sebastian Ott (1):
      filters: add scm devices

Steven Whitehouse (77):
      dec use count on close. corrects a typo.
      o Use kmem_cache_destroy() to remove slab cache.
      o I'm afraid that wu and wl etc. is just too confusing.... I've changed it
      o Some ioctl() commands.
      o Some structures change size with different configs, so always include
      o Now we handle target modules correctly
      o Forgot to add ref to module.
      o Tidy in dm-fs.c
      o Two fixes which Alasdair pointed out.
      o New code for handling block device registration. Not yet used but checked
      Changes to device handling;
      o Forgot to create slab caches for dm-blkdev.c
      o As promised earlier, the device registration is now hashed and the
      o New ioctl(): LV_BMAP which is compatible with LVM so that hopefully LILO
      o Made pending I/O wait uninterruptible
      o Support /sbin/hotplug
      o Targets now get rw passed through so they can do COW for example
      o Use count should be an atomic_t
      o Fixed code where return value of vmalloc wasn't checked
      o Work in progress, please ignore these files for a day or two whilst I
      o Again, please ignore this for the time being.
      o New file dmfs-super.c
      o Changed dm_create() to return a struct mapped_device rather than an int
      Should have been included in the previous commit.
      These files are now a bit closer towards what I'm aiming at. Still a lot
      o Bug fix to LV_BMAP ioctl()
      o More fs fiddling. Another check point commit.
      o Cut down number of vmallocs to increase speed and efficiency
      o Change the deallocation of tables to match the vmalloc changes in my
      o Fixed a bug where we were not holding a reference of the block devices
      o Added ref counting to tables
      o Removed the error reporting function from the target constructor function
      o Further changes to new file system interface
      o Some new files (also part of new fs interface)
      o Changed to use table->err_msg rather than passing functions around
      o Use ERR_PTR and PTR_ERR rather than an extra argument.
      o Bug fix in error path
      o Sync up of todays changes .... nothing very important
      Well when things start looking so complicated that future direction becomes
      o Check in case of setting up volumes before root is mounted.
      o Beginnings of new interface.
      o More updates
      o Lunchtime.
      o Kill write funcs for error/status files
      Just a small sync of pending changes before I start looking at this again
      o Everybody needs dm.h
      Some more sync ups
      o Further tidyups and fixes.
      o Some bug fixes
      o More fixes
      o More bug fixes
      o Tidy up, removing debugging printk's no longer needed
      o Fixes to parsing code
      o Get file size correct for table
      o Fixed infinite loop in parser
      o Update to parser
      Ok. this is the big one.... the change to the new fs interface.
      o Patches to go with earlier check in
      o Fix a typo. This should fix devfs support.
      o Fix crash that Patrick reported
      o Remove unused variable.
      o Fix bug in dmfs-error.c where it could return too many bytes under some
      o Error list handling now part of fs rather than part of table.
      o Fix typos from yesterday
      o Correction in logic for write access to tables
      o Added a file containing a TODO list.
      o Added two items which ought to be done when we update to 2.4.14-pre3 or
      Tidy and changes to make code smaller.
      Oops. Forgot to check this in earlier. Changes as per previous check in
      o Fix module ref counts so that you can actually unload dm-mod
      o Revised seq_file usage after discussions on linux-fsdevel
      New patches for 2.4.16
      o Confusingly, dmfs-tdir isn't gone, its now called dmfs-lv.c and its the
      o Initial merge attempt
      o Added a few more projects
      o Removed unused MOD_INC/DEC_USE_COUNT
      o Updated projects.txt to remove the earlier error which turned out to be

Takahiro Yasui (7):
      Fix error message when adding metadata directory to internal list fails.
      Fix size and error message of memory allocation at backup initialization.
      Remove old metadata backup file after renaming vg.
      Restore log_suppress state when metadata backup file is up-to-date.
      Fix error message when archive initialization fails.
      Save and restore the previous logging level when log level is changed.
      Fix wrong number of mirror log at allocate policy

Thomas Woerner (2):
      Added files lib/lvm.h and lib/lvm_base.c:
      Fix include/.symlinks for lvm2.h to lvm.h renaming

Tony Asleson (42):
      python-lvm: Update example to work with lvm object removal.
      python-lvm: seg. fault in liblvm_lvm_percent_to_float
      python-lvm: Memory leaks & seg. fault fixes
      test: set LD_LIBRARY_PATH to all dirs with *.so
      python-lvm: Initial check-in of python-lvm unit test case.
      lvm2app: Add lv snapshot support
      config_def_check: fix memory leak
      lvm2app: Add thin and thin pool lv creation V5
      lvm2app: Implementation of pv resize (v6)
      lvm2app: Move percent_of_extents to lvm-percent.[h|c]
      lvm2app: Rework argument handling for lv resize
      lvm2app: Move core lv re-size code (v6)
      lvm2app: Implement lv resize (v3)
      lvm2app: Add function to retrieve list of PVs V3
      lvm2app: Implement lvm_pv_remove V2
      python-lvm: Add bindings for lvm_pv_remove
      lvm2app: Set suppress to 1
      _get_pvs: Remove unused variable
      lib2app: Fix warnings in lvm_list_pvs_free
      lib2app: Added PV create. V2
      python-lvm: Add pvCreate python method
      lvm2app: Add method to retrieve attr from lv.
      python-lvm: Add method to retrieve lv attr.
      lvm2app: Add function to retrieve the origin.
      python-lvm: Added lv method getOrigin
      python-lvm: Bindings for thin pool, thin lv creation V3
      lvm2app: Add thinp snapshot functionality
      python-lvm: Change snapshot call impl.
      python-lvm: Bug fixes from unit tests.
      liblvm: Moved additional pv resize code
      python-lvm: Improve unit test case(s)
      liblvm/python-lvm New additions
      lib/properties: Common code for handling properties.
      lvm2app: Add thin and thin pool lv creation
      lvm-percent.c: Add #include "lib.h"
      lvm2api: Add missing files from prev commit.
      python-lvm: Add call to close/re-open C lib.
      lvm2app: lvm_vg_list_lvs filter hidden LVs
      python-lvm: Change exception back to LibLVMerror
      python-lvm: Correct parsing arguments for integers
      python unit test: White space/pep8 cleanup
      python unit test: Limit PVs to use

Zdenek Kabelac (1632):
      added more safety checks
      readahead at least twice the strip size (same as raid0 driver does)
      added manpage
      install conditionally fsadm.8 manpage
      Fix lvresize to support /dev/mapper prefix in the lvname
      fixing fsadm usage with older blockdev,blkid,readline tools
      Fix wrong free_count on imported volume group from pool device
      copy vgid only when volume group is present in import_pool_pv
      Improve/Fix read ahead 'auto' calculation for stripe_size
      extended configure with --enable-profiling for compiling code with gcov info
      Added generation of the versioned libdevmapper-event.so for LVM's test
      disable mdadm test-case until a better solution is found
      * parse error output for 'auto' keyword
      avoid endless option parsing loop
      vgremove tries to remove lv snapshot first.
      put dmeventd into the LD_LIBRARY_PATH for lvm-wrapper
      add test for pool labels gfs
      configure aborts if lcov or genhtml are missing with --enable-profiling
      added const and saved relocation entry
      added const modifiers
      * more strict const
      get lv_list properly from vg->lst and fix compiler warning
      added test for coverage improvement
      valid parameter for lvchange -p is 'rw'
      fail testcase for failed commands inside the for loop
      * minor compilator warning fix for improper function declaration.
      removed redundant redeclaration of init_indent() and init_msg_prefix() from lvm-logging.h
      minor compiler warning fix for function declaration prototype
      cleaner const char* usage for last_path_component()
      fix missing const char*
      daemons depends on liblvm2cmd - fixes parallel builds
      add simple test for dev node usability (detect devices mounted with nodev)
      operate on test subdirectory instead on main /dev
      Replace _dm_snprintf with EMIT_PARAMS macro for creating target lines
      add support for ext4 resize in fsadm
      Remove external dependency on the 'cut' command in fsadm
      Fixed bug where lvresize option -t was not properly passed to fsadm.
      Do not create some dm and lvm static librarie when they are not requested
      Avoid referencing files from DESTDIR during build process
      Do not query nonexistent devices for readahead.
      Use 'lvm lvresize' instead of 'lvresize' in fsadm.
      Minor replace of of ${top_srcdir} with $(top_srcdir) for lcov target
      Run distclean also for daemons/cmirrord
      Remove daemons/clogd from distclean dirs (replaced with cmirrord)
      Update distclean target for rename clogd to cmirrord. (2.02.52)
      Add fflush for the case the log is redirected to the buffered file.
      Export functions out_inc_indent(), out_dec_indent() for creating
      Update for outnl and indent functions
      minor code comment update
      minor whitespace indentation
      skip cast from (void*)
      minor indent change
      Fix coredump and memory leak for 'dmsetup help -c'
      Fix unlocking vg in some pvresize and toollib error paths.
      Destroy allocated mempool in _vg_read_orphans() error path.
      Cleanup returns for void functions.
      Fix typo  fsdam -> fsadm   (closes bug 552721)
      Just add '.' at the end of error message.
      Show all fields for 'dmsetup info -c -o all'.
      Error message prints unrecognized key.
      Use offsetof() macro and avoid defining dummy static union for FIELD() macro.
      Add macros outsize() for out_size() and outhint() for out_hint() that check
      Export function out_text_with_comment() and add outfc() macro that checks
      Use macro outsize() with check for error return value.
      Add few const modifiers.
      orig_status preserves 64bit status.
      lvol%d is generated for NULL name in lv_create_empty().
      Move initialization of the 'cmd' member of the struct alloc_handle
      Cleanup gcc warning: null argument where non-null required (arg.2)
      Cleanup gcc warning: cast from function call of type 'struct dm_list *'
      Cleanup gcc warning: cast discards qualifiers from pointer target type
      Cleanup const compiler warning
      Update entry for few previous gcc cleanup commits.
      Reset released pointer and counters.
      Log entry for the last lvmcmdline.c commit
      * add more 'const' - fixes gcc constness warning
      Cleanup float arithmetic gcc warning.
      Fix dm_report_field_uint64 to really use 64bit.
      * update for last 3 commits
      Use dm_report_field_int32 instead of dm_report_field_uint64 for printing '-1'
      Update
      Usage of AC_PROG_SED and AC_PROG_MKDIR_P requires autoconf version 2.61.
      Use datarootdir and fix warning during configure process:
      Use $(top_builddir) for inclusion of make.tmpl in Makefiles.
      Replace CFLOW_CMD only in make.tmpl and use it as variable elsewhere.
      Use consistently $() instead of ${} for all Makefile variables,
      This patch moves inclusion of the make.tmpl before DEFS modification,
      As fsadm is installed by default - it's a common practice to rather
      Introduce LVMINTERNAL_LIBS
      Readline linking update
      Pthread linking change
      Removes -rdynamic from linking of lvm.static and dmeventd.static.
      This patch add SELINUX_LIBS and STATIC_LIBS variables.
      Use DL_LIBS, remove -ldl from global LIBS and link -ldl only when needed.
      Use UDEV_LIBS, and link -ludev only when needed.
      mlockall() -> mlock()
      Use '_' prefix for local static variable.
      Unconditionaly ignore also Virtual Dynamically-linked Shared Object
      Use mlock() only on 'r' memory maps
      Update comments for selecting maps
      Remove const modifier for struct volume_group* from process_each_lv_in_vg().
      Move declaration of struct dm_info info to declaration block.
      Updates .so links for plugins
      Fixing compilation warning: implicit declaration of function ‘umask’
      Avoid hard sed replacement - i.e. quick test change in make.tmpl
      Add $(LIB_STATIC) to TARGETS so it's cleaned in the same way
      Use $(top_srcdir) for sources and add cscope.out to distclean targets.
      distclean fixes
      Update cflow file generation - support build dir and use $(top_srcdir)
      Fixing another set of distclean problems where we left some generated files
      Split long line in Makefile and keep $abs_top_buildir as shell variable
      Avoid modification of .in files outside man directory.
      Oops, avoid returning errors from shell to makefile for builddir == srcdir
      Fix also error code from clean:
      Remove mlockall() form dmeventd
      Fix resouce leak in error path
      Release pool in the same reversed order
      Updated syslog messages
      Force C locale
      Update memlock
      Count only readable size for memlock stats.
      Update for dmeventd changes.
      Use .commands created in builddir for symlink installation.
      Install generated 10-dm.rules from builddir.
      Update for make install.
      Missed to convert T -> SCRIPTS
      Set ret value to success initially.
      Better debug message for Un/Locked memory size.
      Fix lcov target
      Distcleanup config files only in toplevel directory.
      As lcov module is not installed with GD.pm dependency we need
      Using 'not' if the test 'should' fail.
      Add cleandir target.
      Use vpath instead of VPATH.
      INSTALL rules updates
      Update install rules for udev.
      Use C locales and use_mlockall for clvmd.
      Add error diagnostic for setenv failure.
      Added awk script relpath.awk to calculate relative paths.
      Fix double DESTDIR usage for infodir and mandir.
      Install symbolic .so links with relative paths between usrlibdir and libdir.
      Make matcher_t and parse_t compilable
      Small indent change
      Show string with invalid pattern
      Release pools for regex if there is error during processing
      Initialise _vginfos list staticaly so there is no problem with using uninitialised
      Install plugins to subdirs
      Add dm_list_splice() to join two lists.
      Headerfile <pthread.h> is no longer needed here
      Link liblvm2cmd.so with devmapper-event and devmapper libs.
      Link libdevmapper-event.so with libdevmapper.so.
      Plugins do not use pthread or lvm2cmd directly.
      Skip unneeded 'cat' command execution.
      Use Require.private: field for devmapper-event.pc
      Add UDEV_PC and SELINUX_PC substituted variables
      Switch to use Requires.private for devmapper.pc and lvm2app.pc
      Add pkgconfigdir for placement of .pc files
      Use /bin/bash for scripts with bashisms
      For lcov target there is no need to include source file dependencies
      Return ECMD_FAILED for break in process_each_lv() and process_each_segment_in_lv()
      API change for args of process_each_lv_in_vg()
      Replicator: libdm support
      Replicator: support deactivate of replicator-dev nodes
      Replicator: check open_count for parents of presuspend_node
      Replicator: base lvm2 support
      Replicator: new files for Replicator target
      Replicator: check replicator segment
      Replicator: extend _lv_each_dependency() with dependencies for Replicator devices
      Replicator: extend volume_group with list of VGs and flag
      Replicator: add sorted cmd_vg list
      Replicator: add find_replicator_vgs
      Hmm - fixing cvs import mistake
      Right directory name for replicator files.
      Remove files from wrong directory
      Add toolcontext.h header file.
      Replicator: add read and release VGs for rsites
      Replicator: use cmd_vg list for _process_one_vg()
      Replicator: use cmd_vg for process_each_lv_in_vg()
      Replicator: lock_lv_vol() finds missing VGs
      Replicator: activate checks for missing vgs
      Replicator: update _create_partial_dtree()
      Replicator: VG with cmd_missing_vgs does not generate output
      Replicator: add replicator to dtree
      Replicator: update activate code for vgchange
      Update Copyright date for resently modifed files
      Fix copy&paste detection of kernel release version.
      Use absolute paths in commands
      Use INSTALL_DIR to create directories
      Fix wrong usage of exec_prefix from previous patch introducing LVM_PATH define
      Update WHATS_NEW  for last commit
      Use "" instead of <> for  configure.h and libdevmapper.h
      Update lvresize/extend/reduce manpages with --nofsck, --resizefs options
      Add man page for dmeventd
      Add man pages for lvmconf and unsupported lvmsadc and lvmsar tools.
      Adding section number for lvm.conf manpages.
      Better WHATS_NEW message - as we still have not fixed 'make exec_prefix' build
      Fix typo: premitted ->  permitted
      Fix typo: "INTERNAL ERROR" -> "INTERNAL_ERROR"
      Add few missing information about what is this script doing.
      Preload libc locale messages.
      Fix typo reported in Debian bugzilla #586043
      Cleanups for configure:
      Minor optimalization of _test_word.
      Do not log backtrace in valid _lv_resume() code path
      Small update of memlock debug messages.
      Set return value 0 for 'dmsetup -c -o help'
      Update for dmsetup
      Revert previous commit as it would return also for incorrect syntax.
      Fix format string from patch apply mistake
      Do not use VPATH in include/Makefile
      Visually better align lines which are executed as a result of true
      Using count=0 is sufficient for creation of zeroed files.
      Add shell function to trim spaces.
      Minor speedup of lock test -
      Fix return  status 0 for "dmsetup info -c -o help".
      Clean generated files .exported_symbols_generated, example.conf for distclean.
      Wait for node creation before displaying debug info in dmsetup.
      Use void parameter for function definition.
      Fix constness warning in archive_file structure from archive.c.
      Fix const warning in dev_manager_info() and _dev_manager_lv_rmnodes().
      Fix 'void*' arithmetic warning in some functions from libdm-iface.c.
      Fix 'void*' arithmetic warnings in dbg_malloc.c.
      Add missing cleanup rule for generated .exported_symbols_generated
      Maps fix
      Fix leaked pool report
      Fix memory leak of config_tree
      Replace  "can not" with "cannot"
      Fix a serious bug in the behavior of fasdm tool when breaked.
      Correctly respect --dry-run option for fsadm
      Support for passing --yes flag recursively.
      Fix assignment of default LVM variable
      Fix detection of mounted filesystem.
      Fix usage of --yes flag for ReiserFS resize
      Add support for noninterctive shell execution
      Update script for fsadm testing
      Skip fsadm testing until proper installation rules are commited in.
      Don't use floor() in _bitset_with_random_bits
      Fix linking order for liblvm2cmd
      Speedup memory un/locking
      Update
      Fix strict-aliasing compile warning in partition table scanning
      Add coverage test for partition table scanning
      Fix clang warning for ntohl(*((uint32_t *)buf))
      Print vg_name and do not to access vg->name
      Ensure we always have origin defined
      Reuse result of previous strchr
      Fix potential NULL pointer dereference
      Fix missing initilisation to 0
      Switch to char* arithmetic from void*
      Use 'const' struct id *pvid for device_from_pvid()
      rom -> from
      ok this seems to be never ending story...
      Use const pointer for return value of dm_basename
      Fix constness warnings
      Fix constness warning for _vg_read_by_vgid() uuid usage
      Fix constness warning
      Fix constness warning
      Use const config node
      Remove bufused for calculation
      Update C declaration  () -> (void)
      Use static indentifier for internal functions
      Instrument compiler about code unreachability
      Fix NULL pointer dereference for too large MDA error path
      Hotfix usage of __builtin_unreachable()
      Macro uninitialized_var gives warnings in static analysis
      Add missing return for NULL passed buffer
      Return different status code for fsadm check of mounted filesystem
      Add DIAGNOSTICS section to fsadm man page.
      Use new status code from fsadm check
      Use include make.tmpl
      Add given user prefix to make target install_initscripts
      Add OCF support
      Fix include commit and switch to use DISTCLEAN_TARGETS
      Scan also 'mount' output for mounted filesystem.
      Update fsadm regresion
      fsadm fix for downsize of unmounted fs
      Add date configurable variable DATE
      Preserve const for char pointer
      Move va_end(ap)  so we do not leave with return -1 without calling it.
      Move va_end() so it is also used before error path  return
      Add missing  closedir() - fixes resource leak
      Do not call dm_task_destroy with NULL
      Move arg_vgnames from local scope
      Add missing fclose
      Fix resource leak of dlopened pointer
      Fix memory leak in error path
      Add missing destrustion of cmd_context
      Cleanup remove test for NULL
      Fix check for empty system_dir
      Remove printing of LCK_CACHE
      Reset vg pointer after release
      Remove dead assignment in _lock_for_cluster
      Remove dead assignment in lvm2_main
      Remove unused 'i' in _pv_analyze_mda_raw
      Remove dead assignment in 'main'
      Remove dead assignment in dm_tree_node_add_mirror_target_log
      Use one fprintf call for usage print
      Fix memory leak in error path
      Remove dead assignment in _mirror_emit_segment_line
      Remove dead assignment in _step_matcher
      Remove dead assignment in wait_for_child
      Optimize lookup table read
      Check reallocated buffer for NULL before use
      Replace snprintf with dm_snprintf
      Add missing test for failed pool allocation
      Remove check for lv is NULL
      Add error path stack traces
      Add stack trace for error path
      Test uuid for NULL
      Remove unneeded test for NULL
      Fallback to full rescan for missing device
      Optimize second call to strchr with same parameters
      Check result of vginfo_from_vgname
      Add logging for pipe write() and close() error
      Test lv_name is not NULL
      Log error from unlink failure
      Add backtraces for errors
      Check lv_info() success
      Check str_list_add() success
      Remove reset of vg->vgmem pointer as it is access of already release memory
      Fix NULL pointer check for *buf
      Move var declarations to function begining
      Add more strict const pointers around config tree
      Test return value from read() and close() for an error.
      update
      Some const cleanups
      Use const char* const * for dm_regex_create()
      Fix wrong cast to char*
      Remove const usage from destroy callbacks
      Switch void* to char* arithmetic
      Use const char* for offset calculation
      Use const char * for name and old_name in vg
      Fix error path if regex engine cannot be created in _build_matcher().
      Replace multiple fprintf calls with one large string parameter
      Add checks for allocation errors in config node clonning.
      Use dm_free for dm_malloc-ed areas in _clog_ctr/_clog_dtr (cmirrord).
      Removed unused pointer
      Remove dead store in lvm_run_command
      Remove dead assignment of segh
      Remove unused variable dev_dir_provided
      Remove unused variable label
      Add check for unlink errors
      Add internal error if pointer is uninitialized
      Verbose log old_umask value
      Remove dead assignment
      Add missing test for reallocation error.
      Remove dead assignment of lv_total and lv_capasity_total
      Log error state from pthread_join operation
      Fix memory leak in debug mode of restart_clvmd() error path
      Add backtraces for archive and backup_locally
      Fix last pthread_join fix commit
      Detect errors from dm_task_set calls
      Hide unused code into if 0
      Add backtraces for backup and backup_remove fail paths
      Remove check for existance of vg pointer
      Remove dead assignment to thisfd
      Remove unused variable mirr_state and its assignment
      Return PERCENT_INVALID for error case
      Fail deamonization if lvmcache_init fail
      Add missing error path tests
      Fix gcc warnings for missing headers and prototypes
      Add sys_debug loging for unlink
      Check result of dm_snprintf for error
      Remove unneeded stack prints after log_error
      Remove dead assignment of 'ret' value
      Intentionaly ignore result from get_config_uint32
      Fix memory leak in filter creation error path
      Improve OCF dir support
      Add default error path for get_property
      Change import_vg_from_buffer to use config_tree
      Cache config_tree
      Use strndup as GNU extension
      Define DM_COOKIE_AUTO_CREATE
      Add internal fs cookie
      Speedup consequent activation calls
      Avoid cookie sharing between forked processes
      Fix missing declaration for fs_unlock
      Hotfix to stop harness busylooping
      Check for file with clvmd pid
      Add exec_cmd paramater  sync_needed
      Skip unnecessary lock_vol() call after volume deactivation
      Enable monitoring for cluster tests
      Include default make.tmpl
      Do not log backtrace for correctly processed command
      Set default value to counter_last
      Do not scan devices unnecessarily for reseting error counter
      Remove -f from list of targets for cleanup
      Initialize pool object for each row
      Add missing lvm_quit in test
      Avoid rebuilding of uuid validation table
      Skip NULL check before dm_free
      Use memcpy and add error message
      Compile code for memory debuging only with DEBUG_MEM
      Updating man pages
      Display duration of tests when it passed.
      Accelerate mirror tests
      Do not break pipes
      Add command to wait for udevadm settle
      Query only test related vg name
      Replacei sleep wait with udev settle
      Lower disk space usage of inconsistent mda test
      Lower device size of pvmove test
      Fix udev synchronization for no-locking mode
      Skip sysinit test for cluster
      Revert wrong fix for nolock locking missing fs_unlock
      Better fix for no-locking udev sync and clvmd
      Synchronize with udev for lv_info
      Do not check for open_count when not needed.
      Fix wipe size when seting up mda.
      Remove fs_unlock from lv_resume path
      Increase hash table size to 1024 lv names and 64 pv uuids
      Fix operation node stacking for consecutive dm ops
      Use cluster-wide message to request device name sync
      Remove extra sync calls.
      Add --addnodeonresume, --addnodeoncreate
      Place back some common options
      Add configure option --with-device-nodes-on
      Fix CRC32 calculation on big endian CPU
      Revert DEBUG_MEM cleanup commit
      Support 64bit ints in config
      Replace PV_MIN_SIZE with function pv_min_size()
      Critical section
      Remove fs_unlock after failed suspend
      Fix !DEVMAPPER_SUPPORT build
      Void* arithmetic replaced with char*
      API change - support more const arg
      Const fixing
      Memory unlock allows 1 page difference
      Add some backtraces for error paths in process_each_lv
      Use return_0 to get bactrace
      Add debug message for open_count failure
      Fix gcc warnings for unused variables
      Use backward compatible configuration for test
      Test result of dm_task_set_uuid
      Remove dead code
      Add fall through comments
      Fix void pointer arithmetic warning in pool debug code
      Quick fix to compile lvm2api tests when possible
      Build test.c also without readline library
      Invert condition for READLINE check
      Add missing return
      Indent case part properly
      Do not echo y to lvconvert
      Avoid using pipes on lv commands
      Leave some time to scheduler
      Fix reading of released memory
      Use lvm_getpagesize wrapper
      Fix reading byte from char params[-1] position
      Do not send random bytes in message
      Refactor vg allocation code
      Use void pointer instead of char for binary key
      Use hash tables for validating names
      Refactor code for _lv_postoder
      Indent spaces to tabs
      Keep pool name also for pool-fast
      Optimise _eat_space and _get_token
      Document pv_min_size in lvm.conf manpage
      Missed merge fix in vg_validate patch
      Fix usage of readlink
      Fix buffer allocation size for uuid string
      Use proper size of strncpy
      Fix allocation of system_id
      Revert this commit
      Add missing   for grown debug object
      Improve debug stack trace
      Release allocated memory on closedown
      Reduce amount of vgremove and vgchange calls
      Remove double braces
      Fix -Wold-style-definition gcc warnings
      Fix sending uninitilised bytes in cluster messages
      Fix access to released memory
      Const warning fixes
      Add attribute printf
      Add attribute printf
      Use id_equal instead of strncmp()
      Fix 2 signess warnings reported by gcc
      Simplify pool debug initialization
      Fix reading of unitialized memory
      Better shutdown for clvmd
      Valgrind updates
      Keep noreturn attribute for lvm_thread_fn
      Optimise error message write to _lvm_errmsg
      Word alignment for strings
      Few more files filtered from memory locking
      Keep the cache content when the exported vg buffer is matching
      Use created hash tables for quick check of LV, PV.
      Testing: remove -q from grep
      Fix free_vg order
      Newer gcc doesn't need this trick
      Fix some forgotten -Wold-style-definition gcc warnings
      Better const cast logic
      Use dm_snprintf
      Add missing printf attributes
      Fix some unmatching sign comparation gcc warnings
      Fix incorrect tests for dm_snprintf() failure
      Replace dm_snprintf with strncpy
      Fix use of released vgname and vgid
      Skip check for NULL before dm_free
      Missing space in debug message
      Add missing cleanup for vgimportclone script
      Do not log a superfluous stack message when the lv is properly processed
      Add lv_activate_opts structure
      Use lv_activate_opts struct instead of ACTIVATE_EXCL status flag.
      Use lv_activate_opts struct instead of ACTIVATE_EXCL status flag
      Add couple FIXMEs around suspicious code
      Remove test for status flag
      Remove unused internal flag ACTIVATE_EXCL from the code
      Code move of vg_mark_partial() up in stack
      Annotate CLVMD_CMD_SYNC_NAMES in decode_cmd
      Use -f to remove device
      Report internal error when parameters are missing on table load
      Increase timeout for udev settle
      Adding test for repair when confusing metadata are found
      Better version of failing 'should' test
      Compare also file size to detect changed config file
      Add simple test for read-only table reload suppression
      Add missing new line in lvrename help text.
      Remove --force option from lvrename manpage.
      Add test for fcntl error in singlenode client code.
      Minor memory leak fix
      Remove self assigment which has no effect
      Remove meaningless const type qualifiers on cast type
      Add 'empty' command
      Remove unused inconsistent_seqno
      Add missing check for allocation failure
      Remove INCONSISTENT_VG flag
      Replace free_vg with release_vg
      Just add new lines between header comment
      Cache and share generated VG structs
      Add memory pool locking functions
      Lock memory for shared VG
      Add detect_internal_vg_cache_corruption to lvm.conf
      Update udev rules to skip DM flags decoding for removed devices
      Trivial, add void to ignore dm_snprinf result
      Fix memleak of geometry buffer
      Initial code layout for thin provisioning target
      Add registration of thin_pool segment
      Initial code for read/write of thin metadata lv segments
      Fix resource leak when strdup fails
      Update for resource leak
      Autoreconf for lvmetad patch
      Reflect dm_config API update
      Mark unreleased memory pools as internal error
      Use size_t return type
      Keep the old-style prototypes
      Match the prototype old-style declaration
      Use const casting when it's needed
      Compile fix
      Add missing 'static' for local function
      Hack for build rules of lvmetad
      Log unlink() error
      Fix memory leak of allocated bitmap in error path
      Detect sscanf recovering_region input error
      Convert data->pool
      Replace char class :space: with explicit chars
      Minor change for pv_create api
      Remove unused passed parameters
      Support break for vgchange and vgrefresh operation
      Improve man page style
      Check if lp.origin exists
      Fix typo
      Updated testing script
      Keep the old-style function definition
      Add missing underscores to local static functions
      LVM_WRITE and LVM_READ are 64bit constants
      Add suggest parentheses around '&&'
      Fix memory overwrite
      Remove vg at the test's end
      Trim spaces on EOL
      Reset LV status when unlinking LV from VG
      Update
      Fix command line option decoding
      Remove thin volumes before thin pools
      Add inital thin testing
      Fix for gcc compilation warnings
      More gcc warnings removed
      Build fixes for lvmetad
      Few more updates to lvmetad build deps
      Move debug message
      Test speed up
      Add link for fsadm script
      Fix missing '$' in test
      Surround all executed commands with quotes
      Support different PATH setting
      Enable  t-fsadm test
      Add support for non /dev devices
      Use log_error instead of log_verbose when executed command fails
      Ensure  fsadm.sh is executable
      Revert patch
      Another vgremove for speedup
      Add support for DM_DEV_DIR
      Unmount works with -y
      Add missing log_error() to lvresize command when fsadm tool fails
      Check for failing 'stat' and skip this loop iteration
      Add all exclusive locks to clvmd restart option args
      Clvmd restart cleanup
      Build all man pages
      Update dmsetup man page
      CLVMD bugfix support for args -S -E
      CLVMD support for LVM_CLVMD_BINARY and LVM_BINARY
      Detect unusable nodes on fs
      Use Makefile for daemmons/common library.
      Drop cleanup of .exported_symbols_generated in DISTCLEAN_TARGETS
      Fix install_ocf
      Improvements
      Avoid sending garbage to terminal in verbose mode.
      Allow overwrite for VERIFY_UDEV
      Fix log_error() usage
      Restart CLVMD with same cluster manager
      Use  NULL for pointers
      Chheck for failing filename strdup
      Simplier attribute format
      Replace test for NULL of root->child with test for NULL l
      Add backtrace when allocation fails for _type
      Add missing log_error messages
      Remove test for NULL
      Use execvp for clvmd restart
      Show some Thin related info in lvdisplay
      Just add warning about potential problem exteding dm_segtypes
      Add supporting function for thinp
      Add experimental code for activation of thinp targets
      Typo in debug message
      Let the utils to prepare PVs
      Fix bad error message for thinp validation
      Add preload support for thin and thin_pool
      Transaction_id is property of thin_pool
      Update error path tracing for _resume_node
      Move priority check in front
      Display transaction_id for thin_pool
      Add intial code to check transaction_id
      Add lvm functions for sending messages.
      Add simple function for lookup of some free device_id
      Add code to activate thin target
      Missed rename pool->thin_pool
      Use capital letters
      Name changes
      Move defines to header
      Add more validation to config parser
      Remove test for first_time with FIXME
      Reindent some thin functions
      Skip r assignment
      Change message severity
      Improve backtrace reporting
      Replace with debug
      Skip backtrace after log_error
      Use shorter way for if()
      Use condition instead of sleep
      Add missing log_error for alloc failure
      Check for refresh_filter failure
      Reduce preallocated stack size
      Update whats new
      Limit thread stack
      Update
      Add FIXMEs for init_test
      Use barrier instead of mutex
      Simplify worker loop
      Add some fixme locking
      Use constant for the repeated dlid size specification
      Remove unused variables
      Fix lv_info open_count test
      Use pool for dm_tree allocation
      Drop old check for transaction_id
      Swap parameters
      Add _thin_validate_device_id
      Add thin_pool dm message support
      Message support for thin provisiong
      Indent debug message
      Drop messages from lvm app context
      Use zalloc for malloc,memset
      Remove test for thin_pool
      Add internal expected_errno dm_tast var
      Just indent changes
      Drop messages referencing deleted LV
      Simple validation of messages in mda
      Use generic name for message sending function
      Update error message
      Use structure copy
      Add few more protected names
      Improve lvcreate man page
      Add _BLOCK_ to define
      Print low_water_mark only when it has some value
      Use const pointers in thin API were appropriate
      Reindent code
      Adapt to thin kernel target API
      Ensure right activation order
      Add last param 0 for thin-pool
      Cleanup backtraces
      Just replace stack, return 0  with  return_0
      Remove unused file from tree
      Simplify some pointer operations
      Aling structure chunk on default aling size
      Mark chunk memory for free as defined again for valgrind
      Aling structure chunk on default aling size
      Make units for chunksize more obvious
      Thin pool now support chunk size as well
      Remove double-hack for setting metadata size
      Store transaction_id with created thin lv
      Make move_lv_segment non-static
      Recoded way to insert thin pool into vg
      Consistently use metadata LV as the first in MDA
      Remove extra empty check
      Ensure thin LVs take an exclusive activation
      Remove old thin code from _lv_insert_empty_sublvs
      Reduce stack size usage in print_log
      Fix usage of DEBUG_ENFORCE_POOL_LOCKING with DEBUG_MEM
      Expect failure with real /dev dir
      Do not make link in the real /dev
      Used device name instead of device path
      Always use vg memory pool for allocated lv segment
      Drop mempool parameter from read functions
      Test with -F flag
      Don't print char type[8] as a plain string
      Update header comment
      Add find_config_tree_str_allow_empty
      Fix core on buggy config file
      Trying to fix the retry logic
      Add last_seg
      Extend virtual segment instead of adding new one
      Remove thin code from mirror/raid lv_extend
      Thin error messages clenaup and some indent
      Improve lv_extend stack reporting
      Thin output data_block_size via outsize
      Thin pool activation change
      Thin works only with exclusive activation
      Thin support for lvrename
      Thin pool resize support for data LV
      Thin support for stripe
      Thin option documentation
      Avoid creation of /dev/vg/thinpool
      Continue with lvcreate man page update
      Improve valgrind support when compiled with DEBUG_MEM
      Cleanup for lvmetad passing uninit structure
      Thin cleanups
      Make detach_pool_message visible for tools
      Cleanup unsuccessfully created thin LV
      Thin segment transaction_id moved
      Thin creation without activation
      More updates for lvcreate manpage
      Thin fix compile warns
      Thin code cleanup
      Thin clean using delete_id consitently
      Thin uses _tdata instead of _tpool for data LV
      Thin avoids need of having writable VG for activation
      Thin api change for dm_tree_node_add_thin_target
      Thin api change for passing message into libdm
      Add -tpool layer in activation tree
      Thin genering update_pool_lv function
      Thin using update_pool_lv
      Thin removing unused detach_pool_messages
      Thin removing limitation on activation of pool device.
      Thin no device is created - so nothing to revert here
      Thin keep pool device in the same state
      Thin fix condition check for transation_id
      Thin supports poolmetadatasize setting
      Thin add thin_pool_metadata_require_separate_pvs
      Thin pool allocation simplified
      Thin lvcreate man update
      Avoid lvextend to overflow
      Thin revert code for exclusive pool activation
      Thin reindent code
      Thin lvcreate poolmetadatasize units doc
      Add missing default LVM_VG_NAME
      Thin supports snapshots
      Thin add error message for double delete
      More lvcreate man updates
      Update  lvs man page style.
      Thin ensure pool table is update after resize
      Thin disable pool create without activation
      Thin create normal (old) snapshot when size is specified
      Thin move _read_activation_params check
      Thin lvcreate manpage
      Thin align volume size on chunk boundary size
      Thin test min thin_pool size for at least 1 chunk
      Small comment and indent updates
      Add generic function to check for target version
      Thin update testing script
      Thin send create_snap message
      Thin remove unused define
      Update dmsetup man page
      Missing stack printing
      Thin use items iterator and stack reporting
      Add missing stack reporting
      Thin fix tpool layer
      Simplify iteration
      Thin supports only thin volumes as snapshot origins
      Thin clean
      Reorder AND test condition
      Thin update prompt message
      Adjusted mirror region size only for mirrors and raids
      Skip non-virtual snapshots for availability
      Allow to activate snapshot
      Query before removing inactive snapshots
      Unlock memory for vg_write
      Replace dynamic buffer allocations for PATH_MAX
      Check target type name for DM_MAX_TYPE_NAME length
      Remove constant expression check
      Drop pool memory allocated in lv_has_target_type
      Add CUnit testing support
      Add some cflags to ldflags
      Cleanup gcc warning
      Use 3 digits for chmod
      Split gcc warning options
      Cleanup test makefiles
      Put back devmapper-event linkage
      Swap condition order
      Cleanup files from testing
      Try longer sleep
      Cleanup test compile warning
      Add dm_config_find_str_allow_empty
      Allow empty strings for description and creation_host config fields
      Add Thin API for parsing thin status
      Thin rename internal thin pool segment
      Thin move layer suffix into local static const
      Thin remove unused code
      Check lv pointer for NULL before derefence.
      Fix missing thread list manipulation
      Thin add dmeventd support
      Thin add dev_manager_thin_pool_percent
      Thin add lv_thin_pool_percent
      Thin automatic policy based extension
      Always zalloc device structure
      Add common initialization code for struct device
      Do not lstat common path prefix
      Drop extra stat before open of device
      Exported functions from thin plugin
      Thin update test case
      Thin man page update
      Updated documentation for dmeventd.
      Add helper function dmeventd_lvm2_command().
      Thin use helper function
      Use new dmeventd_lvm2_command function in dmeventd plugins.
      Support rounding of percentage upward
      Use sysfs to set/get of read-ahead
      Improve readahead in dmsetup man page
      Minor oldstyle warning update
      Check for error code in _adjust_policy_params
      Update for gcc old-style
      Rename internal macro to match signess
      Thin rename local static
      Thin use consistentely metadata
      Thin handle empty thin volume case
      Thin rename seg var  pool_metadata_lv to metadata_lv
      Thin updated support for thin pool percent
      Thin add function to read thin volume percent
      Add support to keep info about creation time and host for each LV
      Thin add new display field for  lvs
      Thin disable snapshot creation when pool is over the threshold.
      Thin indent update
      Drop unused variable
      Drop unimplemented
      Thin extend lvcreate man page about snapshot support
      Drop hack in segtype reporting
      Thin cleanup
      Tiny cleanup
      Thin forgotten initialisation of pointer to NULL
      Thin until proper vgcfgrestore for thin is implementad, disable restore.
      Minor cleanup
      Update lvdisplay to show more info about thin LVs
      Thin send messages on activation resume code path
      Thin add lv_thin_pool_transaction_id
      Thin dependency scan support
      Comment cleanups
      Thin fix transaction_id incrementation and code refactoring
      Thin prevent removal of its data and metadata LVs
      lv_info using -real layer only for origin_only LV
      Update lv_info whats_new
      Thin check for lv_thin_pool_percent error status
      Thin add messages only for activation tree
      Thin add support for origin_only suspend of thin volumes
      Thin use origin_only for thin pools as well
      Thin use  suspend/resume_lv_origin
      Thin correct activation order
      Thin skip activation when there are no thin message
      Thin clear stacked message for thin pool
      Update verbose lvs  to print metadata_percent info
      Clean var declarations to the front of the function
      Rename  origin_only to more generic use_layer flag
      Thin read  percent info from layered device
      Fix compilation with disabled devmapper
      Check and print perror for syscalls
      Ensure reply struct has all fields defined
      Add breaks for cases
      Check for correctness of uint64 value if exists
      Fix resource leak of file handle
      Ensure whole info is initialised
      Limit alignment to 32bit values
      Free allocated segment type in error path
      Fix missing dmt destructor
      Test for uname result
      Set to a defined value vars used after error path
      Instrument code that pointer are already released
      Fix leak of hash table
      Set missing header define
      Cosmetic change use return macro with implicit stack
      Oops missed braces in previous commit
      If clvmd is not started, die test instead of skipping it
      Thin  for_each_sub_lv
      Build test run target only for $(TESTING)
      TARGETS macro has to be defined before inclusion of make.tmpl
      Fix data% reporting
      User correct base dir for lcov reports
      Minor consistency update for debugging messages
      Avoid warning for small pv_min_size
      Disable partial activation for thin LVs and LVs with all missing segments
      Add synchornization point in mirror log init.
      Check result of lstat
      Release allocated resources in error path
      Fix resource leaks for failing allocation
      Add missing deps for lvm2api
      Set status for error path
      Ensure strncpy() function always ends with ' '
      Fix fd resource leak in error path
      Use dm_list_iterate_items_safe
      Move close few lines
      Check that whole locking_dir fits _lock_dir buffer
      Set all parameters to 0
      Add boundary test for number of mirror devs and logs
      Move done jump lower
      Keep page_size as signed number
      Remove unneeded assignments
      Replace snprintf with dm_snprintf
      Remove duplicate test
      Add range test for device number
      Use dm_snprintf and improve error handling
      Switch to return void
      Some fixmes
      Use dm_asprintf to simplify code
      Drop unreachable code
      Fix test for lv_snapshot_percent
      A bit more readable code
      Thin add pool_below_threshold
      Move label_init up in code stack
      Remove unreachable code
      Add test for memory allocation failures
      Add test for failing allocation
      Return error for failing allocation
      Do not crash for NULL sort_key
      Add validation of name and uuid
      Check for deps pointer before dererence
      Fix message check
      Remove duplicit test
      Do not write to -1 buffer address
      Log error reporting for failing _alloc_pv
      Release_vg instead of plain free in error path
      Clean error paths for format instance
      Add missing test for failure of lvmcache_foreach_pv
      If the same fid is already same avoid ref_counting
      Add free_orphan_vg
      Add check for failure
      Add check for mda_copy failure
      Add check for rimage name allocation failure
      Add few missing allocation failures tests
      Add check for allocation failure
      Check for allocation failure
      Check for missing reply_uuid
      Add internal error for unsupported code paths
      Ensure allocated device does not leak on error path
      Handle all succefull values from open()
      Make sure dereferenced words[0] and words[1] are defined
      Never try to test character past given buffer
      Add some FIXME around allocation code
      Add internal error to guard vgname2 NULL dereference
      Fix missing temp_buf init for error path
      Update cut&paste error message
      Initialize monitoring support only for thin pools
      Deal with slower test processing
      Detect failing fifo
      Simplify with dm_strdup
      Initialize dmeventd monitoring for every command
      Some reformating for lvmetad uddates
      Limit number of mem allocs and copies
      Missed dm_free in last commit
      Fix regression from cleanup commit
      Remaing code suffling
      Drop backtrace after log_error
      Use same signed numbers
      Add explicit cast for time() ret value
      Drop const modifier from fb
      Keep same sign for 's' counter
      Use const for lv
      Introduce dm_strncpy
      Unit testing for some string libdm functions
      Limit sscanf params with size
      Just reindent with tabs
      Ignore result of unlock explicitely
      Remove test for pvid
      Check allocation result
      Drop uname call, it's not used from gulm era.
      Always check result of _set_vg_name()
      Explicitely ignore result from sync_unlock()
      Test result of _init_tags.
      Make force_t enum usage obvious
      Move allocation after check for vgid
      Test seg pointer for non-null
      A bit more safe version of sprintf
      Add assert for oldname
      Fix missing break
      Check for vg_name existance
      Nicer cleanup of excl_uuid hash
      Add some log_sys_errors to close() call
      Explicitely ignore fail error on hash_insert
      Check id_write_format result
      Add stack traces for lock_vol failures
      Just code move of hash initialization in front of function
      Use unsigned type for bitmask
      Add FIXME for misuse in case of dm_event_mask enum.
      Do not hide deallocation of buffer
      Do not send uninitilised bytes
      Limit max size of clvmd message
      Duplicate standard in/out descriptors for daemon
      Explicitely check list size of segments
      Explicitely ignore errors in label_read iteration.
      Add some stack traces for dev_close error paths
      Add log_sys_error for close
      Missed to properly merge patch for definition of MAX_MISSING_LEN
      Better detection of missing dmeventd fifo connection
      Ensure clvmd message is always   terminated
      Add stacktrace for init_lvmcache_orphans fail path
      Check result of export_vg_to_buffer
      Check error from _lv_each_dependency
      Test dm_hash_insert() failures mem failures
      Revert free of allocated segtype
      Using enum types for enums
      Check for failing dm_asprintf
      Wipe initial 4KiB for non-zeroed thin volumes
      Fix leak of FID structure
      Log fail of pthread_join
      Check for allocation error
      Check for version string buffer
      Add stack trace for lv_reduce
      Improve error logging
      Add cast for ptrdiff_t - cleanup gcc warning
      Add _rimage as reserved suffix
      More useful debug message
      Missed ;
      Few more close and dev_close trace
      Correct enum type
      Check for udev_get_dev_dir result
      Backtrace for failing drop_cached_metadata
      Log sys errors
      Debug log for hold_lock failure
      Log sys error for lseek
      Check for alloc error
      Replace goto with just log_debug
      Test alloc fail
      Add some more pointer validation
      Explicitely ignore fail from this label_read
      Check pointer before deref in debug message
      Improve logging
      Check allocated pointers
      Skip zero length messages
      Add traceback for failpath
      Check for error from dup2
      Wait for mirror in sync
      Remove support for TRIM message
      Fix estimation of pool metadata device size
      Added dm_tree_node_set_callback() for preload and deactivation hooks
      Merge metadata size checking
      Purge remaining trim bits from code
      Add support for thin check
      Support 16GB for thin pool metadata
      List _thread_registry missed mutex
      Just space moving
      Code refactoring
      Just make error message more clear
      Add FIXMEs
      Speedup test run by a few minutes
      Update thin test for thin_check
      Remove part of FIXME
      Return success for deactivation of thin pool
      Validate udev structures
      Use 64bit math
      Improve warning
      Fit thin pool metadata into 128MB
      Some more missing supposedly 64bit operations.
      Fix warn message and update man page
      Fix error path for create_toolcontext
      Switch to normal log_verbose message
      Improve harness code
      Simplify error path code for filter initialization
      Better structure layout for device_info
      Using %u modifier to print unsigned values.
      Removing call of release_vg(NULL)
      We need longer window for checking read from fifo.
      Add --with-thin-check configure option
      Improve thin_check option passing
      Cleanup for conf file
      Use proper "" for absolute paths
      Just move declaration
      Update configure change
      Fix string parsing
      Allow to use also special prefixed names for test
      Test suite skip md_detection
      Update aux.sh lvmwrapper
      Update test.sh check.sh utils.sh get.sh
      Update tests
      Switch condition for dmeventd check
      Longer sleep after clvmd start
      Regression fix kernel version check
      Skip dmeventd restart test
      Add comment about slow startup of dmeventd
      Support improperly formated device numbers
      Update test for dmevent restart
      Update testing scripts
      Sleep longer in the test so it really dies properly
      Fix check for passed in path for dmeventd startup
      Fix regression in thin monitoring
      Update lcov target
      Update debug message
      Improve teardown_devs
      Fix typo in config option check
      Make sure namelen fits into buffer allocated on stack
      Return mem fail if hash insert fails
      Update and fix monitoring of thin pool devices
      Always free hash table
      Add fixmes
      Improve test suite
      Minor fixes
      Fix unlocking in error path of vgreduce
      Move check for min strip size
      Support rounding downward for lvcreate and %
      Lvresize rounds upward
      Fix lvresize for thin pool
      Update man pages
      Update test
      Update some lvs column names
      Sort lvs options by alphabet
      Update singlenode locking
      Add some lock comments
      Expect failure if the reduction doesn't really happen
      Synchronize with self-destruction of dmeventd
      Fix regression in for_each_sub_lv
      Initial support for lvconvert for thin pool volumes.
      Add missing pkg init
      update
      ok - that was nice mid-air collision
      snaps of mirrors are enabled
      Move thin_check_executable to proper section
      Fix error path
      Sync filesystem for thin snapshots
      cmirrord: add test for closedir() and close()
      cmirrord: fix cut&paste
      cleanup: use struct initializers instead of memset
      headers: add some __attribute__ instrumentation
      cmirrord: add missing checks for kernel_send
      cleanup: replace memset with struct initilization
      fix: use 64bit math for reserved memory
      fix: limit preallocate stack size
      lvmetad: check for fid existance
      thin: fix lvconvert error path NULL dereference
      cleanup: use dev_t type
      libdm: add support for external origin and discard
      libdm: support reserve and release metadata snap msg
      thin: detect supported features from thinp target
      thin: add discard support for thin pool
      thin: add reporting of discard for thin pool
      thin: add lvchange for discard and zero change
      Fix dependecy build for scripts dir
      thin: default discards for old mda is IGNORE
      thin: fix condition for kernels without discards
      thin: fix man page for lvs
      thin: lvcreate --discards
      lvmetad: fix memleaks
      lvmetad: fix memleak on error path
      lvmetad: do not deref NULL pointer
      clvmd: release excl_uuid hash
      dmsetup: fix memleak in _get_split_name
      dmsetup: fix udev warning message
      dmsetup: check if new_name is non NULL
      cmirrord: check for result of chdir
      cleanup: drop unneeded included header files
      cleanup: use <> for system header file
      cleanup: add standard GPL file header
      cleanup: keep MKNOD type cast clean
      cleanup: uint64_t casts
      cleanup: add va_end
      cleanup: ignore write/close output
      cleanup: use return_NULL
      cleanup: cast to matching type
      cleanup: use static char[] array
      cleanup: use proper activation_change_t
      cleanup: add error message and simplify creation
      check: add internal errors for unexpected paths
      cleanup: add __attribute__ ((nonnull(1)))
      cleanup: format1 test whether PV was found
      lvconvert: move _reload_lv()
      lvconvert: use _reload_lv on more places
      activation: report error message
      clvmd,lvmetad: check for fcntl result
      cleanup: initilize percent to INVALID
      lvmapi: validate extents size for lvcreate
      thin: discard
      cleanup: add some missing stack backtraces
      clenaup: compatible definition for older gcc
      lvm2api: extend lvm2api with lvm_lv_rename
      tests: testing lvm_lv_rename
      configure: fix --enable-testing
      liblvm2cmd: add return code for _close_stray_fds
      liblvm2cmd: ensure standard descriptors are ready
      liblvm: add lv_rename_update
      libdm: reset delay flag for devs used by thin
      thin: origin only suspend
      cleanup: add proper cast for force_t
      liblvm: insert layer with subvolume renames
      thin: lvchange allows to change perms of thin snap
      thin: lvconvert
      lvm2api: fix data percent reporting for thin, snap
      test: check data_percent is equal to snap_percent
      test: lvm2api thin data_percent
      lvconvert: disable convertion of thin to mirrors
      report: call snapshot percent with cow only
      test: check snap_percent returns invalid
      test: move raid test to separate tests
      test: ignore modprobe failure
      lvchange: do not start dmevent for resyn
      test: split raid tests
      test: move raid10 test into separate test files
      test: more thin tests
      thin: support non power of 2 chunk size
      cleanup: fix typos
      test: move common code for thin init
      test: drop clustered flag control from thin tests
      test: thin support for non power of 2 chunk size
      test: use exclusive activation for created mirrors
      thin: raise required version to 1.4
      lvm2api: add defined lvm_percent_to_float
      cleanup: fix compiler warnings
      lvmetad: initialize cft value
      lvmetad: check result of buffer_realloc
      lvmetad: validate dm_asprintf in buffer_append_vf
      lvmetad: fix test for dm_asprintf
      thin: lvm2api return origin property for thin LV
      thin: prohibit lvcreate --thinpool with mirrors
      lvmetead: release token
      debug: do not play with fds with valgring
      test: use global_filter with initial content
      lvmetad: release_token without lvmetad
      test: move global_filter only to mdata_string test
      test: typo fix from last commit
      test: update global_filter
      cleanup: remove unneeded headers
      cleanup: add gcc printf __attribute__
      lvmetad: move initialization in the inner loop
      cleanup: drop unused assignment
      cleanup: used old C standard
      lvmetad: fix memory leaks in error paths
      cleanup: resolve dereferencing type-punned pointer
      lvmetad: fix leak of append on error path
      test: coverage
      thin: lvextend will fail is autoextend is 0%
      test: speedup a bit
      thin: add support to unmount volumes
      cleanup: readable test to check for 32bit overflow
      lvmetad: fix previous commit
      lvmetad: empty types string is ok
      thin: allow to create read-only thin-volumes
      test: detect compilation with readline
      thin: disable conversion of thin-pool to read-only
      lvchange: resync returns error on usupported volumes
      test: resync is for mirror devices
      cleanup: swap return values
      cleanup: switch log_error to log_warn
      cleanup: move log_error upward in code stack
      Use lv_is_active instead of lv_info()
      pvcreate: fix leak on error path
      cleanup: fix typo in error message
      lvchange: support --yes option for --persistent
      clvmd: fix parsing of -d argument
      cleanup: move setting of parameter zero
      lvconvert: store target attributes
      liblvm: internal API change
      thin: add common pool functions
      thin: add alloc_pool_metadata
      thin: lvconvert update
      thin: lvcreate use common functions
      thin: man page updates
      test: testing lvconvert
      thin: update recent patchset
      mm: skip mlocking [vectors]
      lv_manip: fix regresion from bf2741376d4
      lvm2api: fix typo
      thin: detect discards for non-power-2
      thin: add more unsupporte options for merge
      thin: support configurable thin pool defaults
      thin: fix attrs for unloaded driver
      thin: allow restore with --force
      thin: fix property discard for lvm2api
      tests: update thin testing
      lvm2api: fix size reporting
      tests: resume devices on background
      tests: add error_dev aux
      thin: add detach_pool_metadata_lv
      thin: lvconvert update messages
      thin: shuffle code
      thin: lvchange may change discards freely
      thin: deactivate subvolumes
      libdm: deactivate failed node in preload
      thin: lvconvert supports swapping metadata device
      thin: reworked thin feature detection
      thin: update thin feature detection
      mirrors: fix leak in device_is_usable mirror check
      thin: remove detection for thin discard support
      thin: fix test for dicards ignore settings
      test: update thin discards testing
      cleanup: convert to 32bit
      cleanup: drop test for optarg NULL
      cleanup: drop unused header
      cleanup: ignore errors
      cleanup: ignore return values
      cleanup: singlenode minor change
      cleanup: simplify option matching function
      cleanup: skip assignment
      cleanup: reorder code
      cleanup: use proper const in apply_lvname_restrictions
      log: move abort past syslog
      format-text: check for _text_create_text_instance
      libdaemon: check for strdup result
      lvmetad: unlock vg on out-of-memory path
      lvmetad: keep returned struct fully initialized
      lvmetad: fix memleak on pv_found error path
      lvmetad: check id_read_format error status
      lvmetad: fix socket leak in handle_connect
      lvmetad: add check for failure dm_config_write_node
      pv_read: add missing check for valid info
      thin: dmeventd fix memleak on error path
      lvmetad: simplify pvid memory allocation.
      Revert "lvmetad: simplify pvid memory allocation."
      whatsnew
      locales: use higher prio LC_ALL variable
      cleanup: postpone lv_is_thin_volume check
      libdm: fix segault for truncated string token.
      activate: add lv_layer function
      use lv_layer
      thin: replace is_active with send_messages
      test: regression test for lvmetad error
      libdm: support newer thin pool status parameters
      cleanup: indent line
      cleanup: comment update
      thin: use noflush for obtaining transaction_id
      cleanup: add internal error check
      cleanup: malloc attributes
      cleanup: remove extra braces
      cleanup: avoid overflow warning
      headers: add headers for musl libc
      lvconvert: fix accepting second lv name
      lvconvert: update error path
      report: leave empty report field for 0
      thin: add function pool_is_active
      thin: fix forbidden discards checks
      test: update using exclusive activation
      thin: properly unmark volume after detach
      thin: update pool_is_active
      cleanup: preserve signesss and type size on return values
      cleanup: old style gcc
      activation: extend _cached_info
      thin: replace  _thin_layer with lv_layer()
      activation: add _add_layer_target_to_dtree
      activation: simplify activation code
      lvremove: easier removal of dependent lvs
      thin: add support for external origin
      thin: external origin cannot be changed
      thin: report external origin
      thin: removal of external_origin
      thin: lvconvert support for external origin
      activation: fix pvmove partial tree creation
      cleanup: indent
      cleanup: move comment
      thin: mark passed args
      thin: move update_pool_params
      thin: lvconvert read params sooner
      thin: read paramaters in front
      thin: assign through structure
      thin: cannot use snapshot merge with thinpool
      thin: rework lvconvert
      log: reenable abort
      cmdline: add arg_long_option_name
      cleanup: indent line
      thin: lvcreate external origin snapshot support
      tests: lvconvert external origin
      libdm: validate params for NULL
      man: updates for lvconvert and lvcreate
      man: lvceate document external origin snapshot
      lvmcache: keep sp_count unsigned
      cleanup: remove unused lvl_idx
      cleanup: add gcc attribute for printf parameter
      tools: add common lv_change_activate
      dmsetup: check for strncpy
      clmvd: fix responce status
      clvmd: preserve foreground mode across restart
      clvmd: use pclose
      clvmd: avoid logging in signal handler
      config: check for hash success
      dmeventd: check for msg.data nonnull
      dmeventd: convert union to struct members
      dmeventd: prevent double free
      dmeventd: cleanup
      lvmetad: cleanup
      lvmetad: fix error paths
      thin: lvcreate better support for AAY
      raid: read segment only for known LV
      raid: test for target_pvs
      thin: fix cut&paste bug
      thin: explicitly avoid pvmove operation
      thin: fix resource leak in err path
      libdm: improve check in dm_split_lvm_name
      lv_manip: check remove_seg_from_segs_using_this_lv()
      vgread: fix fid transfer for lvm1 and pool format
      cleanup: drop unused assignment
      cleanup: explicit check for nonnull pointer
      cleanup: add some FIXMEs
      cleanup: convert set of strncat into a single printf
      cleanup: cast to len's type
      cleanup: add printf attribute
      cleanup: use proper activation_change_t
      cleanup: drop unwanted ';'
      test: singlenode minor cleanups
      format1: add workaround for vg_set_fid
      cleanup: drop zeroing of zallocated data
      cleanup: improve messages
      config: merge timestamps
      cleanup: type
      raid: remove wrong pool free
      test: new test new fail
      test: fix filter
      test: do not break test if there is no .cache
      test: correct order
      clvmd: avoid pretesting of dev availability
      snapshot: rework cluster creation and removal
      man: lvextend --use-policies
      report: show dmeventd monitoring status
      report: show active state of LV
      dmeventd: return error if device is not found
      lvchange: use vg mempool
      cleanup: use dm_list_iterate_items
      config: fix bitfield for section
      pvscan: missing test for id_read_format
      lv: add lv_active_change
      report: improve reporting of active state
      cleanup: improve previous patch
      cleanup: simplify
      cleanup: shift line down
      test: wait for pid removal
      lv: fix typedef
      man: updates
      mm: fix leak in fail path
      thin: limited support for -l%FREE allocation
      libdm: introduce dm_mountinfo_read
      libdm: improve detection of mounted fs
      dmeventd: use dm_mountinfo_read
      vgchange: check for mounted fs
      lv_manip: use lv_is_active
      cleanup: use last_seg
      cleanup: drop backtrace
      libdm: add dm_get_status_snapshot
      libdm: free mem pool on err path
      snapshot: use dm_get_status_snapshot()
      dmeventd: use dm_get_status_snapshot()
      snapshot: add lv_is_cow_covering_origin
      snapshot: skip monitor for large cows
      dmeventd: revert back percent to int
      fid: fix reset of PV fid
      libdm: add public macro DM_TO_STRING
      args: do not accept >=16EiB sizes
      snapshot: fix resize of 100% full cow
      cleanup: test for -1 value for lseek error
      snapshot: require 3 chunks for creation
      snapshot: add cow_max_extents
      lvcreate: reduce too large cow
      lvresize: check for max snapshot size
      lvresize: drop monitoring of 100% covered origin
      libdm: compensate suspend counter for live table
      tests: drop testing of raids in cluster
      tests: snapshot testing
      cleanup: fix tabs
      tests: snapshot needs 3 chunks
      lvcreate: update snapshot test
      lvcreate: update thin validation
      mirror: implement check for remotely active LV
      tests: min snap chunk count is 3
      tests: skip if the system already uses tested minor
      tests: move raid test to separate file
      tests: test mirrors in clustered way
      tests: missed skip in test
      tests: clear write to /tmp
      filters: update composable filter
      filters: compile fix
      filters: dump filter returns error code
      cleanup: code update and typo fix
      tests: bigger alignment
      makefiles: cleanup update
      tests: configurable  LVM_TEST_RESULTS
      tests: compilation updates
      tests: update test
      tests: fix strings test
      tests: check for real mirror target type
      tests: performance testing
      cleanup: move lv assignment
      cleanup: remove {}
      cleanup: skip test if already tested for SIGN_PLUS
      snapshots: check for active state
      thin: report t for thin pool and volume
      thin: report o as volume type for external origin
      thin: report 'e' metadata type with higher priority
      thin: detect online metadata resize support
      thin: add helper functions
      thin: lvresize supports pool metadata resize
      thin: enable resize for thin pool metadata LV
      tests: extend harness
      tests: lvresize thin
      libdm: move thin max size to header
      lvresize: fix pvh handling
      lvresize: improve poolmetadatasize
      thin: vgsplit support for thins
      cleanup: tab
      tests: harness updates
      lvmetad: add some message for error path
      mirror: add missing error message
      config: skip close of stdin
      cleanup: add extra internal error
      cleanup: drop unused headers
      cleanup: move string in the use-place
      cleanup: use unrelated temporary variables
      cleanup: use simplier structure initialization
      cleanup: access pool segs with check
      tests: more test run in cluster mode
      clean: remove unneeded assign
      cleanup: use struct assign
      snapshot: fix max size limit check for COW device
      vgcfgrestore: fix crash on restore of wrong vgname
      lvmetad: use dm_ malloc wrappers
      lvmetad: fix compare function
      cleanup: easier to read loop code
      cleanup: return lv_is_ as 1 or 0
      cleanup: use parsed yes_no_arg
      cleanup: reformat code of dmeventd
      cleanup: use log_print instead of log_error
      cleanup: code swap
      cleanup: move mirror check code closer
      cleanup: use "" around type in error message
      cleanup: add dot to lvchange message
      thin: check for creation of pool
      debug: add pointer to -DDEBUG_POOL compilation
      dmeventd: fix cleanup commit
      dmeventd: move code from signal handler
      cleanup: more dmeventd code cleanup
      cleanup: simplify code around flock
      cleanup: move bit flags in order
      archiver: do not archive vg more then once
      vg/lvchange: drop local archived handling
      cleanup: introduce return_ECMD_FAILED macro
      cleanup: stack usage
      cleanup: swap initial assignment
      archive: add missing bit set
      lvconvert: use proper error path
      configure: fix install location of profile dir
      sigint: improve logic on for sigint reaction
      configure: more tweaks
      configure: revert /etc changes
      thin: move alloc_pool_metadata
      thin: swap if branch
      lvconvert: fix last commit
      cleanup: move declaration to front
      python: update coding style
      cleanup: use plain unsigned types
      libdm: add DM_ARRAY_SIZE
      cleanup: use arg value
      cleanup: remove tab
      pvremove: stack trace
      locking: unlock memory on error path
      cleanup: update comments
      cleanup: update commented-out code part
      libdm: remove unneeded read_ahead settings
      libdm: thin pool target sends messages once
      thin: send messages to active pool
      thin: write back when command successfully finished
      thin: check and use layered origin lv
      thin: lvcreate man examples
      thin: add sub volumes as whole volumes
      dev_manager: lower memory usage
      thin: improve external origin tree creation
      tests: more thin external origin tests
      tests: thin lvol0 updates
      tests: one missed automatic name
      cleanup: stack and remove braces
      cleanup: exit earlier in lv_rename_update
      cleanup: use dm_list_empty
      cleanup: move detection of change mode before commit point
      metadata: add is_change_activating
      snapshot: local activation for clear COW device
      lv_manip: move some validation code before archiving
      thin: fix error path in creation path
      thin: fix error paths for metadata creation
      thin: for thin volumes properly list modules
      thin: improve pool creation activation order
      thin: add pool metadata spare lv support
      thin: report 'e' volume type pool metadata spare
      thin: removal of spare disables recovery
      thin: add spare lvcreate support
      thin: add lvconvert pool metadata spare
      thin: vgsplit and vgmerge spare support
      cleanup: remove unused headers
      cleanup: simplier string reset
      cleanup: lvm complient style
      liblvm: check extents_from_size
      coverity: pointer validation
      cleanup: do not return stack content
      liblvm: check lvmetad cache return values
      dumpconfig: check conf tree was created
      python: make install to prefix dir
      lvconvert: drop limit on thin pool conversion
      snapshot: fix merging
      cleanup: add explicit cast to proper enum type
      thin: use 64bit arithmetic for checking meta size
      snapshot: update merging fix
      thin: not zeroing for non-zeroed thin pool snaps
      python: make clean removes build dir
      thin: lvconvert cannot convert pool to mirror
      libdm: move new added field to structure end
      cleanup: use compile time strlen
      libdm: add DM_ABORT_ON_INTERNAL_ERRORS
      thin: move setting of THIN_POOL
      thin: metadata resize needs 1.9 version
      thin: add thin_repair and thin_dump options
      thin: initial --repair support for pools
      cleanup: update exec_cmd comment and error
      exec: pipe open
      thin: use pipe_open instead of popen
      libdm: update DM_ABORT_ON_INTERNAL_ERRORS
      clmvd: fix decriptor leak on restart
      clogd: fix descriptor leak when daemonzing
      thin: thin pool can't be external origin
      test: can convert pool to external origin


More information about the lvm2-commits mailing list