From patchwork Tue Mar 25 22:35:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 14029596 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00AC81E1E05 for ; Tue, 25 Mar 2025 22:35:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942126; cv=none; b=Hcb+/ValJDcZ0WetMFfzImJzO/2FHiM1ZDvHb3pGMka4u7IJ6V0sIdlGblj7SvcaLO9jpFt6eI3m0dDSTVS30QEDbW5vLYZuHEUOvSAeNNQhU+jybOsbzsaIX0uPjqOeSAAxmNdWg7wk7eg/ggVEiVFVJ8sUCtUhnqb5Cv/ONKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942126; c=relaxed/simple; bh=CjAnADVijneURKzvaV/8cqXD7scFAqxWZDcIdaeMq8I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nXQd58Ak6tVSu03tkHZOrlMD0lUlckM+BP9s6hOpuaXCTrJhuu5x74UO3eczg+e+4WKdx0sB2C5mQ5C/3uibzLNs3jPgRqLmX/+anSqQQNujUS6xFI04xD2tJIn/zgq+SyDSn3uNWgWRpB28/g7ww30S2NQLZqFHsoHjAelUwII= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qzUR1U+R; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qzUR1U+R" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15DDBC4CEE9; Tue, 25 Mar 2025 22:35:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742942125; bh=CjAnADVijneURKzvaV/8cqXD7scFAqxWZDcIdaeMq8I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qzUR1U+RiPmIY8I8eSj81cdyrZZBn9DqMPDtHROoFVPzleGT9BIwrE5s1kSBRiQ9L gjY2jJcHfhslFca8eRCwGTScZ/pXSiO6pOSIm4aKj90hRvACsDCLEsvtm+JVd9PsQg erSTNcxecLv4/LyDNlUYrOzo6nHJpwnG1D4Ksmw6Pa00eo3l87hO7q/wMor+c0CZDw 8f9taE0PJbGvwQTa9vBZdkF9a9vPCMAhwBshyjyt3YFMqrX+xd73ooJGC6o6dMzgxa k93b2aiv9tJnCiZu5sVVWBv9ZoN2jeM5TS0EIZ7A4iQU09+W44qZx45BOetiL+bMM3 xo5zJqvu8q1RQ== From: trondmy@kernel.org To: linux-nfs@vger.kernel.org Cc: Jeff Layton , Josef Bacik , Benjamin Coddington Subject: [PATCH v3 1/6] SUNRPC: rpcbind should never reset the port to the value '0' Date: Tue, 25 Mar 2025 18:35:18 -0400 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Trond Myklebust If we already had a valid port number for the RPC service, then we should not allow the rpcbind client to set it to the invalid value '0'. Reviewed-by: Jeff Layton Signed-off-by: Trond Myklebust Reviewed-by: Benjamin Coddington --- net/sunrpc/rpcb_clnt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c index 102c3818bc54..53bcca365fb1 100644 --- a/net/sunrpc/rpcb_clnt.c +++ b/net/sunrpc/rpcb_clnt.c @@ -820,9 +820,10 @@ static void rpcb_getport_done(struct rpc_task *child, void *data) } trace_rpcb_setport(child, map->r_status, map->r_port); - xprt->ops->set_port(xprt, map->r_port); - if (map->r_port) + if (map->r_port) { + xprt->ops->set_port(xprt, map->r_port); xprt_set_bound(xprt); + } } /* From patchwork Tue Mar 25 22:35:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 14029597 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D8061E1E05 for ; Tue, 25 Mar 2025 22:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942126; cv=none; b=B8ecbA+ilfJmFbDp5oChY0/+4slhLYjisKJV575q4htWfTak4ufuXjsdEWkXcXDnCF3h+iD92vTMdqZ/PZlNvjiJfih3kQsv+MRrgfW79qvUCtwfAzFnMJ2/hMrzgMR5eqBERVdddxwE95plYz8p1cbBb5a/FqKUS64FBweo/Jc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942126; c=relaxed/simple; bh=x28c1yNiQSY65vGx4rWToBi/wcjI2jTFpWStBC4tzwM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UJ4Tn+w1qcEgiWj1I6DPx7e/LtDVVCgG0CwATQ32LHpBhs8ix7NwXYKL8MYQjI+YWOAef5Gej6G4U8icDXrfjQ48l9BjVq8zgXKeWPiLdGWZ64NLiwwtQY/jubTujXSVEm13ZA17hzafnCKvI/K8hKFb3DY5Rx00y2KPUb2hrfE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mVH7pGKI; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mVH7pGKI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AEA2FC4CEE4; Tue, 25 Mar 2025 22:35:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742942126; bh=x28c1yNiQSY65vGx4rWToBi/wcjI2jTFpWStBC4tzwM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mVH7pGKI8tAV0/sHzoD/NxAo87kUB61Ap2E4xucHKH7HDF8Ysf9cSRtyAhVJdYQWM 2/+GWA+WsxjewdICSZxQW1DN/hbbYOEcpTxkGIUHqohma6GEBdtUnovpHvZl5/1can /PBPq6hFhWG+pBj+1DcESnrzLKl+5ru01ctofYHIUHPFX3Jh/m9XW7pS+Z7pUlqYO1 ACDfT6y79/vX6KQlDvpcoyfNyL/82QpTKsk3zZWsKMKhA7aZlMvOuJGlcWw2t38nn2 yLTsnZAbu0THIBKWotl9NHL4RU1yWlM04O4+4AZlWvU5z3nRNlqteORmbKlPnymYNl UEhcq4bF3sK3Q== From: trondmy@kernel.org To: linux-nfs@vger.kernel.org Cc: Jeff Layton , Josef Bacik , Benjamin Coddington Subject: [PATCH v3 2/6] SUNRPC: rpc_clnt_set_transport() must not change the autobind setting Date: Tue, 25 Mar 2025 18:35:19 -0400 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Trond Myklebust The autobind setting was supposed to be determined in rpc_create(), since commit c2866763b402 ("SUNRPC: use sockaddr + size when creating remote transport endpoints"). Reviewed-by: Jeff Layton Signed-off-by: Trond Myklebust Reviewed-by: Benjamin Coddington --- net/sunrpc/clnt.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 1cfaf93ceec1..6f75862d9782 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -270,9 +270,6 @@ static struct rpc_xprt *rpc_clnt_set_transport(struct rpc_clnt *clnt, old = rcu_dereference_protected(clnt->cl_xprt, lockdep_is_held(&clnt->cl_lock)); - if (!xprt_bound(xprt)) - clnt->cl_autobind = 1; - clnt->cl_timeout = timeout; rcu_assign_pointer(clnt->cl_xprt, xprt); spin_unlock(&clnt->cl_lock); From patchwork Tue Mar 25 22:35:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 14029598 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4264B1E1E05 for ; Tue, 25 Mar 2025 22:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942127; cv=none; b=fornh6LGw6KpAfV3s6S1ZsL7hI5o2tpVwjV4l3Zcep1klLIRv+ZC/MWG9aav4bpeKOevANIH0V+zNdXz5dP07JsVx3LaEwQ/S5et8Q42upR98fOWi96HsVICjnWJWMArin3kCOb2VooDt6FfAxt9cbDn8mxb0QZFhLqJlGYBduE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942127; c=relaxed/simple; bh=K7QEDIqXlGyjS1hIhlW1Y9CwsIMrcCHqp6+rAQeHiUQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SmrBMws1rrVUllo7Abr5INu/4J/eaZZOnEcE3bNdv/wxmHjokwessRGxMDCrxAFOW4NT3bzH9o9MCWuxjbzlvpdui8wHBN2JUsYHvcVsgG0zlMRgaDQGYGmcMjGE/21kpsXbsGvJhS7qKfo8zHPtKCJ+0jL2vV5tD8qZq8nBUQY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dL+CWGBh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dL+CWGBh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53D0BC4CEEE; Tue, 25 Mar 2025 22:35:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742942126; bh=K7QEDIqXlGyjS1hIhlW1Y9CwsIMrcCHqp6+rAQeHiUQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dL+CWGBh1FeYs9kLP5+2p3/fsBIDhUmXDY+MWwcgph7vFkZT/blvxyiJ3gwPjbFy7 9GnfPHGw5JuWurZAeqIYKfplfNpToEzqRs5CRsQ+Yt9qxRntpE2j/PtVw0dB3YdbKO zh1j3cfWpH/g2zo4DEX6X9munEzU4fDHfdMm2GOIs/OJB2fIz7Qt1oLI5n3rEN0ClV HEqpY1ol74dvEcl0uZ5p/6eBSJJXLbjglqpa16/nHkQjX/iqs/TQoFRSwWY8Nru6gk m0ugnrWJk7XgWx5TPmLt15WtomW41cDLFQJThFmbHwOlCPvNg54pftpagDr4ny4EKT iUaZmSZ2zY5ww== From: trondmy@kernel.org To: linux-nfs@vger.kernel.org Cc: Jeff Layton , Josef Bacik , Benjamin Coddington Subject: [PATCH v3 3/6] NFS: Shut down the nfs_client only after all the superblocks Date: Tue, 25 Mar 2025 18:35:20 -0400 Message-ID: <1cefd7cbadf0eaec5bae66e0870cdb89c7120070.1742941932.git.trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Trond Myklebust The nfs_client manages state for all the superblocks in the "cl_superblocks" list, so it must not be shut down until all of them are gone. Fixes: 7d3e26a054c8 ("NFS: Cancel all existing RPC tasks when shutdown") Signed-off-by: Trond Myklebust Reviewed-by: Benjamin Coddington --- fs/nfs/sysfs.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/fs/nfs/sysfs.c b/fs/nfs/sysfs.c index b30401b2c939..37cb2b776435 100644 --- a/fs/nfs/sysfs.c +++ b/fs/nfs/sysfs.c @@ -14,6 +14,7 @@ #include #include +#include "internal.h" #include "nfs4_fs.h" #include "netns.h" #include "sysfs.h" @@ -228,6 +229,25 @@ static void shutdown_client(struct rpc_clnt *clnt) rpc_cancel_tasks(clnt, -EIO, shutdown_match_client, NULL); } +/* + * Shut down the nfs_client only once all the superblocks + * have been shut down. + */ +static void shutdown_nfs_client(struct nfs_client *clp) +{ + struct nfs_server *server; + rcu_read_lock(); + list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) { + if (!(server->flags & NFS_MOUNT_SHUTDOWN)) { + rcu_read_unlock(); + return; + } + } + rcu_read_unlock(); + nfs_mark_client_ready(clp, -EIO); + shutdown_client(clp->cl_rpcclient); +} + static ssize_t shutdown_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) @@ -259,7 +279,6 @@ shutdown_store(struct kobject *kobj, struct kobj_attribute *attr, server->flags |= NFS_MOUNT_SHUTDOWN; shutdown_client(server->client); - shutdown_client(server->nfs_client->cl_rpcclient); if (!IS_ERR(server->client_acl)) shutdown_client(server->client_acl); @@ -267,6 +286,7 @@ shutdown_store(struct kobject *kobj, struct kobj_attribute *attr, if (server->nlm_host) shutdown_client(server->nlm_host->h_rpcclnt); out: + shutdown_nfs_client(server->nfs_client); return count; } From patchwork Tue Mar 25 22:35:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 14029599 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E22251E1E05 for ; Tue, 25 Mar 2025 22:35:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942128; cv=none; b=oX6k3pozeOrGubq26o5coz7qsY8ICqPfZgD4nrkQTB2kunMAYN8LKQ5fyGxuI9O7kRbpRgmUgx80mVGEuKHSyZJWGXbv1Yj2W5yK/IJC6G2U1/mg4D1k782lgw5NeMLNZPTTuyxHxGJ0SALsve9CeWiucIyYYDAFJjpEK//ZnFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942128; c=relaxed/simple; bh=DcyQHC8NeXigx8LMQEI0+AqnIAX0ogTR8+S7SIXGt3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ocON7nlBqBnpkFMHMPfeF+C9jU0X0VTo759zYp75etBD61Qj4OMfolyP0Em5lgfxrMfjpaVnrJPLd8gEOoh4nZw2XkuuesSmlXGpTCv7cmlVf9ysPkzuh9SyfwcCJ40ghWEWw/s520zqAIGBRjxnUjdfmFGB5oxAjT/g56nrIus= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QwocNj84; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QwocNj84" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC3A6C4CEE9; Tue, 25 Mar 2025 22:35:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742942127; bh=DcyQHC8NeXigx8LMQEI0+AqnIAX0ogTR8+S7SIXGt3Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QwocNj84U0h7tp7kxY1yTSR60t5qO5BH/A7HxA//1GCi+Ik8hnDPWl1+SY2Gnhhk2 jD76bogWbm+n8OePm1dgljJ9mr8Fpw358CXimAuRkOnEp2aqf7Q6fdQ9yI6uzvgBF4 JJpxNDo0pKpw8mMma/As7Z9u5BgBy09Sye5IcVq3sAK4DZ2a+wNWFovY8wtVQvbIcJ I36spt6nP1x6CQ26SUq4irn2OaqzKJTuR6c7UV690LeU5M9kCNahJsEFYhRJHKlH10 MOgeTwkwDgQ1joA5CmeUT1Aw360qh8k2kvjzGneb3yeZGtDi4KWxpQjFBCjS6bLZ6n XNIAqz4Sr+0DQ== From: trondmy@kernel.org To: linux-nfs@vger.kernel.org Cc: Jeff Layton , Josef Bacik , Benjamin Coddington Subject: [PATCH v3 4/6] NFSv4: Further cleanups to shutdown loops Date: Tue, 25 Mar 2025 18:35:21 -0400 Message-ID: <668e25098cb97187d084d5fa2916ddd4d2a68e00.1742941932.git.trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Trond Myklebust Replace the tests for the RPC client being shut down with tests for whether the nfs_client is in an error state. Signed-off-by: Trond Myklebust Reviewed-by: Jeff Layton Reviewed-by: Benjamin Coddington --- fs/nfs/nfs4proc.c | 2 +- fs/nfs/nfs4state.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 889511650ceb..50be54e0f578 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -9580,7 +9580,7 @@ static void nfs41_sequence_call_done(struct rpc_task *task, void *data) return; trace_nfs4_sequence(clp, task->tk_status); - if (task->tk_status < 0 && !task->tk_client->cl_shutdown) { + if (task->tk_status < 0 && clp->cl_cons_state >= 0) { dprintk("%s ERROR %d\n", __func__, task->tk_status); if (refcount_read(&clp->cl_count) == 1) return; diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 542cdf71229f..f1f7eaa97973 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -1198,7 +1198,7 @@ void nfs4_schedule_state_manager(struct nfs_client *clp) struct rpc_clnt *clnt = clp->cl_rpcclient; bool swapon = false; - if (clnt->cl_shutdown) + if (clp->cl_cons_state < 0) return; set_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state); From patchwork Tue Mar 25 22:35:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 14029600 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CD1A26A095 for ; Tue, 25 Mar 2025 22:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942128; cv=none; b=MP9q3OSvXFUy1ThBFdwaRgEV5lKh0n4LWnPIaBU80NbLa0sxzAAj6+oYgcGGvG1ejgKcOG6152mHEgkFeBRlXab/7caiKbOqqlMj0/2aDC0AhHXPCSldFEw0ZfalUtss/sTGnP8MScWrZ95lEiRm9rAk3XSZlsHVuJ0klJVBmR4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942128; c=relaxed/simple; bh=DX73LX1hqBy54JZ3tEvbOwWEd5r7ert7pfxGxayirro=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CXc2VGrVFeR1Z6rHj3p/Le3Z0iAIDE4Iok4w97e0MmLPobxnAMvR7/L29U6OnQjWES+gafffAYVfCdz56QtpBvMBF+sEUAX5QCPF3PGMNf/WVOaPsyQ+Dko5po8yAIqcTllTETVkphe6bXavuAuRWxeoffONlT6SwdzfG90v7jo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n3CRcmhH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="n3CRcmhH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9053FC4CEE4; Tue, 25 Mar 2025 22:35:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742942127; bh=DX73LX1hqBy54JZ3tEvbOwWEd5r7ert7pfxGxayirro=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n3CRcmhH58TQmvK+ZspoUFArwfBj4feTzb7+Gik5MOWTR6Ok6H9CVEIxFSRe79fYC GIT4CsetwK8exaG2LhbKtaBqX7MrsTXAnBVvDvdfUlQA+5XLY6Fk2VYCvaith0OHno s/GxZ4XvJBYZ65mn5mvHwG6HuOfRuca7aaPdLkx5Dr1nAAz/aH92F09XHr8YmJ9RoT juNbfs8iEXQpyNqkdu/9FsyywW0WKAn5jW0AGkyOnimPRCWpEO/y93T4mbgGzFIg95 MlgobMmBi2ox7U/9A9LXXYdB8XsBhEIYjJxQI/mVo/RnIUFLfwM793ZQNI8tTl0Ttw lNZ86xRxOzljg== From: trondmy@kernel.org To: linux-nfs@vger.kernel.org Cc: Jeff Layton , Josef Bacik , Benjamin Coddington Subject: [PATCH v3 5/6] NFSv4: clp->cl_cons_state < 0 signifies an invalid nfs_client Date: Tue, 25 Mar 2025 18:35:22 -0400 Message-ID: <7059cac07b2bc3c6a249b66326a86a5858f74214.1742941932.git.trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Trond Myklebust If someone calls nfs_mark_client_ready(clp, status) with a negative value for status, then that should signal that the nfs_client is no longer valid. Signed-off-by: Trond Myklebust Reviewed-by: Jeff Layton Reviewed-by: Benjamin Coddington --- fs/nfs/nfs4state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index f1f7eaa97973..272d2ebdae0f 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -1403,7 +1403,7 @@ int nfs4_schedule_stateid_recovery(const struct nfs_server *server, struct nfs4_ dprintk("%s: scheduling stateid recovery for server %s\n", __func__, clp->cl_hostname); nfs4_schedule_state_manager(clp); - return 0; + return clp->cl_cons_state < 0 ? clp->cl_cons_state : 0; } EXPORT_SYMBOL_GPL(nfs4_schedule_stateid_recovery); From patchwork Tue Mar 25 22:35:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 14029601 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E829426A0A5 for ; Tue, 25 Mar 2025 22:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942129; cv=none; b=j389Qd964yXSY0ZHCKn/oIh4fRU/VDvicU4OqpC0tglYVBXPxmCpRR0Q7GDCtv0bM7kunrD1IgGPvrVjgN1aq4OGgiB0mDPCGo1P4U0XoZPIeeltf/AkfNwwRa4MA8MYcaQnvJvIJW74ghR3yLqtRhBzRNvrrR7YsdHlDXV5itM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742942129; c=relaxed/simple; bh=aEopn8cIMK9pMhnOkmvKpNbi/Mw4J1E4tnmr2IjKkPY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k2YZ+RxNVzpWSM43smHoUGCAND6L6ZlORgmTe1+j+IblPC0UMwceHoM+0jxGz9FTWamCTtl8Dwf1ZdxzB/Ugkp8eUwQdmaAXmxRveTXnNFnmEKoRB0elkQ/rJtKZyoHRhrjLvWCa7/rr3h6ojtJ71YgQCMT/gGR9CP+N1Eh1Eps= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=o57butJK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="o57butJK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26066C4CEE9; Tue, 25 Mar 2025 22:35:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742942128; bh=aEopn8cIMK9pMhnOkmvKpNbi/Mw4J1E4tnmr2IjKkPY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o57butJKTIY4DyEsbrMpNa468z2Atso57Tpi2WVROdtGtVjQOqNkIUSpUCh9QhGAC oQCgd3XHvBSZ2aWYmxBKbQFDUxOBT6kBFX8iUX5X8IorZuZAPPyETVe1LEPfhh4HjB /PhRA0PqiOu4hF9BWF8ag2nmoHcGrxCxSZH5/4A3Cpwifr08coB5RMQpjdyTsJSXYz 51PHSb6ZQUXuvBQe/otb+SWuuouxdbJtCbYDAqQKgzyYaX+XizXPxdFRPd+xI3QJ4Z C4FVz8a1Zjk1e4Bbg8xQpHdDd/mF1sQqr+Tglqk/NtlVhyqXeSM6R8Ug2eLJO3s50K qHD6nIfaOfY9A== From: trondmy@kernel.org To: linux-nfs@vger.kernel.org Cc: Jeff Layton , Josef Bacik , Benjamin Coddington Subject: [PATCH v3 6/6] NFSv4: Treat ENETUNREACH errors as fatal for state recovery Date: Tue, 25 Mar 2025 18:35:23 -0400 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Trond Myklebust If a containerised process is killed and causes an ENETUNREACH or ENETDOWN error to be propagated to the state manager, then mark the nfs_client as being dead so that we don't loop in functions that are expecting recovery to succeed. Reviewed-by: Jeff Layton Signed-off-by: Trond Myklebust Reviewed-by: Benjamin Coddington --- fs/nfs/nfs4state.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 272d2ebdae0f..7612e977e80b 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -2739,7 +2739,15 @@ static void nfs4_state_manager(struct nfs_client *clp) pr_warn_ratelimited("NFS: state manager%s%s failed on NFSv4 server %s" " with error %d\n", section_sep, section, clp->cl_hostname, -status); - ssleep(1); + switch (status) { + case -ENETDOWN: + case -ENETUNREACH: + nfs_mark_client_ready(clp, -EIO); + break; + default: + ssleep(1); + break; + } out_drain: memalloc_nofs_restore(memflags); nfs4_end_drain_session(clp);