diff options
Diffstat (limited to 'drivers/lightnvm/pblk-init.c')
-rw-r--r-- | drivers/lightnvm/pblk-init.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index e5239aba806b..13822594647c 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm/pblk-init.c | |||
@@ -193,8 +193,9 @@ static int pblk_rwb_init(struct pblk *pblk) | |||
193 | struct nvm_tgt_dev *dev = pblk->dev; | 193 | struct nvm_tgt_dev *dev = pblk->dev; |
194 | struct nvm_geo *geo = &dev->geo; | 194 | struct nvm_geo *geo = &dev->geo; |
195 | unsigned long buffer_size; | 195 | unsigned long buffer_size; |
196 | int pgs_in_buffer; | 196 | int pgs_in_buffer, threshold; |
197 | 197 | ||
198 | threshold = geo->mw_cunits * geo->all_luns; | ||
198 | pgs_in_buffer = (max(geo->mw_cunits, geo->ws_opt) + geo->ws_opt) | 199 | pgs_in_buffer = (max(geo->mw_cunits, geo->ws_opt) + geo->ws_opt) |
199 | * geo->all_luns; | 200 | * geo->all_luns; |
200 | 201 | ||
@@ -203,7 +204,7 @@ static int pblk_rwb_init(struct pblk *pblk) | |||
203 | else | 204 | else |
204 | buffer_size = pgs_in_buffer; | 205 | buffer_size = pgs_in_buffer; |
205 | 206 | ||
206 | return pblk_rb_init(&pblk->rwb, buffer_size, geo->csecs); | 207 | return pblk_rb_init(&pblk->rwb, buffer_size, threshold, geo->csecs); |
207 | } | 208 | } |
208 | 209 | ||
209 | /* Minimum pages needed within a lun */ | 210 | /* Minimum pages needed within a lun */ |