lightnvm: pblk: warn in case of corrupted write buffer
authorJavier González <javier@javigon.com>
Fri, 1 Jun 2018 13:04:19 +0000 (15:04 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 1 Jun 2018 13:43:53 +0000 (07:43 -0600)
When cleaning up buffer entries as we wrap up, their state should be
"completed". If any of the entries is in "submitted" state, it means
that something bad has happened. Trigger a warning immediately instead of
waiting for the state flag to eventually be updated, thus hiding the
issue.

Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/lightnvm/pblk-rb.c

index 52fdd85dbc972ec95c21b053bb87a21138170443..58946ffebe81a61fa6e589de560263e2ae2dccb0 100644 (file)
@@ -142,10 +142,9 @@ static void clean_wctx(struct pblk_w_ctx *w_ctx)
 {
        int flags;
 
-try:
        flags = READ_ONCE(w_ctx->flags);
-       if (!(flags & PBLK_SUBMITTED_ENTRY))
-               goto try;
+       WARN_ONCE(!(flags & PBLK_SUBMITTED_ENTRY),
+                       "pblk: overwriting unsubmitted data\n");
 
        /* Release flags on context. Protect from writes and reads */
        smp_store_release(&w_ctx->flags, PBLK_WRITABLE_ENTRY);