===================================================================
@@ -430,9 +430,10 @@ static void free_tio(struct mapped_devic
mempool_free(tio, md->tio_pool);
}
-static struct dm_rq_target_io *alloc_rq_tio(struct mapped_device *md)
+static struct dm_rq_target_io *alloc_rq_tio(struct mapped_device *md,
+ gfp_t gfp_mask)
{
- return mempool_alloc(md->tio_pool, GFP_ATOMIC);
+ return mempool_alloc(md->tio_pool, gfp_mask);
}
static void free_rq_tio(struct dm_rq_target_io *tio)
@@ -1469,7 +1470,7 @@ static int dm_prep_fn(struct request_que
return BLKPREP_KILL;
}
- tio = alloc_rq_tio(md); /* Only one for each original request */
+ tio = alloc_rq_tio(md, GFP_ATOMIC);
if (!tio)
/* -ENOMEM */
return BLKPREP_DEFER;