2021-03-11 15:56:18

by Olga Kornievskaia

[permalink] [raw]
Subject: [PATCH v4 1/1] NFSD: fix error handling in NFSv4.0 callbacks

From: Olga Kornievskaia <[email protected]>

When the server tries to do a callback and a client fails it due to
authentication problems, we need the server to set callback down
flag in RENEW so that client can recover.

Suggested-by: Bruce Fields <[email protected]>
Signed-off-by: Olga Kornievskaia <[email protected]>
---
fs/nfsd/nfs4callback.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index 052be5bf9ef5..7325592b456e 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -1189,6 +1189,7 @@ static void nfsd4_cb_done(struct rpc_task *task, void *calldata)
switch (task->tk_status) {
case -EIO:
case -ETIMEDOUT:
+ case -EACCES:
nfsd4_mark_cb_down(clp, task->tk_status);
}
break;
--
2.18.2


2021-03-11 16:04:34

by Chuck Lever

[permalink] [raw]
Subject: Re: [PATCH v4 1/1] NFSD: fix error handling in NFSv4.0 callbacks



> On Mar 11, 2021, at 10:55 AM, Olga Kornievskaia <[email protected]> wrote:
>
> From: Olga Kornievskaia <[email protected]>
>
> When the server tries to do a callback and a client fails it due to
> authentication problems, we need the server to set callback down
> flag in RENEW so that client can recover.
>
> Suggested-by: Bruce Fields <[email protected]>
> Signed-off-by: Olga Kornievskaia <[email protected]>

Thanks. This patch has been included in the for-rc topic
branch in the repo at

git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git

I added Ben's Tested-by.


> ---
> fs/nfsd/nfs4callback.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
> index 052be5bf9ef5..7325592b456e 100644
> --- a/fs/nfsd/nfs4callback.c
> +++ b/fs/nfsd/nfs4callback.c
> @@ -1189,6 +1189,7 @@ static void nfsd4_cb_done(struct rpc_task *task, void *calldata)
> switch (task->tk_status) {
> case -EIO:
> case -ETIMEDOUT:
> + case -EACCES:
> nfsd4_mark_cb_down(clp, task->tk_status);
> }
> break;
> --
> 2.18.2

--
Chuck Lever