Updating lvm2 to 2.02.100.

This commit is contained in:
Lluís Batlle i Rossell 2013-09-19 14:19:10 +02:00
parent 38d54cfc21
commit 3974fb283a
2 changed files with 6 additions and 44 deletions

View File

@ -1,39 +0,0 @@
Work around LVM/cryptsetup errors like:
semid 32768: semop failed for cookie 0xd4d41f4: incorrect semaphore state
Failed to set a proper state for notification semaphore identified by cookie value 223166964 (0xd4d41f4) to initialize waiting for incoming notifications.
and (when running "cryptsetup --debug"):
Uevent not generated! Calling udev_complete internally to avoid process lock-up.
Here for some reason libdm *thinks* that the uevent hasn't been
emitted, so it calls udev_complete. But the uevent actually *has*
been emitted, so udev calls dmsetup udevcomplete as well, leading to
a race.
This is probably a reoccurence of the problem described here:
http://www.redhat.com/archives/dm-devel/2011-August/msg00075.html
http://www.redhat.com/archives/linux-lvm/2011-September/msg00023.html
which was fixed in the kernel, so it's not clear why it's surfacing
again. Maybe netlink_broadcast_filtered() has started returning some
other bogus error code.
diff -ru -x '*~' LVM2.2.02.98/libdm/ioctl/libdm-iface.c LVM2.2.02.98-new/libdm/ioctl/libdm-iface.c
--- LVM2.2.02.98/libdm/ioctl/libdm-iface.c 2012-10-15 10:24:58.000000000 -0400
+++ LVM2.2.02.98-new/libdm/ioctl/libdm-iface.c 2012-10-15 14:19:06.774363736 -0400
@@ -1754,9 +1754,12 @@
if (ioctl_with_uevent && dm_udev_get_sync_support() &&
!_check_uevent_generated(dmi)) {
+ log_debug("warning: Uevent might not be generated!");
+#if 0
log_debug("Uevent not generated! Calling udev_complete "
"internally to avoid process lock-up.");
_udev_complete(dmt);
+#endif
}
if (!_dm_ioctl_unmangle_names(dmt->type, dmi))

View File

@ -1,19 +1,17 @@
{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }:
let
v = "2.02.98";
v = "2.02.100";
in
stdenv.mkDerivation {
name = "lvm2-${v}";
src = fetchurl {
url = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${v}.tgz";
sha256 = "0r6q6z8ip6q5qgkzng0saljassp4912k6i21ra10vq7pzrc0l0vi";
url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${v}.tgz";
md5 = "9629cf5728544d7e637cafde1f73d777";
};
patches = [ ./assume-uevent-generated.patch ];
configureFlags =
"--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
@ -25,6 +23,9 @@ stdenv.mkDerivation {
--replace /usr/bin/tr ${coreutils}/bin/tr
substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
--replace /usr/sbin/lvm $out/sbin/lvm
sed -i /DEFAULT_SYS_DIR/d Makefile.in
sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
'';
#patches = [ ./purity.patch ];