Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3556645ybi; Mon, 10 Jun 2019 12:16:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqz+abTTy2Vw2Q6HVvsuVWGdL+r0py/gplvfhjL+/+7L1IpUcReRNaCVmjdfTSIOoVC0yjfs X-Received: by 2002:a65:60c2:: with SMTP id r2mr16652043pgv.156.1560194202005; Mon, 10 Jun 2019 12:16:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560194201; cv=none; d=google.com; s=arc-20160816; b=Ucv8qvJrxq886G55HvL3fNV11hhkRi0ndrFLemVZtHnIMcaX0UXzH9qrKNib0pew+4 HkL4n053S+5k94IYRDwyBf1QWtTkW4m5wuNaP6+VU2cWrmQ+eNX8MVrUbwMRoCeBiPUA uLLPOR8v+g8zQNTfn3kifpkeL8zZW3p8bWr/PlVtaqQ7gsD0o8RddLJ2yfdERkTdInHE rL0w+0MIg8H5+Me88wCp3EzvUu2CfgAXp/Qgi/b2coNMN3fg4Dmw7VKtyvPBVntVQpYy RAe4bbO6LC8J1mYvyrfXwHLMUt0bndCmkPuB9pBoPy3WcYTfUrOIuGGU4FJb6h/XGJvY YhZA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=M+OkbCIxuFLegTVpH06BqaBwHcYDWj2efUoxZ29HmLU=; b=xjz+nrXASwwtAlkEg1D0a1RM1+rLEJ5mHN253BQzVLmzAjCMrsmpIm/2ypK4qd+eIc psB3ZUjZVzsSYzNC3VDPJ+PdVV7aGsC0HT9HeK0azYB67QTU4tzStAGCn6JAX5eqw9/v ov3oiID7V5gHwAcgcAcfVQ6GIYvipEerBDS1xpdWrADkUOA8L1Ll/dhvcZrkqAssjzCl wr1UpsVBeF4jg13N6JqgetKDjDL6qYGx7GMNkt+Q8QmAkesE8nF9Z5H/daWpxYhtze8C oOgFjpGa7IaiW32cHSoS0z+7FXMP2zE6YhO743qs1XJmSFljcq+zaLn6FHy2XMp0LTl2 auVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=W1SjbKam; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v14si10858619pff.28.2019.06.10.12.16.27; Mon, 10 Jun 2019 12:16:41 -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=@gmail.com header.s=20161025 header.b=W1SjbKam; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389290AbfFJTOt (ORCPT + 99 others); Mon, 10 Jun 2019 15:14:49 -0400 Received: from mail-vs1-f68.google.com ([209.85.217.68]:34602 "EHLO mail-vs1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389353AbfFJTOq (ORCPT ); Mon, 10 Jun 2019 15:14:46 -0400 Received: by mail-vs1-f68.google.com with SMTP id q64so6227258vsd.1; Mon, 10 Jun 2019 12:14:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=M+OkbCIxuFLegTVpH06BqaBwHcYDWj2efUoxZ29HmLU=; b=W1SjbKamopitAaoclsyBsK7m8S7AzERGRKlTfb+yFZ3adAWG2rzZr2hfUwnov+P87B vw18tsCdYvV8bx6u1lOYDktyzZbiKLEcNhxpFOiq/u53g3rN9bLIAzGy83lfCqbLtR4B IsoDXAhb8whDoMpnKFF9Cp7dWDFsMWwJ6+dj354s5d5Bq118PwSWtaOPd5+JB4agqV8A lRXpFX+waaRVdsPbZJS9Hfvb8/kaYk0hNBGs/IRL/gL09al/thBKjIc7RGjYrKYrX8Sb f6phYca2bykOr7RMkMFIYQHOgnxR4RL9AidVs34lmo20OitiRtakSp113Fksx4pfd3sr +FpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=M+OkbCIxuFLegTVpH06BqaBwHcYDWj2efUoxZ29HmLU=; b=IswXtzt08rMYe6SHcgqsnOx5+r7v/f4jyrOV/kX/2EjTiEZzoGT6KbzJQmXo7u1YQW 3YLSgLoyqcld74iE4m1X3UT8ZJtKCofifnzawOjgF9/6lW9634/oqL6NIay7qcfQJQOe fkJwZSc8aCv5nbtQWBUKyOVuME4Nqtq4jsDTsxukKnWpn9lzdr5Xixfjqrataopohbyu gg6xccLQloXF0ymCLFyIz1h6M0H8HSvpfFS7C+mvuHQljCzmigUbo7JswAc+sn/BIInG FKzAVKQ6l8ax4dnUFACiN9R30/xNjQRZySGRNajXJTLhan9yEW8N4AKJBXpFuooWRFTW YLKg== X-Gm-Message-State: APjAAAUGRf2c/gwWBcldYX7AIBmPJrKm+gjytQr/oBcEjJztNOUC8vYV yLmk142iriVYP5jYk0Lviv0MdwG4ew== X-Received: by 2002:a67:f759:: with SMTP id w25mr18307516vso.235.1560194084934; Mon, 10 Jun 2019 12:14:44 -0700 (PDT) Received: from kmo-pixel.hsd1.vt.comcast.net (c-71-234-172-214.hsd1.vt.comcast.net. [71.234.172.214]) by smtp.gmail.com with ESMTPSA id t20sm4834014vkd.53.2019.06.10.12.14.43 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 12:14:44 -0700 (PDT) From: Kent Overstreet To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-bcache@vger.kernel.org Cc: Kent Overstreet Subject: [PATCH 12/12] closures: fix a race on wakeup from closure_sync Date: Mon, 10 Jun 2019 15:14:20 -0400 Message-Id: <20190610191420.27007-13-kent.overstreet@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610191420.27007-1-kent.overstreet@gmail.com> References: <20190610191420.27007-1-kent.overstreet@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Kent Overstreet --- lib/closure.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/closure.c b/lib/closure.c index 46cfe4c382..3e6366c262 100644 --- a/lib/closure.c +++ b/lib/closure.c @@ -104,8 +104,14 @@ struct closure_syncer { static void closure_sync_fn(struct closure *cl) { - cl->s->done = 1; - wake_up_process(cl->s->task); + struct closure_syncer *s = cl->s; + struct task_struct *p; + + rcu_read_lock(); + p = READ_ONCE(s->task); + s->done = 1; + wake_up_process(p); + rcu_read_unlock(); } void __sched __closure_sync(struct closure *cl) -- 2.20.1