summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier González <jg@lightnvm.io>2016-11-28 22:38:58 +0100
committerJens Axboe <axboe@fb.com>2016-11-29 20:12:51 +0100
commitf0b01b6a610f99fb7683d0f5259bb65649b0fd78 (patch)
treea9d0df938719647e1550ad63106c55634033a8c3
parentlightnvm: add ECC error codes (diff)
downloadlinux-f0b01b6a610f99fb7683d0f5259bb65649b0fd78.tar.xz
linux-f0b01b6a610f99fb7683d0f5259bb65649b0fd78.zip
lightnvm: rrpc: split bios of size > 256kb
rrpc cannot handle bios of size > 256kb due to NVMe using a 64 bit bitmap to signal I/O completion. If a larger bio comes, split it explicitly. Signed-off-by: Javier González <javier@cnexlabs.com> Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r--drivers/lightnvm/rrpc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index 2b71b7e59dac..60ca9d4bd6e9 100644
--- a/drivers/lightnvm/rrpc.c
+++ b/drivers/lightnvm/rrpc.c
@@ -943,6 +943,8 @@ static blk_qc_t rrpc_make_rq(struct request_queue *q, struct bio *bio)
struct nvm_rq *rqd;
int err;
+ blk_queue_split(q, &bio, q->bio_split);
+
if (bio_op(bio) == REQ_OP_DISCARD) {
rrpc_discard(rrpc, bio);
return BLK_QC_T_NONE;