aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm/pblk-recovery.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/lightnvm/pblk-recovery.c')
-rw-r--r--drivers/lightnvm/pblk-recovery.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/lightnvm/pblk-recovery.c b/drivers/lightnvm/pblk-recovery.c
index 7b0ace2f4957..b9f2b40bd5a7 100644
--- a/drivers/lightnvm/pblk-recovery.c
+++ b/drivers/lightnvm/pblk-recovery.c
@@ -257,7 +257,6 @@ next_read_rq:
257 257
258 rqd->bio = bio; 258 rqd->bio = bio;
259 rqd->opcode = NVM_OP_PREAD; 259 rqd->opcode = NVM_OP_PREAD;
260 rqd->flags = pblk_set_read_mode(pblk);
261 rqd->meta_list = meta_list; 260 rqd->meta_list = meta_list;
262 rqd->nr_ppas = rq_ppas; 261 rqd->nr_ppas = rq_ppas;
263 rqd->ppa_list = ppa_list; 262 rqd->ppa_list = ppa_list;
@@ -266,6 +265,11 @@ next_read_rq:
266 rqd->end_io = pblk_end_io_sync; 265 rqd->end_io = pblk_end_io_sync;
267 rqd->private = &wait; 266 rqd->private = &wait;
268 267
268 if (pblk_io_aligned(pblk, rq_ppas))
269 rqd->flags = pblk_set_read_mode(pblk, PBLK_READ_SEQUENTIAL);
270 else
271 rqd->flags = pblk_set_read_mode(pblk, PBLK_READ_RANDOM);
272
269 for (i = 0; i < rqd->nr_ppas; ) { 273 for (i = 0; i < rqd->nr_ppas; ) {
270 struct ppa_addr ppa; 274 struct ppa_addr ppa;
271 int pos; 275 int pos;
@@ -473,7 +477,6 @@ next_rq:
473 477
474 rqd->bio = bio; 478 rqd->bio = bio;
475 rqd->opcode = NVM_OP_PREAD; 479 rqd->opcode = NVM_OP_PREAD;
476 rqd->flags = pblk_set_read_mode(pblk);
477 rqd->meta_list = meta_list; 480 rqd->meta_list = meta_list;
478 rqd->nr_ppas = rq_ppas; 481 rqd->nr_ppas = rq_ppas;
479 rqd->ppa_list = ppa_list; 482 rqd->ppa_list = ppa_list;
@@ -482,6 +485,11 @@ next_rq:
482 rqd->end_io = pblk_end_io_sync; 485 rqd->end_io = pblk_end_io_sync;
483 rqd->private = &wait; 486 rqd->private = &wait;
484 487
488 if (pblk_io_aligned(pblk, rq_ppas))
489 rqd->flags = pblk_set_read_mode(pblk, PBLK_READ_SEQUENTIAL);
490 else
491 rqd->flags = pblk_set_read_mode(pblk, PBLK_READ_RANDOM);
492
485 for (i = 0; i < rqd->nr_ppas; ) { 493 for (i = 0; i < rqd->nr_ppas; ) {
486 struct ppa_addr ppa; 494 struct ppa_addr ppa;
487 int pos; 495 int pos;
@@ -607,7 +615,6 @@ next_rq:
607 615
608 rqd->bio = bio; 616 rqd->bio = bio;
609 rqd->opcode = NVM_OP_PREAD; 617 rqd->opcode = NVM_OP_PREAD;
610 rqd->flags = pblk_set_read_mode(pblk);
611 rqd->meta_list = meta_list; 618 rqd->meta_list = meta_list;
612 rqd->nr_ppas = rq_ppas; 619 rqd->nr_ppas = rq_ppas;
613 rqd->ppa_list = ppa_list; 620 rqd->ppa_list = ppa_list;
@@ -616,6 +623,11 @@ next_rq:
616 rqd->end_io = pblk_end_io_sync; 623 rqd->end_io = pblk_end_io_sync;
617 rqd->private = &wait; 624 rqd->private = &wait;
618 625
626 if (pblk_io_aligned(pblk, rq_ppas))
627 rqd->flags = pblk_set_read_mode(pblk, PBLK_READ_SEQUENTIAL);
628 else
629 rqd->flags = pblk_set_read_mode(pblk, PBLK_READ_RANDOM);
630
619 for (i = 0; i < rqd->nr_ppas; ) { 631 for (i = 0; i < rqd->nr_ppas; ) {
620 struct ppa_addr ppa; 632 struct ppa_addr ppa;
621 int pos; 633 int pos;