2015-10-01 13:17:35

by Benjamin Coddington

[permalink] [raw]
Subject: [PATCH] NFSv4: Fix a nograce recovery hang

Since commit 5cae02f42793130e1387f4ec09c4d07056ce9fa5 an OPEN_CONFIRM should
have a privileged sequence in the recovery case to allow nograce recovery to
proceed for NFSv4.0.

Signed-off-by: Benjamin Coddington <[email protected]>
---
fs/nfs/nfs4proc.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index f93b9cd..784a649 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1863,6 +1863,8 @@ static int _nfs4_proc_open_confirm(struct nfs4_opendata *data)
data->rpc_done = 0;
data->rpc_status = 0;
data->timestamp = jiffies;
+ if (data->is_recover)
+ nfs4_set_sequence_privileged(&data->c_arg.seq_args);
task = rpc_run_task(&task_setup_data);
if (IS_ERR(task))
return PTR_ERR(task);
--
1.7.1



2015-10-02 19:54:31

by Trond Myklebust

[permalink] [raw]
Subject: Re: [PATCH] NFSv4: Fix a nograce recovery hang

On Thu, Oct 1, 2015 at 9:17 AM, Benjamin Coddington <[email protected]> wrote:
> Since commit 5cae02f42793130e1387f4ec09c4d07056ce9fa5 an OPEN_CONFIRM should
> have a privileged sequence in the recovery case to allow nograce recovery to
> proceed for NFSv4.0.
>
> Signed-off-by: Benjamin Coddington <[email protected]>
> ---
> fs/nfs/nfs4proc.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
> index f93b9cd..784a649 100644
> --- a/fs/nfs/nfs4proc.c
> +++ b/fs/nfs/nfs4proc.c
> @@ -1863,6 +1863,8 @@ static int _nfs4_proc_open_confirm(struct nfs4_opendata *data)
> data->rpc_done = 0;
> data->rpc_status = 0;
> data->timestamp = jiffies;
> + if (data->is_recover)
> + nfs4_set_sequence_privileged(&data->c_arg.seq_args);
> task = rpc_run_task(&task_setup_data);
> if (IS_ERR(task))
> return PTR_ERR(task);
> --

Makes sense. Thanks Ben!