summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2010-06-07 22:31:29 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2010-06-07 22:31:29 +0000
commitfe629f0a16487fee0176340116fbeba323686f3c (patch)
tree94206da21dbc27cac868ab854127c19ff20b413c /sys-fs/lvm2/files
parentInitial ebuild pulled from the OSUOSL overlay (diff)
downloadgentoo-2-fe629f0a16487fee0176340116fbeba323686f3c.tar.gz
gentoo-2-fe629f0a16487fee0176340116fbeba323686f3c.tar.bz2
gentoo-2-fe629f0a16487fee0176340116fbeba323686f3c.zip
Bugs #301331: create initrd fixes; #312321: path for dmeventd; #318433: QA; #318513: dmeventd libs for bindnow;
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'sys-fs/lvm2/files')
-rw-r--r--sys-fs/lvm2/files/lvm.conf-2.02.67.patch553
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.64-dmeventd-libs.patch15
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch18
3 files changed, 586 insertions, 0 deletions
diff --git a/sys-fs/lvm2/files/lvm.conf-2.02.67.patch b/sys-fs/lvm2/files/lvm.conf-2.02.67.patch
new file mode 100644
index 000000000000..85922fad6338
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.conf-2.02.67.patch
@@ -0,0 +1,553 @@
+diff -Nuar LVM2.2.02.67.orig//doc/example.conf.in LVM2.2.02.67//doc/example.conf.in
+--- LVM2.2.02.67.orig//doc/example.conf.in 2010-05-20 13:47:21.000000000 +0000
++++ LVM2.2.02.67//doc/example.conf.in 2010-06-07 18:43:34.099693472 +0000
+@@ -50,7 +50,9 @@
+
+
+ # By default we accept every block device:
+- filter = [ "a/.*/" ]
++ # Gentoo: we exclude /dev/nbd by default, because it makes a lot of kernel
++ # noise when you probed while not available.
++ filter = [ "r|/dev/nbd.*|", "a/.*/" ]
+
+ # Exclude the cdrom drive
+ # filter = [ "r|/dev/cdrom|" ]
+@@ -259,6 +261,8 @@
+ # the new lvm2 on-disk metadata format.
+ # The default value is set when the tools are built.
+ # fallback_to_lvm1 = 0
++ # Gentoo: the LVM tools are a seperate package.
++ fallback_to_lvm1 = 0
+
+ # The default metadata format that commands should use - "lvm1" or "lvm2".
+ # The command line override is -M1 or -M2.
+@@ -449,12 +453,12 @@
+
+ # Metadata settings
+ #
+-# metadata {
++metadata {
+ # Default number of copies of metadata to hold on each PV. 0, 1 or 2.
+ # You might want to override it from the command line with 0
+ # when running pvcreate on new PVs which are to be added to large VGs.
+-
+- # pvmetadatacopies = 1
++ # Gentoo: enable for data safety, but PV resize is then disabled.
++ #pvmetadatacopies = 2
+
+ # Approximate default size of on-disk metadata areas in sectors.
+ # You should increase this if you have large volume groups or
+@@ -476,7 +480,7 @@
+ # the supplied toolset to make changes (e.g. vgcfgrestore).
+
+ # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
+-#}
++}
+
+ # Event daemon
+ #
+diff -Nuar LVM2.2.02.67.orig//doc/example.conf.in.orig LVM2.2.02.67//doc/example.conf.in.orig
+--- LVM2.2.02.67.orig//doc/example.conf.in.orig 1970-01-01 00:00:00.000000000 +0000
++++ LVM2.2.02.67//doc/example.conf.in.orig 2010-05-20 13:47:21.000000000 +0000
+@@ -0,0 +1,501 @@
++# This is an example configuration file for the LVM2 system.
++# It contains the default settings that would be used if there was no
++# @DEFAULT_SYS_DIR@/lvm.conf file.
++#
++# Refer to 'man lvm.conf' for further information including the file layout.
++#
++# To put this file in a different directory and override @DEFAULT_SYS_DIR@ set
++# the environment variable LVM_SYSTEM_DIR before running the tools.
++
++
++# This section allows you to configure which block devices should
++# be used by the LVM system.
++devices {
++
++ # Where do you want your volume groups to appear ?
++ dir = "/dev"
++
++ # An array of directories that contain the device nodes you wish
++ # to use with LVM2.
++ scan = [ "/dev" ]
++
++ # If several entries in the scanned directories correspond to the
++ # same block device and the tools need to display a name for device,
++ # all the pathnames are matched against each item in the following
++ # list of regular expressions in turn and the first match is used.
++ preferred_names = [ ]
++
++ # Try to avoid using undescriptive /dev/dm-N names, if present.
++ # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
++
++ # A filter that tells LVM2 to only use a restricted set of devices.
++ # The filter consists of an array of regular expressions. These
++ # expressions can be delimited by a character of your choice, and
++ # prefixed with either an 'a' (for accept) or 'r' (for reject).
++ # The first expression found to match a device name determines if
++ # the device will be accepted or rejected (ignored). Devices that
++ # don't match any patterns are accepted.
++
++ # Be careful if there there are symbolic links or multiple filesystem
++ # entries for the same device as each name is checked separately against
++ # the list of patterns. The effect is that if any name matches any 'a'
++ # pattern, the device is accepted; otherwise if any name matches any 'r'
++ # pattern it is rejected; otherwise it is accepted.
++
++ # Don't have more than one filter line active at once: only one gets used.
++
++ # Run vgscan after you change this parameter to ensure that
++ # the cache file gets regenerated (see below).
++ # If it doesn't do what you expect, check the output of 'vgscan -vvvv'.
++
++
++ # By default we accept every block device:
++ filter = [ "a/.*/" ]
++
++ # Exclude the cdrom drive
++ # filter = [ "r|/dev/cdrom|" ]
++
++ # When testing I like to work with just loopback devices:
++ # filter = [ "a/loop/", "r/.*/" ]
++
++ # Or maybe all loops and ide drives except hdc:
++ # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
++
++ # Use anchors if you want to be really specific
++ # filter = [ "a|^/dev/hda8$|", "r/.*/" ]
++
++ # The results of the filtering are cached on disk to avoid
++ # rescanning dud devices (which can take a very long time).
++ # By default this cache is stored in the @DEFAULT_SYS_DIR@/@DEFAULT_CACHE_SUBDIR@ directory
++ # in a file called '.cache'.
++ # It is safe to delete the contents: the tools regenerate it.
++ # (The old setting 'cache' is still respected if neither of
++ # these new ones is present.)
++ cache_dir = "@DEFAULT_SYS_DIR@/@DEFAULT_CACHE_SUBDIR@"
++ cache_file_prefix = ""
++
++ # You can turn off writing this cache file by setting this to 0.
++ write_cache_state = 1
++
++ # Advanced settings.
++
++ # List of pairs of additional acceptable block device types found
++ # in /proc/devices with maximum (non-zero) number of partitions.
++ # types = [ "fd", 16 ]
++
++ # If sysfs is mounted (2.6 kernels) restrict device scanning to
++ # the block devices it believes are valid.
++ # 1 enables; 0 disables.
++ sysfs_scan = 1
++
++ # By default, LVM2 will ignore devices used as components of
++ # software RAID (md) devices by looking for md superblocks.
++ # 1 enables; 0 disables.
++ md_component_detection = 1
++
++ # By default, if a PV is placed directly upon an md device, LVM2
++ # will align its data blocks with the md device's stripe-width.
++ # 1 enables; 0 disables.
++ md_chunk_alignment = 1
++
++ # By default, the start of a PV's data area will be a multiple of
++ # the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs.
++ # - minimum_io_size - the smallest request the device can perform
++ # w/o incurring a read-modify-write penalty (e.g. MD's chunk size)
++ # - optimal_io_size - the device's preferred unit of receiving I/O
++ # (e.g. MD's stripe width)
++ # minimum_io_size is used if optimal_io_size is undefined (0).
++ # If md_chunk_alignment is enabled, that detects the optimal_io_size.
++ # This setting takes precedence over md_chunk_alignment.
++ # 1 enables; 0 disables.
++ data_alignment_detection = 1
++
++ # Alignment (in KB) of start of data area when creating a new PV.
++ # If a PV is placed directly upon an md device and md_chunk_alignment or
++ # data_alignment_detection is enabled this parameter is ignored.
++ # Set to 0 for the default alignment of 64KB or page size, if larger.
++ data_alignment = 0
++
++ # By default, the start of the PV's aligned data area will be shifted by
++ # the 'alignment_offset' exposed in sysfs. This offset is often 0 but
++ # may be non-zero; e.g.: certain 4KB sector drives that compensate for
++ # windows partitioning will have an alignment_offset of 3584 bytes
++ # (sector 7 is the lowest aligned logical block, the 4KB sectors start
++ # at LBA -1, and consequently sector 63 is aligned on a 4KB boundary).
++ # 1 enables; 0 disables.
++ data_alignment_offset_detection = 1
++
++ # If, while scanning the system for PVs, LVM2 encounters a device-mapper
++ # device that has its I/O suspended, it waits for it to become accessible.
++ # Set this to 1 to skip such devices. This should only be needed
++ # in recovery situations.
++ ignore_suspended_devices = 0
++}
++
++# This section that allows you to configure the nature of the
++# information that LVM2 reports.
++log {
++
++ # Controls the messages sent to stdout or stderr.
++ # There are three levels of verbosity, 3 being the most verbose.
++ verbose = 0
++
++ # Should we send log messages through syslog?
++ # 1 is yes; 0 is no.
++ syslog = 1
++
++ # Should we log error and debug messages to a file?
++ # By default there is no log file.
++ #file = "/var/log/lvm2.log"
++
++ # Should we overwrite the log file each time the program is run?
++ # By default we append.
++ overwrite = 0
++
++ # What level of log messages should we send to the log file and/or syslog?
++ # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive.
++ # 7 is the most verbose (LOG_DEBUG).
++ level = 0
++
++ # Format of output messages
++ # Whether or not (1 or 0) to indent messages according to their severity
++ indent = 1
++
++ # Whether or not (1 or 0) to display the command name on each line output
++ command_names = 0
++
++ # A prefix to use before the message text (but after the command name,
++ # if selected). Default is two spaces, so you can see/grep the severity
++ # of each message.
++ prefix = " "
++
++ # To make the messages look similar to the original LVM tools use:
++ # indent = 0
++ # command_names = 1
++ # prefix = " -- "
++
++ # Set this if you want log messages during activation.
++ # Don't use this in low memory situations (can deadlock).
++ # activation = 0
++}
++
++# Configuration of metadata backups and archiving. In LVM2 when we
++# talk about a 'backup' we mean making a copy of the metadata for the
++# *current* system. The 'archive' contains old metadata configurations.
++# Backups are stored in a human readeable text format.
++backup {
++
++ # Should we maintain a backup of the current metadata configuration ?
++ # Use 1 for Yes; 0 for No.
++ # Think very hard before turning this off!
++ backup = 1
++
++ # Where shall we keep it ?
++ # Remember to back up this directory regularly!
++ backup_dir = "@DEFAULT_SYS_DIR@/@DEFAULT_BACKUP_SUBDIR@"
++
++ # Should we maintain an archive of old metadata configurations.
++ # Use 1 for Yes; 0 for No.
++ # On by default. Think very hard before turning this off.
++ archive = 1
++
++ # Where should archived files go ?
++ # Remember to back up this directory regularly!
++ archive_dir = "@DEFAULT_SYS_DIR@/@DEFAULT_ARCHIVE_SUBDIR@"
++
++ # What is the minimum number of archive files you wish to keep ?
++ retain_min = 10
++
++ # What is the minimum time you wish to keep an archive file for ?
++ retain_days = 30
++}
++
++# Settings for the running LVM2 in shell (readline) mode.
++shell {
++
++ # Number of lines of history to store in ~/.lvm_history
++ history_size = 100
++}
++
++
++# Miscellaneous global LVM2 settings
++global {
++
++ # The file creation mask for any files and directories created.
++ # Interpreted as octal if the first digit is zero.
++ umask = 077
++
++ # Allow other users to read the files
++ #umask = 022
++
++ # Enabling test mode means that no changes to the on disk metadata
++ # will be made. Equivalent to having the -t option on every
++ # command. Defaults to off.
++ test = 0
++
++ # Default value for --units argument
++ units = "h"
++
++ # Since version 2.02.54, the tools distinguish between powers of
++ # 1024 bytes (e.g. KiB, MiB, GiB) and powers of 1000 bytes (e.g.
++ # KB, MB, GB).
++ # If you have scripts that depend on the old behaviour, set this to 0
++ # temporarily until you update them.
++ si_unit_consistency = 1
++
++ # Whether or not to communicate with the kernel device-mapper.
++ # Set to 0 if you want to use the tools to manipulate LVM metadata
++ # without activating any logical volumes.
++ # If the device-mapper kernel driver is not present in your kernel
++ # setting this to 0 should suppress the error messages.
++ activation = 1
++
++ # If we can't communicate with device-mapper, should we try running
++ # the LVM1 tools?
++ # This option only applies to 2.4 kernels and is provided to help you
++ # switch between device-mapper kernels and LVM1 kernels.
++ # The LVM1 tools need to be installed with .lvm1 suffices
++ # e.g. vgscan.lvm1 and they will stop working after you start using
++ # the new lvm2 on-disk metadata format.
++ # The default value is set when the tools are built.
++ # fallback_to_lvm1 = 0
++
++ # The default metadata format that commands should use - "lvm1" or "lvm2".
++ # The command line override is -M1 or -M2.
++ # Defaults to "lvm2".
++ # format = "lvm2"
++
++ # Location of proc filesystem
++ proc = "/proc"
++
++ # Type of locking to use. Defaults to local file-based locking (1).
++ # Turn locking off by setting to 0 (dangerous: risks metadata corruption
++ # if LVM2 commands get run concurrently).
++ # Type 2 uses the external shared library locking_library.
++ # Type 3 uses built-in clustered locking.
++ # Type 4 uses read-only locking which forbids any operations that might
++ # change metadata.
++ locking_type = 1
++
++ # Set to 0 to fail when a lock request cannot be satisfied immediately.
++ wait_for_locks = 1
++
++ # If using external locking (type 2) and initialisation fails,
++ # with this set to 1 an attempt will be made to use the built-in
++ # clustered locking.
++ # If you are using a customised locking_library you should set this to 0.
++ fallback_to_clustered_locking = 1
++
++ # If an attempt to initialise type 2 or type 3 locking failed, perhaps
++ # because cluster components such as clvmd are not running, with this set
++ # to 1 an attempt will be made to use local file-based locking (type 1).
++ # If this succeeds, only commands against local volume groups will proceed.
++ # Volume Groups marked as clustered will be ignored.
++ fallback_to_local_locking = 1
++
++ # Local non-LV directory that holds file-based locks while commands are
++ # in progress. A directory like /tmp that may get wiped on reboot is OK.
++ locking_dir = "@DEFAULT_LOCK_DIR@"
++
++ # Whenever there are competing read-only and read-write access requests for
++ # a volume group's metadata, instead of always granting the read-only
++ # requests immediately, delay them to allow the read-write requests to be
++ # serviced. Without this setting, write access may be stalled by a high
++ # volume of read-only requests.
++ # NB. This option only affects locking_type = 1 viz. local file-based
++ # locking.
++ prioritise_write_locks = 1
++
++ # Other entries can go here to allow you to load shared libraries
++ # e.g. if support for LVM1 metadata was compiled as a shared library use
++ # format_libraries = "liblvm2format1.so"
++ # Full pathnames can be given.
++
++ # Search this directory first for shared libraries.
++ # library_dir = "/lib"
++
++ # The external locking library to load if locking_type is set to 2.
++ # locking_library = "liblvm2clusterlock.so"
++
++ # Treat any internal errors as fatal errors, aborting the process that
++ # encountered the internal error. Please only enable for debugging.
++ abort_on_internal_errors = 0
++}
++
++activation {
++ # Set to 0 to disable udev synchronisation (if compiled into the binaries).
++ # Processes will not wait for notification from udev.
++ # They will continue irrespective of any possible udev processing
++ # in the background. You should only use this if udev is not running
++ # or has rules that ignore the devices LVM2 creates.
++ # The command line argument --nodevsync takes precedence over this setting.
++ # If set to 1 when udev is not running, and there are LVM2 processes
++ # waiting for udev, run 'dmsetup udevcomplete_all' manually to wake them up.
++ udev_sync = 1
++
++ # Set to 0 to disable the udev rules installed by LVM2 (if built with
++ # --enable-udev_rules). LVM2 will then manage the /dev nodes and symlinks
++ # for active logical volumes directly itself.
++ # N.B. Manual intervention may be required if this setting is changed
++ # while any logical volumes are active.
++ udev_rules = 1
++
++ # How to fill in missing stripes if activating an incomplete volume.
++ # Using "error" will make inaccessible parts of the device return
++ # I/O errors on access. You can instead use a device path, in which
++ # case, that device will be used to in place of missing stripes.
++ # But note that using anything other than "error" with mirrored
++ # or snapshotted volumes is likely to result in data corruption.
++ missing_stripe_filler = "error"
++
++ # How much stack (in KB) to reserve for use while devices suspended
++ reserved_stack = 256
++
++ # How much memory (in KB) to reserve for use while devices suspended
++ reserved_memory = 8192
++
++ # Nice value used while devices suspended
++ process_priority = -18
++
++ # If volume_list is defined, each LV is only activated if there is a
++ # match against the list.
++ # "vgname" and "vgname/lvname" are matched exactly.
++ # "@tag" matches any tag set in the LV or VG.
++ # "@*" matches if any tag defined on the host is also set in the LV or VG
++ #
++ # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
++
++ # Size (in KB) of each copy operation when mirroring
++ mirror_region_size = 512
++
++ # Setting to use when there is no readahead value stored in the metadata.
++ #
++ # "none" - Disable readahead.
++ # "auto" - Use default value chosen by kernel.
++ readahead = "auto"
++
++ # 'mirror_image_fault_policy' and 'mirror_log_fault_policy' define
++ # how a device failure affecting a mirror is handled.
++ # A mirror is composed of mirror images (copies) and a log.
++ # A disk log ensures that a mirror does not need to be re-synced
++ # (all copies made the same) every time a machine reboots or crashes.
++ #
++ # In the event of a failure, the specified policy will be used to determine
++ # what happens. This applies to automatic repairs (when the mirror is being
++ # monitored by dmeventd) and to manual lvconvert --repair when
++ # --use-policies is given.
++ #
++ # "remove" - Simply remove the faulty device and run without it. If
++ # the log device fails, the mirror would convert to using
++ # an in-memory log. This means the mirror will not
++ # remember its sync status across crashes/reboots and
++ # the entire mirror will be re-synced. If a
++ # mirror image fails, the mirror will convert to a
++ # non-mirrored device if there is only one remaining good
++ # copy.
++ #
++ # "allocate" - Remove the faulty device and try to allocate space on
++ # a new device to be a replacement for the failed device.
++ # Using this policy for the log is fast and maintains the
++ # ability to remember sync state through crashes/reboots.
++ # Using this policy for a mirror device is slow, as it
++ # requires the mirror to resynchronize the devices, but it
++ # will preserve the mirror characteristic of the device.
++ # This policy acts like "remove" if no suitable device and
++ # space can be allocated for the replacement.
++ #
++ # "allocate_anywhere" - Not yet implemented. Useful to place the log device
++ # temporarily on same physical volume as one of the mirror
++ # images. This policy is not recommended for mirror devices
++ # since it would break the redundant nature of the mirror. This
++ # policy acts like "remove" if no suitable device and space can
++ # be allocated for the replacement.
++
++ mirror_log_fault_policy = "allocate"
++ mirror_image_fault_policy = "remove"
++
++ # While activating devices, I/O to devices being (re)configured is
++ # suspended, and as a precaution against deadlocks, LVM2 needs to pin
++ # any memory it is using so it is not paged out. Groups of pages that
++ # are known not to be accessed during activation need not be pinned
++ # into memory. Each string listed in this setting is compared against
++ # each line in /proc/self/maps, and the pages corresponding to any
++ # lines that match are not pinned. On some systems locale-archive was
++ # found to make up over 80% of the memory used by the process.
++ # mlock_filter = [ "locale/locale-archive", "gconv/gconv-modules.cache" ]
++
++ # Set to 1 to revert to the default behaviour prior to version 2.02.62
++ # which used mlockall() to pin the whole process's memory while activating
++ # devices.
++ use_mlockall = 0
++
++ # Monitoring is enabled by default when activating logical volumes.
++ # Set to 0 to disable monitoring or use the --ignoremonitoring option.
++ monitoring = 1
++
++ # When pvmove or lvconvert must wait for the kernel to finish
++ # synchronising or merging data, they check and report progress
++ # at intervals of this number of seconds. The default is 15 seconds.
++ # If this is set to 0 and there is only one thing to wait for, there
++ # are no progress reports, but the process is awoken immediately the
++ # operation is complete.
++ polling_interval = 15
++}
++
++
++####################
++# Advanced section #
++####################
++
++# Metadata settings
++#
++# metadata {
++ # Default number of copies of metadata to hold on each PV. 0, 1 or 2.
++ # You might want to override it from the command line with 0
++ # when running pvcreate on new PVs which are to be added to large VGs.
++
++ # pvmetadatacopies = 1
++
++ # Approximate default size of on-disk metadata areas in sectors.
++ # You should increase this if you have large volume groups or
++ # you want to retain a large on-disk history of your metadata changes.
++
++ # pvmetadatasize = 255
++
++ # List of directories holding live copies of text format metadata.
++ # These directories must not be on logical volumes!
++ # It's possible to use LVM2 with a couple of directories here,
++ # preferably on different (non-LV) filesystems, and with no other
++ # on-disk metadata (pvmetadatacopies = 0). Or this can be in
++ # addition to on-disk metadata areas.
++ # The feature was originally added to simplify testing and is not
++ # supported under low memory situations - the machine could lock up.
++ #
++ # Never edit any files in these directories by hand unless you
++ # you are absolutely sure you know what you are doing! Use
++ # the supplied toolset to make changes (e.g. vgcfgrestore).
++
++ # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
++#}
++
++# Event daemon
++#
++dmeventd {
++ # mirror_library is the library used when monitoring a mirror device.
++ #
++ # "libdevmapper-event-lvm2mirror.so" attempts to recover from
++ # failures. It removes failed devices from a volume group and
++ # reconfigures a mirror as necessary. If no mirror library is
++ # provided, mirrors are not monitored through dmeventd.
++
++ mirror_library = "libdevmapper-event-lvm2mirror.so"
++
++ # snapshot_library is the library used when monitoring a snapshot device.
++ #
++ # "libdevmapper-event-lvm2snapshot.so" monitors the filling of
++ # snapshots and emits a warning through syslog, when the use of
++ # snapshot exceedes 80%. The warning is repeated when 85%, 90% and
++ # 95% of the snapshot are filled.
++
++ snapshot_library = "libdevmapper-event-lvm2snapshot.so"
++}
diff --git a/sys-fs/lvm2/files/lvm2-2.02.64-dmeventd-libs.patch b/sys-fs/lvm2/files/lvm2-2.02.64-dmeventd-libs.patch
new file mode 100644
index 000000000000..3a53639977ef
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.64-dmeventd-libs.patch
@@ -0,0 +1,15 @@
+X-Gentoo-Bug: 318513
+X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=318513
+
+diff -ur LVM2.2.02.64/daemons/dmeventd/plugins/lvm2/Makefile.in LVM2.2.02.64.new/daemons/dmeventd/plugins/lvm2/Makefile.in
+--- LVM2.2.02.64/daemons/dmeventd/plugins/lvm2/Makefile.in 2010-04-09 23:42:49.000000000 +0200
++++ LVM2.2.02.64.new/daemons/dmeventd/plugins/lvm2/Makefile.in 2010-05-04 13:18:07.886389742 +0200
+@@ -24,7 +24,7 @@
+
+ include $(top_builddir)/make.tmpl
+
+-LIBS += @LVM2CMD_LIB@ -ldevmapper $(PTHREAD_LIBS)
++LIBS += @LVM2CMD_LIB@ -ldevmapper -ldevmapper-event $(PTHREAD_LIBS)
+
+ install_lvm2: install_lib_shared
+
diff --git a/sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch b/sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch
new file mode 100644
index 000000000000..7f0bfb894f02
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch
@@ -0,0 +1,18 @@
+X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=301331
+X-Gentoo-Bug: 301331
+
+diff -Nuar LVM2.2.02.67.orig/scripts/lvm2create_initrd/lvm2create_initrd LVM2.2.02.67/scripts/lvm2create_initrd/lvm2create_initrd
+--- LVM2.2.02.67.orig/scripts/lvm2create_initrd/lvm2create_initrd 2010-06-07 18:44:34.182980475 +0000
++++ LVM2.2.02.67/scripts/lvm2create_initrd/lvm2create_initrd 2010-06-07 18:51:27.636312899 +0000
+@@ -469,9 +469,9 @@
+ rmdir $TMPMNT/lost+found
+
+ echo "$cmd -- ummounting ram disk"
+-umount $DEVRAM
++umount $TMPMNT
+ if [ $? -ne 0 ]; then
+- echo "$cmd -- ERROR umounting $DEVRAM"
++ echo "$cmd -- ERROR umounting $TMPMNT"
+ cleanup 1
+ fi
+