From patchwork Fri May 18 07:49:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Overstreet X-Patchwork-Id: 10408407 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7A6BD60230 for ; Fri, 18 May 2018 07:50:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6EA0B2886A for ; Fri, 18 May 2018 07:50:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 631F728875; Fri, 18 May 2018 07:50:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 109AB2886A for ; Fri, 18 May 2018 07:50:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752489AbeERHu0 (ORCPT ); Fri, 18 May 2018 03:50:26 -0400 Received: from mail-qt0-f195.google.com ([209.85.216.195]:33519 "EHLO mail-qt0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752401AbeERHuY (ORCPT ); Fri, 18 May 2018 03:50:24 -0400 Received: by mail-qt0-f195.google.com with SMTP id e8-v6so9174641qth.0; Fri, 18 May 2018 00:50:23 -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; bh=11dP+D/hZf+IFz8QhU6bNK06HK6b7UAnxVh7tvZXCcE=; b=GUa3HRLmjrWfg/QggScmff7k4wxaS8hRHK0IUSWYeo+R8+MUhqBfiB2RG1wYjpmIJb 4kU6QG1p43SiebXRAMJypSdsEjLO77OzbdzwGFcRN1Dh4Ol0f8hDKo/qpxT5gin4UxmT uBdFKFV0b71+IGw8EyO+gudLzpk1ydXIhE9rFQis6FD9JPy93Dbi0Ig0LJXQYn0JQEU4 e4UFzaZg6tcGzNkAQconXlaABBEO9gBPT+oiLadlIabn7NfeAmycmyx7PfzgsIeQOkc8 ISV3rN9PSxfmGHSbOKBzcvqN1UpeOAQSx9vjyr7wDOL0Lvu6uyBHwAt6nsFs3qWP5lou nJIQ== 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; bh=11dP+D/hZf+IFz8QhU6bNK06HK6b7UAnxVh7tvZXCcE=; b=pKa0i14Zmbt2cisWZuHjHt/ZohLj1LlDlyCak7vthFrRaM11Frzpcd4uDbpB3oidnz nTjj5tImx69+w0YqFTLP8Tn2JkfNAfSQiusQrrPokUk54nW+Jer+9crgrif+KQfo/947 aB3ZYM8hGSKH3jUSmVcaaqEkP0Gn4f+FK8Q7QEGye5ge350Mxin6bB6APQgJqh5TE4yv xHGiOE03/7B/t+pnBkAWyUNbnFiRQGBL3+x+Sr/2Y1bmqKk9Yfk2behJ1x1CnJ3+19BU Dq+CXLVcfObc6ijjoO7HrZEndTBfJa1f2nagCG9OzOBg+rYUE5tBlaX++7xrJJDgECk1 N44Q== X-Gm-Message-State: ALKqPwcceZoNj7WYFEPgJuae+6jB10EHwzhjCQub6Jtxh5z4rcyPRYsE WITVQ5m6SXjp6g7OjF8pc+SBEWZr1g== X-Google-Smtp-Source: AB8JxZpYNRGQKPPTd4FsCgOxTjxc8Zcrr54MRY7JTZoU/e3JgsbxUrPGvC7wpW5/av/q0LCixwla2g== X-Received: by 2002:a0c:9e2c:: with SMTP id p44-v6mr4187830qve.97.1526629822786; Fri, 18 May 2018 00:50:22 -0700 (PDT) Received: from localhost.localdomain (c-71-234-172-214.hsd1.vt.comcast.net. [71.234.172.214]) by smtp.gmail.com with ESMTPSA id s64-v6sm5443004qkl.85.2018.05.18.00.50.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 May 2018 00:50:21 -0700 (PDT) From: Kent Overstreet To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Cc: Kent Overstreet , Andrew Morton , Dave Chinner , darrick.wong@oracle.com, tytso@mit.edu, linux-btrfs@vger.kernel.org, clm@fb.com, jbacik@fb.com, viro@zeniv.linux.org.uk, willy@infradead.org, peterz@infradead.org Subject: [PATCH 09/10] closures: closure_wait_event() Date: Fri, 18 May 2018 03:49:16 -0400 Message-Id: <20180518074918.13816-19-kent.overstreet@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180518074918.13816-1-kent.overstreet@gmail.com> References: <20180518074918.13816-1-kent.overstreet@gmail.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Kent Overstreet --- include/linux/closure.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/linux/closure.h b/include/linux/closure.h index 1072bf2c13..ef22d18f7c 100644 --- a/include/linux/closure.h +++ b/include/linux/closure.h @@ -375,4 +375,26 @@ static inline void closure_call(struct closure *cl, closure_fn fn, continue_at_nobarrier(cl, fn, wq); } +#define __closure_wait_event(waitlist, _cond) \ +do { \ + struct closure cl; \ + \ + closure_init_stack(&cl); \ + \ + while (1) { \ + closure_wait(waitlist, &cl); \ + if (_cond) \ + break; \ + closure_sync(&cl); \ + } \ + closure_wake_up(waitlist); \ + closure_sync(&cl); \ +} while (0) + +#define closure_wait_event(waitlist, _cond) \ +do { \ + if (!(_cond)) \ + __closure_wait_event(waitlist, _cond); \ +} while (0) + #endif /* _LINUX_CLOSURE_H */