From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755355AbcBCIx4 (ORCPT ); Wed, 3 Feb 2016 03:53:56 -0500 Received: from mail-wm0-f51.google.com ([74.125.82.51]:33324 "EHLO mail-wm0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754467AbcBCIxy (ORCPT ); Wed, 3 Feb 2016 03:53:54 -0500 Subject: Re: [PATCH 2/2] lightnvm: fix request intersection locking in rrpc To: =?UTF-8?Q?Javier_Gonz=c3=a1lez?= References: <1454322873-28687-1-git-send-email-javier@javigon.com> <1454322873-28687-2-git-send-email-javier@javigon.com> Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, =?UTF-8?Q?Javier_Gonz=c3=a1lez?= From: =?UTF-8?Q?Matias_Bj=c3=b8rling?= Message-ID: <56B1C01F.9000001@lightnvm.io> Date: Wed, 3 Feb 2016 09:53:51 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1454322873-28687-2-git-send-email-javier@javigon.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/01/2016 11:34 AM, Javier González wrote: > This patch fixes an error on the calculation of intersecting logical > addresses; it contemplates the case where a new request including > several addresses intersects with a single locked address. This case is > typical when multiple pages are sent in a new request, while GC - which > at the moment sends one address at the time - is running. > > Signed-off-by: Javier González > --- > drivers/lightnvm/rrpc.h | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/lightnvm/rrpc.h b/drivers/lightnvm/rrpc.h > index c27283a..3989d65 100644 > --- a/drivers/lightnvm/rrpc.h > +++ b/drivers/lightnvm/rrpc.h > @@ -174,8 +174,7 @@ static inline sector_t rrpc_get_sector(sector_t laddr) > static inline int request_intersects(struct rrpc_inflight_rq *r, > sector_t laddr_start, sector_t laddr_end) > { > - return (laddr_end >= r->l_start && laddr_end <= r->l_end) && > - (laddr_start >= r->l_start && laddr_start <= r->l_end); > + return (laddr_end >= r->l_start) && (laddr_start <= r->l_end); > } > > static int __rrpc_lock_laddr(struct rrpc *rrpc, sector_t laddr, > Thanks, applied for next -rc.