If dma_map_sg returns 0 (failure), we need to fail the I/O.
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
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;
return 0;
+ mapping_failed:
+ free_nbio(nvmeq, nbio);
+ bio_endio(bio, -ENOMEM);
+ return 0;
+
free_nbio:
free_nbio(nvmeq, nbio);
congestion: