]> git.baikalelectronics.ru Git - kernel.git/commit
lightnvm: pblk: GC error handling
authorIgor Konopko <igor.j.konopko@intel.com>
Sat, 4 May 2019 18:38:05 +0000 (20:38 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 6 May 2019 16:19:18 +0000 (10:19 -0600)
commit96770e5aba067d4c1ae30f9bb3268fec3610f54b
tree38d0d4514b953abf1af92e4cb92acf325b0039e8
parent6e87048b697cff113cb1336ff8b4e3f4e54a83ab
lightnvm: pblk: GC error handling

Currently when there is an IO error (or similar) on GC read path, pblk
still move the line, which was currently under GC process to free state.
Such a behaviour can lead to silent data mismatch issue.

With this patch, the line which was under GC process on which some IO
errors occurred, will be putted back to closed state (instead of free
state as it was without this patch) and the L2P mapping for such a
failed sectors will not be updated.

Then in case of any user IOs to such a failed sectors, pblk would be
able to return at least real IO error instead of stale data as it is
right now.

Signed-off-by: Igor Konopko <igor.j.konopko@intel.com>
Reviewed-by: Javier González <javier@javigon.com>
Reviewed-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/lightnvm/pblk-core.c
drivers/lightnvm/pblk-gc.c
drivers/lightnvm/pblk-read.c
drivers/lightnvm/pblk.h