summary refs log tree commit diff
path: root/pkgs/os-specific/linux/drbd
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2011-11-02 18:54:49 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2011-11-02 18:54:49 +0000
commitd0c3f05c131c3cab3211a8b455ab077c8d0cfc37 (patch)
tree2196d55794bc50c5e8483d41e12131c47a390e03 /pkgs/os-specific/linux/drbd
parent2d2ee447fb14b4f42dc6c5d3e3a9f29785967c28 (diff)
downloadnixlib-d0c3f05c131c3cab3211a8b455ab077c8d0cfc37.tar
nixlib-d0c3f05c131c3cab3211a8b455ab077c8d0cfc37.tar.gz
nixlib-d0c3f05c131c3cab3211a8b455ab077c8d0cfc37.tar.bz2
nixlib-d0c3f05c131c3cab3211a8b455ab077c8d0cfc37.tar.lz
nixlib-d0c3f05c131c3cab3211a8b455ab077c8d0cfc37.tar.xz
nixlib-d0c3f05c131c3cab3211a8b455ab077c8d0cfc37.tar.zst
nixlib-d0c3f05c131c3cab3211a8b455ab077c8d0cfc37.zip
* Apply a patch to propagate the --force flag in the legacy drbdadm to
  drbdsetup.  Otherwise "drbdadm primary --force" won't work as
  expected (the kernel will say "State change failed: Need access to
  UpToDate data").

svn path=/nixpkgs/trunk/; revision=30195
Diffstat (limited to 'pkgs/os-specific/linux/drbd')
-rw-r--r--pkgs/os-specific/linux/drbd/default.nix6
-rw-r--r--pkgs/os-specific/linux/drbd/pass-force.patch15
2 files changed, 19 insertions, 2 deletions
diff --git a/pkgs/os-specific/linux/drbd/default.nix b/pkgs/os-specific/linux/drbd/default.nix
index 40821a6e489a..7129b685eb90 100644
--- a/pkgs/os-specific/linux/drbd/default.nix
+++ b/pkgs/os-specific/linux/drbd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, flex, udev }:
+{ stdenv, fetchurl, flex, udev, perl }:
 
 assert stdenv.isLinux;
 
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "096njwxjpwvnl259gxq6cr6n0r6ba0h5aryvgk05hqi95jx927vg";
   };
 
-  buildInputs = [ flex ];
+  patches = [ ./pass-force.patch ];
+
+  buildInputs = [ flex perl ];
 
   configureFlags = "--without-distro --without-pacemaker --localstatedir=/var --sysconfdir=/etc";
 
diff --git a/pkgs/os-specific/linux/drbd/pass-force.patch b/pkgs/os-specific/linux/drbd/pass-force.patch
new file mode 100644
index 000000000000..8f0201100f72
--- /dev/null
+++ b/pkgs/os-specific/linux/drbd/pass-force.patch
@@ -0,0 +1,15 @@
+Propagate the --force flag in the legacy drbdadm to drbdsetup.
+Otherwise "drbdadm primary --force" won't work as expected (the kernel
+will say "State change failed: Need access to UpToDate data").
+
+diff -ru -x '*~' drbd-8.4.0-orig/user/legacy/drbdadm_main.c drbd-8.4.0/user/legacy/drbdadm_main.c
+--- drbd-8.4.0-orig/user/legacy/drbdadm_main.c	2011-07-07 06:55:39.000000000 -0400
++++ drbd-8.4.0/user/legacy/drbdadm_main.c	2011-11-02 14:51:04.000000000 -0400
+@@ -1547,6 +1547,7 @@
+ 	for (i = 0; i < soi; i++) {
+ 		argv[NA(argc)] = setup_opts[i];
+ 	}
++	if (force) argv[NA(argc)] = "--force";
+ 	argv[NA(argc)] = 0;
+ 
+ 	setenv("DRBD_RESOURCE", res->name, 1);