From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4AD1C43461 for ; Mon, 14 Sep 2020 14:21:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 999F32074B for ; Mon, 14 Sep 2020 14:21:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600093274; bh=MaFMx5gO+2NKZffy8/3R82fJO4iXfuEe2l+wzPWVhs0=; h=From:To:Cc:Subject:Date:List-ID:From; b=jBDqwJT07wd+oDTF+ytlpZ/zs5oTROPd1LFkLp6FuoxsRG3hUHHLo1OBKFCsEjQFe JoROCPV6WrJ2nxG+7gdWn0I/kU+n4WamUOmUW+MFWzXGdJGHRWnFM/IFOB0/h1lC3u D0a/KZJpht1G5Ei0hAP7Zpb9cmkMJzK99dbo72Wc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726510AbgINOVM (ORCPT ); Mon, 14 Sep 2020 10:21:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:60274 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726558AbgINNHL (ORCPT ); Mon, 14 Sep 2020 09:07:11 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 05478221F0; Mon, 14 Sep 2020 13:05:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600088747; bh=MaFMx5gO+2NKZffy8/3R82fJO4iXfuEe2l+wzPWVhs0=; h=From:To:Cc:Subject:Date:From; b=tzTYVgXBDiO8MKd123+Zh/oFo4l6ieUYROTDA09HK/Ty4swEYbt8jdeAi5Adf5maN dTnWMXmZiOS26mLIdQTNTIqYDiapMoXwqo45LnU21bRXb+3YVX/dju3QaxvyFywr5f PGZExFnyXHpDwCKDpvT8UWA5ahwivvzuRCLqvmDQ= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Olga Kornievskaia , Trond Myklebust , Sasha Levin , linux-nfs@vger.kernel.org Subject: [PATCH AUTOSEL 4.9 01/10] NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall Date: Mon, 14 Sep 2020 09:05:36 -0400 Message-Id: <20200914130545.1805084-1-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Olga Kornievskaia [ Upstream commit 3d7a9520f0c3e6a68b6de8c5812fc8b6d7a52626 ] A client should be able to handle getting an ERR_DELAY error while doing a LOCK call to reclaim state due to delegation being recalled. This is a transient error that can happen due to server moving its volumes and invalidating its file location cache and upon reference to it during the LOCK call needing to do an expensive lookup (leading to an ERR_DELAY error on a PUTFH). Signed-off-by: Olga Kornievskaia Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin --- fs/nfs/nfs4proc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 714457bb1440a..4e2f18c26535d 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -6527,7 +6527,12 @@ int nfs4_lock_delegation_recall(struct file_lock *fl, struct nfs4_state *state, err = nfs4_set_lock_state(state, fl); if (err != 0) return err; - err = _nfs4_do_setlk(state, F_SETLK, fl, NFS_LOCK_NEW); + do { + err = _nfs4_do_setlk(state, F_SETLK, fl, NFS_LOCK_NEW); + if (err != -NFS4ERR_DELAY) + break; + ssleep(1); + } while (err == -NFS4ERR_DELAY); return nfs4_handle_delegation_recall_error(server, state, stateid, fl, err); } -- 2.25.1