Index: linux-3.10/drivers/md/dm.c =================================================================== --- linux-3.10.orig/drivers/md/dm.c +++ linux-3.10/drivers/md/dm.c @@ -16,12 +16,13 @@ #include #include #include #include #include #include +#include #include #define DM_MSG_PREFIX "core" #ifdef CONFIG_PRINTK @@ -275,12 +276,15 @@ static void (*_exits[])(void) = { static int __init dm_init(void) { const int count = ARRAY_SIZE(_inits); int r, i; + printk(KERN_CRIT "DBG: %s: Calling async_synchronize_full();\n", __func__); + async_synchronize_full(); + for (i = 0; i < count; i++) { r = _inits[i](); if (r) goto bad; } Index: linux-3.10/drivers/md/md.c =================================================================== --- linux-3.10.orig/drivers/md/md.c +++ linux-3.10/drivers/md/md.c @@ -48,12 +48,13 @@ #include #include #include #include #include #include +#include #include "md.h" #include "bitmap.h" #ifndef MODULE static void autostart_arrays(int part); #endif @@ -8573,12 +8574,14 @@ static void autostart_arrays(int part) dev_t dev; int i_scanned, i_passed; i_scanned = 0; i_passed = 0; + printk(KERN_CRIT "DBG: %s: Calling async_synchronize_full()\n", __func__); + async_synchronize_full(); printk(KERN_INFO "md: Autodetecting RAID arrays.\n"); while (!list_empty(&all_detected_devices) && i_scanned < INT_MAX) { i_scanned++; node_detected_dev = list_entry(all_detected_devices.next, struct detected_devices_node, list);