From 6f703336b33470627dfb3d36048803bcae6419db Mon Sep 17 00:00:00 2001 From: Matthew Wilcox Date: Thu, 10 Feb 2011 12:01:09 -0500 Subject: [PATCH] --- yaml --- r: 286261 b: refs/heads/master c: 1974b1ae8852324a75fb8cfecbc7b758fd5a2c3c h: refs/heads/master i: 286259: f878ddbbd3c3f4da033eb3a2f9296e4a457d83ad v: v3 --- [refs] | 2 +- trunk/drivers/block/nvme.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index c532b705bc6d..3ab38b706567 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d567760c409f981d35fc755b51d5bf56a99a467b +refs/heads/master: 1974b1ae8852324a75fb8cfecbc7b758fd5a2c3c diff --git a/trunk/drivers/block/nvme.c b/trunk/drivers/block/nvme.c index 2948043483fe..bfdca3a3a41a 100644 --- a/trunk/drivers/block/nvme.c +++ b/trunk/drivers/block/nvme.c @@ -451,7 +451,8 @@ static int nvme_submit_bio_queue(struct nvme_queue *nvmeq, struct nvme_ns *ns, dma_dir = DMA_FROM_DEVICE; } - nvme_map_bio(nvmeq->q_dmadev, nbio, bio, dma_dir, psegs); + if (nvme_map_bio(nvmeq->q_dmadev, nbio, bio, dma_dir, psegs) == 0) + goto mapping_failed; cmnd->rw.flags = 1; cmnd->rw.command_id = cmdid; @@ -471,6 +472,11 @@ static int nvme_submit_bio_queue(struct nvme_queue *nvmeq, struct nvme_ns *ns, return 0; + mapping_failed: + free_nbio(nvmeq, nbio); + bio_endio(bio, -ENOMEM); + return 0; + free_nbio: free_nbio(nvmeq, nbio); congestion: