Add a run_task_queue(&tq_disk) to encourage pending io to flush when we're doing a dm_suspend(). --- diff/drivers/md/dm.c 2002-12-04 15:52:54.000000000 +0000 +++ source/drivers/md/dm.c 2002-12-03 15:53:51.000000000 +0000 @@ -783,6 +783,7 @@ * Then we wait for the already mapped ios to * complete. */ + run_task_queue(&tq_disk); while (1) { set_current_state(TASK_INTERRUPTIBLE);