summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch')
-rw-r--r--abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch b/abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch
new file mode 100644
index 0000000..28f85e6
--- /dev/null
+++ b/abs/core-testing/cryptsetup/cryptsetup-1.0.5-run_udevsettle.patch
@@ -0,0 +1,29 @@
+Index: cryptsetup-1.0.5/lib/libdevmapper.c
+===================================================================
+--- cryptsetup-1.0.5.orig/lib/libdevmapper.c
++++ cryptsetup-1.0.5/lib/libdevmapper.c
+@@ -18,6 +18,13 @@
+
+ #define CRYPT_TARGET "crypt"
+
++#define UDEVSETTLE "/sbin/udevsettle"
++
++static void run_udevsettle(void)
++{
++ system(UDEVSETTLE);
++}
++
+ static void set_dm_error(int level, const char *file, int line,
+ const char *f, ...)
+ {
+@@ -184,6 +191,9 @@ static int dm_create_device(int reload,
+ if (dmi.read_only)
+ options->flags |= CRYPT_FLAG_READONLY;
+
++ /* run udevsettle to avoid problems with busy dm devices */
++ run_udevsettle();
++
+ r = 0;
+
+ out:
+