Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp2760895ybh; Mon, 5 Aug 2019 06:25:52 -0700 (PDT) X-Google-Smtp-Source: APXvYqz/Rnobiiczv76YCJiP1zxHP+QHgtbnFaB7/Loif3iTcz3qEKBY+WPhrI3oku0Q3zQsM7Hp X-Received: by 2002:a17:902:7043:: with SMTP id h3mr118357991plt.10.1565011552052; Mon, 05 Aug 2019 06:25:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565011552; cv=none; d=google.com; s=arc-20160816; b=otZKJh/iX6izq4Pr1F7O5hZ+sYgwErumHmlbFz1zGRPP5LZ1W5DcDEe2JvLqRAcYxv 4IRAR+gYy2v8PFWpHxB8kRatkgZlU13faO/4nypKW9aa/vYckVeP9FVJw69sOGfI9TGy 2+0/mVCACxQkELosHPmtw2wFS9DHMJp1FWiebgqhLTIsGYTUeK/pqo+qM0eusT8aclze ke0maoWHUWADhO2ZN3Puycjb4o6beMcrFf/6wE61Q+uM+U6ql19W/+cTg/I/jhqI0wxT Q0ynCrBr3Ptsx5fEWh4uUQuLeRxPGLEStbx/6Ec8/LIFtN0Y77XtK5A32XSSFlryJYC2 FjSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Wf7to1qE7k426CfuTzCsopqfawtsTARRg2JjUA6K7ow=; b=LsvkR0pxlx6i0e7DTPn9QDhE0z0lCSlHZn9KDQ/Sw4oEzCn9LElseaAXgxlfaCQcSr WG9D0jJTs44ebr7nklwO7QVOP87B6gHdUE/wss2wQCzPO+OU7PltsavwO5y/fip7D1AQ D7KY0rhFiUWRS6Vm2Z9nRfIxhF758u5Z6vFkgncQcHbnFIjELBDi/CSFvOANXCARuGbt JwRqJNG5mknYukmP8msco8JMPN6NgkG9vIPnXiPN/ZffvTlknHmLM9sSxfzUB4mwo4z4 w0YfeYWRJfd3ytLeDYuNJJdp2zylG6QENp8NzNIv5cVPJ2Z+ZwizY/oESad8dTyaeQnr 7xkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JlL9ZlXk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h38si26014671pgi.327.2019.08.05.06.25.36; Mon, 05 Aug 2019 06:25:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JlL9ZlXk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731107AbfHENYz (ORCPT + 99 others); Mon, 5 Aug 2019 09:24:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:33366 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731094AbfHENYw (ORCPT ); Mon, 5 Aug 2019 09:24:52 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6E44420644; Mon, 5 Aug 2019 13:24:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565011491; bh=S0Xsl0T8+NAaR8iaxwLCK5CArJFaJjeMvLO7jaYnVA8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JlL9ZlXkybsQkAudLV1gOn/zz02Y6+h6QE/Ing4v6DTcIXktCb3sm2fWsjqkADeH/ h7ddvNKXjNx45eG9ZkDd2bPPN2bFXp4RDLs3edopfQe8koPWIUdGAKeWzkOAyNqVsv KPewA0llLGV8ge6aovc9g0Y1q5fzWgxUl6a/PSfI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jan Kara , Dan Williams Subject: [PATCH 5.2 081/131] dax: Fix missed wakeup in put_unlocked_entry() Date: Mon, 5 Aug 2019 15:02:48 +0200 Message-Id: <20190805124957.361969657@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190805124951.453337465@linuxfoundation.org> References: <20190805124951.453337465@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jan Kara commit 61c30c98ef17e5a330d7bb8494b78b3d6dffe9b8 upstream. The condition checking whether put_unlocked_entry() needs to wake up following waiter got broken by commit 23c84eb78375 ("dax: Fix missed wakeup with PMD faults"). We need to wake the waiter whenever the passed entry is valid (i.e., non-NULL and not special conflict entry). This could lead to processes never being woken up when waiting for entry lock. Fix the condition. Cc: Link: http://lore.kernel.org/r/20190729120228.GC17833@quack2.suse.cz Fixes: 23c84eb78375 ("dax: Fix missed wakeup with PMD faults") Signed-off-by: Jan Kara Signed-off-by: Dan Williams Signed-off-by: Greg Kroah-Hartman --- fs/dax.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/fs/dax.c +++ b/fs/dax.c @@ -267,7 +267,7 @@ static void wait_entry_unlocked(struct x static void put_unlocked_entry(struct xa_state *xas, void *entry) { /* If we were the only waiter woken, wake the next one */ - if (entry && dax_is_conflict(entry)) + if (entry && !dax_is_conflict(entry)) dax_wake_entry(xas, entry, false); }