lightnvm: rrpc: split bios of size > 256kb
authorJavier González <jg@lightnvm.io>
Mon, 28 Nov 2016 21:38:58 +0000 (22:38 +0100)
committerJens Axboe <axboe@fb.com>
Tue, 29 Nov 2016 19:12:51 +0000 (12:12 -0700)
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>
drivers/lightnvm/rrpc.c

index 2b71b7e59dac5aa95ed9414034300a09f4987226..60ca9d4bd6e9cdcb5a0d747574a22558fbc45ae3 100644 (file)
@@ -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;