aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/dm.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index cf0b455b21ef..a42dfb7a718e 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -432,9 +432,10 @@ static void free_tio(struct mapped_device *md, struct dm_target_io *tio)
432 mempool_free(tio, md->tio_pool); 432 mempool_free(tio, md->tio_pool);
433} 433}
434 434
435static struct dm_rq_target_io *alloc_rq_tio(struct mapped_device *md) 435static struct dm_rq_target_io *alloc_rq_tio(struct mapped_device *md,
436 gfp_t gfp_mask)
436{ 437{
437 return mempool_alloc(md->tio_pool, GFP_ATOMIC); 438 return mempool_alloc(md->tio_pool, gfp_mask);
438} 439}
439 440
440static void free_rq_tio(struct dm_rq_target_io *tio) 441static void free_rq_tio(struct dm_rq_target_io *tio)
@@ -1471,7 +1472,7 @@ static int dm_prep_fn(struct request_queue *q, struct request *rq)
1471 return BLKPREP_KILL; 1472 return BLKPREP_KILL;
1472 } 1473 }
1473 1474
1474 tio = alloc_rq_tio(md); /* Only one for each original request */ 1475 tio = alloc_rq_tio(md, GFP_ATOMIC);
1475 if (!tio) 1476 if (!tio)
1476 /* -ENOMEM */ 1477 /* -ENOMEM */
1477 return BLKPREP_DEFER; 1478 return BLKPREP_DEFER;