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 35353C433E2 for ; Mon, 14 Sep 2020 13:26:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ED2D6207BB for ; Mon, 14 Sep 2020 13:26:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600089998; bh=PcFS4xgIDtvvf/g6pRLbif+U5fD1idhTuM9rUr1LFgc=; h=From:To:Cc:Subject:Date:List-ID:From; b=aNVmQwQMTWr8Hb+Q2GuD3tPGVLkG0OvAB++8WbsBeep38DZRIHXLJsNVYQqs0Fulv 4cwSrmL+vdiCj7rQ1CFbG4tSYW9fn4KcfGreIakPmGe0ik9L5fgiatBpfF1sXpk5Ps ZU+VQA23kAdIkzE50QYdWS9VxtTXSv/HpLt0LP1s= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726163AbgINN0Y (ORCPT ); Mon, 14 Sep 2020 09:26:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:60294 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726703AbgINNHO (ORCPT ); Mon, 14 Sep 2020 09:07:14 -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 451272223C; Mon, 14 Sep 2020 13:06:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600088760; bh=PcFS4xgIDtvvf/g6pRLbif+U5fD1idhTuM9rUr1LFgc=; h=From:To:Cc:Subject:Date:From; b=K9OVUHcaVagO6a3vpUCu9ksq90VdHBi1/FLDrx8Ee9D7FgJYltyhJjaP6KqtN+eHf 5aVOHQpAPJ5/mYqV954hoFgBUnqTrQA2QtG/UmM3oz8EnMpkuKxn2OVTex5iK4TGpP he7WLNzlx2iRfOe87IQUdLJeb+3ZeGpsYSGBpDxY= 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.4 1/8] NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall Date: Mon, 14 Sep 2020 09:05:51 -0400 Message-Id: <20200914130559.1805574-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 ca1702cefb852..64d15c2662db6 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -6171,7 +6171,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