Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1933000iob; Sun, 15 May 2022 03:07:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtfUQwq5gtCSTpskgS0syVX7JEqx3/j5zFWyjNMoTvO1W7QoToslWMd4PXp/cdfT2TO3mk X-Received: by 2002:a05:6402:3684:b0:42a:4fc2:644c with SMTP id ej4-20020a056402368400b0042a4fc2644cmr7659808edb.56.1652609227713; Sun, 15 May 2022 03:07:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652609227; cv=none; d=google.com; s=arc-20160816; b=EVCGTXZlYF5DUzzNPzE/HUeF5y0IhtRHMrlcDTgceZ2forj6wF/BhlrCURIfrSUnTI xWBTTnTEgrTTklLfKEs33uySeM26JwjKJymoGzNy45G2SNRLNAw3q+Ey/UVehcXsOKVe s7eJrDjCRynNeu4dVOYMEqfH1zvC0IRvuhFSls1DIwEVX2Etod4/Pfyra88SWRtliwmS 47Nxq0jhG5h7JNFQQoSWrvi+JpktierZ5XmW0G8biWoTcUu5LGdhTJLvO5TNru1t37Bc nr0Dytsp/LEX+TkG/SzrVMUTM/K6kBMjZuDwiqoxe2HzIj98vAooP1iaaWXtU67MbCdx POSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=uO62arHHKNBNsLBQ1SVWNoDzSt+KbsWhmzsHkQAspUY=; b=T+NTWfvMLEoY3mBBGqCBkHM4uZZq1MhtTa9ZwIYVf966fd45G7edPLHYVdIEHHphC9 2HNl9zr8BOGR6+/m2hCvut4FvCJUvnGtfHeAynPXmQf0YQaU4o9s7uN+KeaTtztwY3VC Po1IL5iUzY/caJgtEpGOPVipeeAGCDrS5stvVw8lPjm9ha8x5nDaqUiTfLNOATX7M7Sn s0ttneS5RvLqgWe5yYgkqSa8ZgFM/dGDc92GYucffYP2GWvIigCjMjjko4lwsUE85pE3 /h/0Y/XUhfvwvAYahgMAh0e1Et4v9k5QY3jK/P3uh+ZYKThZsKQNLuZPXwWB27+GJtPw FDjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ky0A1cbs; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hv8-20020a17090760c800b006fe054471a4si6549809ejc.512.2022.05.15.03.06.11; Sun, 15 May 2022 03:07:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ky0A1cbs; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232997AbiENOOb (ORCPT + 99 others); Sat, 14 May 2022 10:14:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50996 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233002AbiENOOZ (ORCPT ); Sat, 14 May 2022 10:14:25 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1CC61581D for ; Sat, 14 May 2022 07:14:24 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6E24760F16 for ; Sat, 14 May 2022 14:14:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89371C340EE; Sat, 14 May 2022 14:14:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652537663; bh=vYfJPBYCAjqilbHHrueSFEhX47JBAgIfuXTUg7hMCmk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ky0A1cbsxwvCgAWVa4AHUFz2iJY1s64HwzB3EMuGQr5zpFXZ4MbAdcCwcv1Emlce9 ZE5SH7Q93qHE5xo1mcpp4dqXxO2rfo9Sl/FSo7/RWcZc0h7DINJyj0gkFx1MfjuJHZ Fzb05TyTyt0AUzrcEPElJK2DCxj28EhzxpA+c8KiaM00uEF5cxO0oqrOzUKMjG/oPx Lj8PIzKh22Pku2TT161W/x2s4rkgF8SKl7T4+BQH3uy8qL9VGgx4OapRILVWyJqaXB 3JtZCQd/P+M2ZHm7/fAUHlkknP9vbL1xKAcXO47vvYoalD+4V/7yIdgBz0u733IUJD yaP2SgHqkKp1Q== From: trondmy@kernel.org To: Anna Schumaker Cc: linux-nfs@vger.kernel.org Subject: [PATCH 5/5] NFSv4: Don't hold the layoutget locks across multiple RPC calls Date: Sat, 14 May 2022 10:08:14 -0400 Message-Id: <20220514140814.3655-5-trondmy@kernel.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220514140814.3655-4-trondmy@kernel.org> References: <20220514140814.3655-1-trondmy@kernel.org> <20220514140814.3655-2-trondmy@kernel.org> <20220514140814.3655-3-trondmy@kernel.org> <20220514140814.3655-4-trondmy@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Trond Myklebust When doing layoutget as part of the open() compound, we have to be careful to release the layout locks before we can call any further RPC calls, such as setattr(). The reason is that those calls could trigger a recall, which could deadlock. Signed-off-by: Trond Myklebust --- fs/nfs/nfs4proc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index a79f66432bd3..bf3ba541b9fb 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -3098,6 +3098,10 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, } out: + if (opendata->lgp) { + nfs4_lgopen_release(opendata->lgp); + opendata->lgp = NULL; + } if (!opendata->cancelled) nfs4_sequence_free_slot(&opendata->o_res.seq_res); return ret; -- 2.36.1