lightnvm: do not reserve lun on l2p loading
authorJavier González <jg@lightnvm.io>
Thu, 3 Mar 2016 14:06:40 +0000 (15:06 +0100)
committerJens Axboe <axboe@fb.com>
Sat, 19 Mar 2016 01:10:38 +0000 (18:10 -0700)
When the l2p table is loaded, addresses are checked for the lun they
belong to and luns are reserved accordingly. This assumes that metadata
is being stored in the backend device to recover the previous target
configuration. Since this is not yet implemented, this check collides
with some of the core initialization (e.g., sysblock initialization when
a page is formed by several sectors).

We take this check out and for now rely on that the right target will be
created instead. When metadata is stored to recover a target, this check
will come natural as part of the recovery strategy.

Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/lightnvm/gennvm.c

index b97801c0009935e4e524df45d12b3bd14ea908a1..42c1c2ab6cc3531fa45355abc1e25123fdd578b1 100644 (file)
@@ -192,9 +192,6 @@ static int gennvm_block_map(u64 slba, u32 nlb, __le64 *entries, void *private)
                lun_id = div_u64(pba, dev->sec_per_lun);
                lun = &gn->luns[lun_id];
 
-               if (!test_bit(lun_id, dev->lun_map))
-                       __set_bit(lun_id, dev->lun_map);
-
                /* Calculate block offset into lun */
                pba = pba - (dev->sec_per_lun * lun_id);
                blk = &lun->vlun.blocks[div_u64(pba, dev->sec_per_blk)];