linux/drivers/lightnvm
Javier González 6ad2f619b2 lightnvm: pblk: recover open lines on 2.0 devices
In the OCSSD 2.0 spec, each chunk reports its write pointer. This means
that pblk does not need to scan open lines to find the write pointer,
but instead, it can retrieve it directly (and verify it).

This patch uses the write pointer on open lines to (i) recover the line
up until the last written lba and (ii) reconstruct the map bitmap and
rest of line metadata so that the line can be used for new data.

Since the 1.2 path in lightnvm core has been re-implemented to populate
the chunk structure and thus recover the write pointer on
initialization, this patch removes 1.2 specific recovery, as the 2.0
path can be reused.

Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-10-09 08:25:08 -06:00
..
core.c lightnvm: introduce nvm_rq_to_ppa_list 2018-10-09 08:25:07 -06:00
Kconfig lightnvm: remove dependencies on BLK_DEV_NVME and PCI 2018-10-09 08:25:05 -06:00
Makefile lightnvm: remove rrpc 2018-01-05 08:50:12 -07:00
pblk-cache.c block: Add and use op_stat_group() for indexing disk_stat fields. 2018-07-18 08:44:20 -06:00
pblk-core.c lightnvm: pblk: take write semaphore on metadata 2018-10-09 08:25:08 -06:00
pblk-gc.c lightnvm: pblk: refactor metadata paths 2018-10-09 08:25:07 -06:00
pblk-init.c lightnvm: use internal allocation for chunk log page 2018-10-09 08:25:07 -06:00
pblk-map.c lightnvm: pblk: remove debug from pblk_[down/up]_page 2018-10-09 08:25:07 -06:00
pblk-rb.c lightnvm: pblk: improve line helpers 2018-10-09 08:25:06 -06:00
pblk-read.c lightnvm: pblk: encapsulate rqd dma allocations 2018-10-09 08:25:07 -06:00
pblk-recovery.c lightnvm: pblk: recover open lines on 2.0 devices 2018-10-09 08:25:08 -06:00
pblk-rl.c lightnvm: pblk: unify vector max req constants 2018-10-09 08:25:06 -06:00
pblk-sysfs.c lightnvm: pblk: fix write amplificiation calculation 2018-10-09 08:25:07 -06:00
pblk-trace.h lightnvm: pblk: add tracing for chunk resets 2018-10-09 08:25:07 -06:00
pblk-write.c lightnvm: pblk: encapsulate rqd dma allocations 2018-10-09 08:25:07 -06:00
pblk.h lightnvm: pblk: take write semaphore on metadata 2018-10-09 08:25:08 -06:00