diff options
author | Wenwei Tao <ww.tao0320@gmail.com> | 2016-02-04 14:13:23 (GMT) |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-02-04 16:19:45 (GMT) |
commit | 16c6d048d7b74249a4387700887e8adb13028866 (patch) | |
tree | cd8905aa92e727bf11e4cdfcf83cd2f6f241e615 | |
parent | e502fb8f8801c9561c57397e7fd917187762324e (diff) | |
download | linux-16c6d048d7b74249a4387700887e8adb13028866.tar.xz |
lightnvm: put bio before return
The bio is not returned if the data page cannot be allocated.
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>
-rw-r--r-- | drivers/lightnvm/rrpc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c index d8c7595..307db1e 100644 --- a/drivers/lightnvm/rrpc.c +++ b/drivers/lightnvm/rrpc.c @@ -300,8 +300,10 @@ static int rrpc_move_valid_pages(struct rrpc *rrpc, struct rrpc_block *rblk) } page = mempool_alloc(rrpc->page_pool, GFP_NOIO); - if (!page) + if (!page) { + bio_put(bio); return -ENOMEM; + } while ((slot = find_first_zero_bit(rblk->invalid_pages, nr_pgs_per_blk)) < nr_pgs_per_blk) { |