Re: [PATCH 1/2] lightnvm: use rrpc->nr_luns to calculate the rrpc area size

From: Matias BjÃrling
Date: Thu Mar 31 2016 - 04:57:14 EST




On 03/31/2016 10:31 AM, Wenwei Tao wrote:
2016-03-30 22:28 GMT+08:00 Wenwei Tao <ww.tao0320@xxxxxxxxx>:
rrpc->nr_sects is calculated after rrpc init luns succeeds,
before that the value of rrpc->nr_sects is zero, so we cannot
use it to calcuate rrpc area size, we use rrpc->nr_luns instead.

Signed-off-by: Wenwei Tao <ww.tao0320@xxxxxxxxx>
---
drivers/lightnvm/rrpc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index 3ab6495..516a045 100644
--- a/drivers/lightnvm/rrpc.c
+++ b/drivers/lightnvm/rrpc.c
@@ -1223,7 +1223,7 @@ static int rrpc_area_init(struct rrpc *rrpc, sector_t *begin)
{
struct nvm_dev *dev = rrpc->dev;
struct nvmm_type *mt = dev->mt;
- sector_t size = rrpc->nr_sects * dev->sec_size;
+ sector_t size = dev->sec_size * dev->sec_per_lun * rrpc->nr_luns;

dev->sec_size * dev->sec_per_lun * rrpc->nr_luns could be oveflow,
should use (sector_t)dev->sec_size * dev->sec_per_lun * rrpc->nr_luns
instead. Will submit another patch to fix it.

Hi Wenwei,

How about moving rrpc_area_init call under the rrpc_luns_init call instead. Then nr_sects will have been initialized?


size >>= 9;

--
2.7.2.333.g70bd996