diff mbox

NFSv4: Fix a nograce recovery hang

Message ID 3f289465f9fe9aef49605e1418e6a22c6f3d6118.1443705317.git.bcodding@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Benjamin Coddington Oct. 1, 2015, 1:17 p.m. UTC
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 <bcodding@redhat.com>
---
 fs/nfs/nfs4proc.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Comments

Trond Myklebust Oct. 2, 2015, 7:54 p.m. UTC | #1
On Thu, Oct 1, 2015 at 9:17 AM, Benjamin Coddington <bcodding@redhat.com> 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 <bcodding@redhat.com>
> ---
>  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!
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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);