Move the pre-suspend. --- diff/drivers/md/dm.c 2004-11-10 15:14:08.000000000 +0000 +++ source/drivers/md/dm.c 2004-11-10 15:14:15.000000000 +0000 @@ -1044,7 +1044,11 @@ return -EINVAL; } + map = dm_get_table(md); + if (map) + dm_table_suspend_targets(map, 0); __lock_fs(md); + up_read(&md->lock); /* @@ -1067,9 +1071,7 @@ up_write(&md->lock); /* unplug */ - map = dm_get_table(md); if (map) { - dm_table_suspend_targets(map, 0); dm_table_unplug_all(map); dm_table_put(map); }