public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
From: Igor Konopko <igor.j.konopko@intel.com>
To: mb@lightnvm.io, javier@javigon.com, hans.holmberg@cnexlabs.com
Cc: linux-block@vger.kernel.org, igor.j.konopko@intel.com
Subject: [PATCH 01/13] lightnvm: pblk: Line reference fix in GC
Date: Wed, 27 Feb 2019 18:14:30 +0100	[thread overview]
Message-ID: <20190227171442.11853-2-igor.j.konopko@intel.com> (raw)
In-Reply-To: <20190227171442.11853-1-igor.j.konopko@intel.com>

This patch fixes the error case in GC when
we both moves line back to closed state and
release additional reference, what cause illegal
transition from closed to free on pblk_line_put
when only gc to free line state transition is
allowed using that path.

Signed-off-by: Igor Konopko <igor.j.konopko@intel.com>
---
 drivers/lightnvm/pblk-gc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/lightnvm/pblk-gc.c b/drivers/lightnvm/pblk-gc.c
index 2fa118c8eb71..3feadfd9418d 100644
--- a/drivers/lightnvm/pblk-gc.c
+++ b/drivers/lightnvm/pblk-gc.c
@@ -290,8 +290,11 @@ static void pblk_gc_line_prepare_ws(struct work_struct *work)
 fail_free_ws:
 	kfree(line_ws);
 
+	/* Line goes back to closed state, so we cannot release additional
+	 * reference for line, since we do that only when we want to do
+	 * gc to free line state transition.
+	 */
 	pblk_put_line_back(pblk, line);
-	kref_put(&line->ref, pblk_line_put);
 	atomic_dec(&gc->read_inflight_gc);
 
 	pblk_err(pblk, "failed to GC line %d\n", line->id);
-- 
2.17.1


  reply	other threads:[~2019-02-27 17:17 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-27 17:14 [PATCH 00/13] lightnvm: bugfixes and improvements Igor Konopko
2019-02-27 17:14 ` Igor Konopko [this message]
2019-03-01 12:20   ` [PATCH 01/13] lightnvm: pblk: Line reference fix in GC Hans Holmberg
2019-03-04  7:18   ` Javier González
2019-03-04 12:40   ` Matias Bjørling
2019-02-27 17:14 ` [PATCH 02/13] lightnvm: pblk: Gracefully handle GC data malloc fail Igor Konopko
2019-02-28 17:08   ` Javier González
2019-03-01 12:50     ` Hans Holmberg
2019-03-04 12:38       ` Igor Konopko
2019-02-27 17:14 ` [PATCH 03/13] lightnvm: pblk: Fix put line back behaviour Igor Konopko
2019-03-01 13:27   ` Hans Holmberg
2019-03-04  7:22   ` Javier González
2019-02-27 17:14 ` [PATCH 04/13] lightnvm: pblk: Rollback in gc read Igor Konopko
2019-03-04  7:38   ` Javier González
2019-03-04  8:44     ` Hans Holmberg
2019-03-04 12:39       ` Igor Konopko
2019-03-04 12:42         ` Hans Holmberg
2019-03-04 12:49   ` Matias Bjørling
2019-02-27 17:14 ` [PATCH 05/13] lightnvm: pblk: Count all read errors in stats Igor Konopko
2019-03-04  7:42   ` Javier González
2019-03-04  9:02     ` Hans Holmberg
2019-03-04  9:23       ` Javier González
2019-03-04 11:41         ` Hans Holmberg
2019-03-04 11:45           ` Javier González
2019-03-04 12:42             ` Igor Konopko
2019-03-04 12:48               ` Hans Holmberg
2019-02-27 17:14 ` [PATCH 06/13] lightnvm: pblk: Ensure that erase is chunk aligned Igor Konopko
2019-03-04  7:48   ` Javier González
2019-03-04  9:05     ` Hans Holmberg
2019-03-04  9:11       ` Javier González
2019-03-04 11:43         ` Hans Holmberg
2019-03-04 12:44           ` Igor Konopko
2019-03-04 12:57             ` Hans Holmberg
2019-03-04 13:00             ` Matias Bjørling
2019-03-05  8:20               ` Hans Holmberg
2019-03-05  8:26                 ` Igor Konopko
2019-03-05  8:40                   ` Hans Holmberg
     [not found]                     ` <61b7e62a-d229-95b1-2572-336ab1bd67cb@intel.com>
2019-03-05  8:55                       ` Hans Holmberg
2019-02-27 17:14 ` [PATCH 07/13] lightnvm: pblk: Cleanly fail when there is not enough memory Igor Konopko
2019-03-04  7:53   ` Javier González
2019-03-04  9:24     ` Hans Holmberg
2019-03-04 12:46       ` Igor Konopko
2019-02-27 17:14 ` [PATCH 08/13] lightnvm: pblk: Set proper read stutus in bio Igor Konopko
2019-03-04  8:03   ` Javier González
2019-03-04  9:35     ` Hans Holmberg
2019-03-04  9:48       ` Javier González
2019-03-04 12:14         ` Hans Holmberg
2019-03-04 12:51           ` Igor Konopko
2019-03-04 13:08             ` Matias Bjørling
2019-03-04 13:45               ` Javier González
2019-03-04 15:12                 ` Matias Bjørling
2019-03-05  6:43                   ` Javier González
2019-03-04 13:04         ` Matias Bjørling
2019-03-04 13:21           ` Javier González
2019-02-27 17:14 ` [PATCH 09/13] lightnvm: pblk: Kick writer for flush requests Igor Konopko
2019-03-04  8:08   ` Javier González
2019-03-04  9:39     ` Hans Holmberg
2019-03-04 12:52       ` Igor Konopko
2019-02-27 17:14 ` [PATCH 10/13] lightnvm: pblk: Reduce L2P DRAM footprint Igor Konopko
2019-03-04  8:17   ` Javier González
2019-03-04  9:29     ` Hans Holmberg
2019-03-04 13:11   ` Matias Bjørling
2019-02-27 17:14 ` [PATCH 11/13] lightnvm: pblk: Remove unused smeta_ssec field Igor Konopko
2019-03-04  8:21   ` Javier González
2019-03-04  9:40     ` Hans Holmberg
2019-02-27 17:14 ` [PATCH 12/13] lightnvm: pblk: close opened chunks Igor Konopko
2019-03-04  8:27   ` Javier González
2019-03-04 10:05     ` Hans Holmberg
2019-03-04 12:56       ` Igor Konopko
2019-03-04 13:03         ` Hans Holmberg
2019-03-04 13:19       ` Matias Bjørling
2019-03-04 13:48         ` Javier González
2019-03-04 13:18     ` Matias Bjørling
2019-03-04 13:47       ` Javier González
2019-02-27 17:14 ` [PATCH 13/13] lightnvm: Inherit mdts from the parent nvme device Igor Konopko
2019-03-04  9:05   ` Javier González
2019-03-04 11:30     ` Hans Holmberg
2019-03-04 11:44       ` Javier González
2019-03-04 12:22         ` Hans Holmberg
2019-03-04 13:04           ` Igor Konopko
2019-03-04 13:16             ` Hans Holmberg
2019-03-04 14:06             ` Javier González
2019-03-04 13:19           ` Javier González
2019-03-04 13:25             ` Matias Bjørling
2019-03-04 13:44               ` Javier González
2019-03-04 14:24                 ` Hans Holmberg
2019-03-04 14:27                   ` Javier González
2019-03-04 14:58                 ` Matias Bjørling
2019-02-28 16:36 ` [PATCH 00/13] lightnvm: bugfixes and improvements Matias Bjørling
2019-02-28 17:15   ` Javier González
2019-03-01 10:23   ` Hans Holmberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190227171442.11853-2-igor.j.konopko@intel.com \
    --to=igor.j.konopko@intel.com \
    --cc=hans.holmberg@cnexlabs.com \
    --cc=javier@javigon.com \
    --cc=linux-block@vger.kernel.org \
    --cc=mb@lightnvm.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox