Commit 7e5434ee authored by Igor Konopko's avatar Igor Konopko Committed by Jens Axboe
Browse files

lightnvm: pblk: line reference fix in GC



Fixes the GC error case when moving a line back to closed state
while releasing additional references.

Signed-off-by: default avatarIgor Konopko <igor.j.konopko@intel.com>
Reviewed-by: default avatarHans Holmberg <hans.holmberg@cnexlabs.com>
Reviewed-by: default avatarJavier González <javier@javigon.com>
Signed-off-by: default avatarMatias Bjørling <mb@lightnvm.io>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 66215664
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -290,8 +290,11 @@ fail_free_invalid_bitmap:
fail_free_ws:
	kfree(line_ws);

	/* Line goes back to closed state, so we cannot release additional
	 * reference for line, since we do that only when we want to do
	 * gc to free line state transition.
	 */
	pblk_put_line_back(pblk, line);
	kref_put(&line->ref, pblk_line_put);
	atomic_dec(&gc->read_inflight_gc);

	pblk_err(pblk, "failed to GC line %d\n", line->id);