From patchwork Tue Nov 9 02:34:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12609525 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F5C0C433FE for ; Tue, 9 Nov 2021 02:34:36 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 24BE461207 for ; Tue, 9 Nov 2021 02:34:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 24BE461207 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id BC22F6B00DC; Mon, 8 Nov 2021 21:34:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B4AC86B00DD; Mon, 8 Nov 2021 21:34:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 975D96B00DE; Mon, 8 Nov 2021 21:34:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0164.hostedemail.com [216.40.44.164]) by kanga.kvack.org (Postfix) with ESMTP id 7A8E56B00DC for ; Mon, 8 Nov 2021 21:34:35 -0500 (EST) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 4010F181BD7B9 for ; Tue, 9 Nov 2021 02:34:35 +0000 (UTC) X-FDA: 78787823310.03.7284366 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf13.hostedemail.com (Postfix) with ESMTP id 85F36104FEFC for ; Tue, 9 Nov 2021 02:34:24 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id E813F611CC; Tue, 9 Nov 2021 02:34:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1636425274; bh=WwFR3rIm6XQ1aH7yHt0Nz4PdUE3HDn+BQ9cj2W3mm28=; h=Date:From:To:Subject:In-Reply-To:From; b=WZFXDSooH0yKZfm4s79i0TUoTXyjCv1u9LQ/Pff+iJWmVORNk34LOItctTOMfwf24 x44HeDBJlilErmyqEReSpYbvuZrR3riSV12be2cUyn16Lg88zFPHid0quZNYuQzWTn 9emqYsKN6zZa6AuIq2joTvAUJ1Q60brC8m+OJbfE= Date: Mon, 08 Nov 2021 18:34:33 -0800 From: Andrew Morton To: akpm@linux-foundation.org, alex.shi@linux.alibaba.com, jaharkes@cs.cmu.edu, jing.yangyang@zte.com.cn, linux-mm@kvack.org, mm-commits@vger.kernel.org, tanxin.ctf@gmail.com, torvalds@linux-foundation.org, xiyuyang19@fudan.edu.cn, zealci@zte.com.cn Subject: [patch 58/87] coda: check for async upcall request using local state Message-ID: <20211109023433.ihghnWvdN%akpm@linux-foundation.org> In-Reply-To: <20211108183057.809e428e841088b657a975ec@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 85F36104FEFC X-Stat-Signature: haji14o3r54cohog5kui3osdtjehee4c Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=WZFXDSoo; spf=pass (imf13.hostedemail.com: domain of akpm@linux-foundation.org designates 198.145.29.99 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-HE-Tag: 1636425264-506845 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Jan Harkes Subject: coda: check for async upcall request using local state Originally flagged by Smatch because the code implicitly assumed outSize is not NULL for non-async upcalls because of a flag that was (not) set in req->uc_flags. However req->uc_flags field is in shared state and although the current code will not allow it to be changed before the async request check the code is more robust when it tests against the local outSize variable. Link: https://lkml.kernel.org/r/20210908140308.18491-3-jaharkes@cs.cmu.edu Signed-off-by: Jan Harkes Cc: Alex Shi Cc: Jing Yangyang Cc: Xin Tan Cc: Xiyu Yang Cc: Zeal Robot Signed-off-by: Andrew Morton --- fs/coda/upcall.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/fs/coda/upcall.c~coda-check-for-async-upcall-request-using-local-state +++ a/fs/coda/upcall.c @@ -744,7 +744,8 @@ static int coda_upcall(struct venus_comm list_add_tail(&req->uc_chain, &vcp->vc_pending); wake_up_interruptible(&vcp->vc_waitq); - if (req->uc_flags & CODA_REQ_ASYNC) { + /* We can return early on asynchronous requests */ + if (outSize == NULL) { mutex_unlock(&vcp->vc_mutex); return 0; }