]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
lightnvm: pblk: warn in case of corrupted write buffer
authorJavier González <javier@cnexlabs.com>
Fri, 1 Jun 2018 13:04:19 +0000 (15:04 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 1 Mar 2019 13:20:32 +0000 (14:20 +0100)
BugLink: http://bugs.launchpad.net/bugs/1815234
[ Upstream commit e37d07983af9068de0303054542d2652ca917f58 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/lightnvm/pblk-rb.c

index b8f78e40148239ef6b2cc8083ef8f6d988fd92e0..2ee71d9205126c7271598a96dfd30b505a31ff9d 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);