From: Joe Thornber For some reason dm_table_create() was allocating GFP_NOIO rather than GFP_KERNEL. --- 25-akpm/drivers/md/dm-table.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/md/dm-table.c~dm-07-dm_table_create-GFP-fix drivers/md/dm-table.c --- 25/drivers/md/dm-table.c~dm-07-dm_table_create-GFP-fix Tue Feb 10 13:08:27 2004 +++ 25-akpm/drivers/md/dm-table.c Tue Feb 10 13:08:27 2004 @@ -205,7 +205,7 @@ static int alloc_targets(struct dm_table int dm_table_create(struct dm_table **result, int mode, unsigned num_targets) { - struct dm_table *t = kmalloc(sizeof(*t), GFP_NOIO); + struct dm_table *t = kmalloc(sizeof(*t), GFP_KERNEL); if (!t) return -ENOMEM; _