In case when there is no enough sector available in rwb
and there is flush request send we should kick write thread
which is not a case in current implementation. This patch
fixes that issue.

Signed-off-by: Igor Konopko <[email protected]>
---
 drivers/lightnvm/pblk-core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c
index 78b1eea4ab67..f48f2e77f770 100644
--- a/drivers/lightnvm/pblk-core.c
+++ b/drivers/lightnvm/pblk-core.c
@@ -375,8 +375,9 @@ void pblk_write_timer_fn(struct timer_list *t)
 void pblk_write_should_kick(struct pblk *pblk)
 {
        unsigned int secs_avail = pblk_rb_read_count(&pblk->rwb);
+       unsigned int secs_to_flush = pblk_rb_flush_point_count(&pblk->rwb);
 
-       if (secs_avail >= pblk->min_write_pgs_data)
+       if (secs_avail >= pblk->min_write_pgs_data || secs_to_flush)
                pblk_write_kick(pblk);
 }
 
-- 
2.17.1

Reply via email to