summaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm
diff options
context:
space:
mode:
authorJavier González <javier@javigon.com>2016-01-12 07:49:31 +0100
committerJens Axboe <axboe@fb.com>2016-01-12 08:21:17 -0700
commitd7a64d275b39e19c010cdfd8728cc64f14b59bda (patch)
treebece6f5ed3f8c70b3e1114d8d01d58ac913dba34 /drivers/lightnvm
parent09719b62fdab031e39b39a6470364a372abdf3f4 (diff)
downloadtalos-op-linux-d7a64d275b39e19c010cdfd8728cc64f14b59bda.tar.gz
talos-op-linux-d7a64d275b39e19c010cdfd8728cc64f14b59bda.zip
lightnvm: reference rrpc lun in rrpc block
Currently, a rrpc block only points to its nvm_lun. If a user wants to find the associated rrpc lun, it will have to calculate the index and look it up manually. By referencing the rrpc lun directly, this step can be omitted, at the cost of a larger memory footprint. This is important for upcoming patches that implement write buffering in rrpc. 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>
Diffstat (limited to 'drivers/lightnvm')
-rw-r--r--drivers/lightnvm/rrpc.c1
-rw-r--r--drivers/lightnvm/rrpc.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index 9a5d94007ec0..280350c24cec 100644
--- a/drivers/lightnvm/rrpc.c
+++ b/drivers/lightnvm/rrpc.c
@@ -1150,6 +1150,7 @@ static int rrpc_luns_init(struct rrpc *rrpc, int lun_begin, int lun_end)
struct nvm_block *blk = &lun->blocks[j];
rblk->parent = blk;
+ rblk->rlun = rlun;
INIT_LIST_HEAD(&rblk->prio);
spin_lock_init(&rblk->lock);
}
diff --git a/drivers/lightnvm/rrpc.h b/drivers/lightnvm/rrpc.h
index a9696a06c38c..7c5fa4dd9722 100644
--- a/drivers/lightnvm/rrpc.h
+++ b/drivers/lightnvm/rrpc.h
@@ -54,6 +54,7 @@ struct rrpc_rq {
struct rrpc_block {
struct nvm_block *parent;
+ struct rrpc_lun *rlun;
struct list_head prio;
#define MAX_INVALID_PAGES_STORAGE 8
OpenPOWER on IntegriCloud