lightnvm: fix locking and mempool in rrpc_lun_gc
authorWenwei Tao <ww.tao0320@gmail.com>
Tue, 12 Jan 2016 06:49:25 +0000 (07:49 +0100)
committerJens Axboe <axboe@fb.com>
Tue, 12 Jan 2016 15:21:16 +0000 (08:21 -0700)
commitb262924be03d5d2ae735bc9a4b37eb2c613f61f8
treed9128e64b6cd635084725a75d295c8aeb6ed6a35
parentd0ca798f960ad7d86f5186fe312c131d00563eb7
lightnvm: fix locking and mempool in rrpc_lun_gc

This patch fix two issues in rrpc_lun_gc

1. prio_list is protected by rrpc_lun's lock not nvm_lun's, so
acquire rlun's lock instead of lun's before operate on the list.

2. we delete block from prio_list before allocating gcb, but gcb
allocation may fail, we end without putting it back to the list,
this makes the block won't get reclaimed in the future. To solve
this issue, delete block after gcb allocation.

Signed-off-by: Wenwei Tao <ww.tao0320@gmail.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/lightnvm/rrpc.c