From patchwork Wed Feb 10 15:12:33 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?UTF-8?q?Javier=20Gonz=C3=A1lez?= X-Patchwork-Id: 8272731 Return-Path: X-Original-To: patchwork-linux-block@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id B9D4BBEEE5 for ; Wed, 10 Feb 2016 15:18:13 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C9F9F20154 for ; Wed, 10 Feb 2016 15:18:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EB4F0203B7 for ; Wed, 10 Feb 2016 15:18:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752847AbcBJPSF (ORCPT ); Wed, 10 Feb 2016 10:18:05 -0500 Received: from mail-wm0-f53.google.com ([74.125.82.53]:36024 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752845AbcBJPNA (ORCPT ); Wed, 10 Feb 2016 10:13:00 -0500 Received: by mail-wm0-f53.google.com with SMTP id p63so33162327wmp.1 for ; Wed, 10 Feb 2016 07:12:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lightnvm-io.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; bh=Bn5WGaacFTmqA9GnVQyNtbINAsHe41LVm0anGaD1OTc=; b=RAOjkeXcKA9f4UR84VOdTopvBe8NlFcziggEddow8tGbWQbTdj92peNyow4wI4RJZL YSq7i7Dg1s2D90wHQmmRG2hwlgRrqTdSdfsYWx2Pw3chK+HUul3Jb0sfDYW3ydxP7+lj tQXrg4+uGXcTrESArhuJ2Lm4fVvrn1G9Lr1dNKqYNdYR5HU7Ao36jDtpVBPeFASfjgq7 qnQIECL3cAIFnRgTk7bVGRThFsV2aOGBwZnXUOjUg/IDbCQ2YfLOmFb81u3NS/rZoMgq qXMCfGisv976Yqh3Sulx5kp8ImRB5jdNbC0I9YiDSsI+MkvjBHQaKXFgscN/tnPiqMku r/Tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-type:content-transfer-encoding; bh=Bn5WGaacFTmqA9GnVQyNtbINAsHe41LVm0anGaD1OTc=; b=b4VSpHu7oFsFi57592+Cqg/aBPYZHR4KsIFGWDc7PrjmXpiNfULncLMmA9oqp9AxSN ZX1xmm6lAayEgRXFWrrcMUJzMyzDmL/CxBaK5+I9t6EvpJfo3RsXdes9+bQwAt3GR9Jq LUei740LKFTi2HIga8vPvBv8e9DUFKzXPYQputVbHWzOH4D40ili7NzwblLLVLT2B/Mr cwegz6Oyd9/wZ6FbC34hdbnUHn7X7x+4mI7bV7Dzax0LXxSLFY0TYl1irkvbvcNJCC7g gbtNVC+N+rrzOlYqwnDtJQpzwUxRHJNaaeAEsKB94Ry9uqqftTP5BMJ2yuZiMB2U95lD 4SOw== X-Gm-Message-State: AG10YOSCpdsZ3niILJu2uZs/Vzn8sDR1du/bz+3t2vOIVAWIZ3gZ311vuerd5BjWr7DVHQ== X-Received: by 10.194.61.42 with SMTP id m10mr2094220wjr.126.1455117178916; Wed, 10 Feb 2016 07:12:58 -0800 (PST) Received: from localhost.localdomain (6164198-cl69.boa.fiberby.dk. [193.106.164.198]) by smtp.gmail.com with ESMTPSA id z127sm22802048wme.2.2016.02.10.07.12.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 10 Feb 2016 07:12:58 -0800 (PST) From: "=?UTF-8?q?Javier=20Gonz=C3=A1lez?=" X-Google-Original-From: =?UTF-8?q?Javier=20Gonz=C3=A1lez?= To: mb@lightnvm.io Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, =?UTF-8?q?Javier=20Gonz=C3=A1lez?= Subject: [PATCH] lightnvm: calc right rblk when having several luns Date: Wed, 10 Feb 2016 16:12:33 +0100 Message-Id: <1455117153-32356-1-git-send-email-javier@javigon.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When getting a new block from the media manager, calculate the right rblk, considering that the pool of flash blocks has been divided among the different luns exposed by the underlying device. Signed-off-by: Javier González --- drivers/lightnvm/rrpc.c | 2 +- drivers/lightnvm/rrpc.h | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c index c2f9a64..d8416ad 100644 --- a/drivers/lightnvm/rrpc.c +++ b/drivers/lightnvm/rrpc.c @@ -191,7 +191,7 @@ static struct rrpc_block *rrpc_get_blk(struct rrpc *rrpc, struct rrpc_lun *rlun, return NULL; } - rblk = &rlun->blocks[blk->id]; + rblk = rrpc_get_rblk(rlun, blk->id); list_add_tail(&rblk->list, &rlun->open_list); spin_unlock(&lun->lock); diff --git a/drivers/lightnvm/rrpc.h b/drivers/lightnvm/rrpc.h index 1c4b1c9..8bcb827 100644 --- a/drivers/lightnvm/rrpc.h +++ b/drivers/lightnvm/rrpc.h @@ -157,6 +157,15 @@ struct rrpc_rev_addr { u64 addr; }; +static inline struct rrpc_block *rrpc_get_rblk(struct rrpc_lun *rlun, + int blk_id) +{ + struct rrpc *rrpc = rlun->rrpc; + int blk_pos = blk_id % rrpc->dev->blks_per_lun; + + return &rlun->blocks[blk_pos]; +} + static inline sector_t rrpc_get_laddr(struct bio *bio) { return bio->bi_iter.bi_sector / NR_PHY_IN_LOG;