2019-03-06 13:47:21

by Yihao Wu

[permalink] [raw]
Subject: [PATCH] nfsd: fix wrong check in write_v4_end_grace()

From 04ddefd79a5cd410d65b7a30593ac915b9fab687 Mon Sep 17 00:00:00 2001
From: Yihao Wu <[email protected]>
Date: Wed, 6 Mar 2019 21:03:50 +0800
Subject: [PATCH] nfsd: fix wrong check in write_v4_end_grace()

Commit 62a063b8e7d1 "nfsd4: fix crash on writing v4_end_grace before
nfsd startup" is trying to fix a NULL dereference issue, but it
mistakenly checks if the nfsd server is started. So fix it.

Fixes: 62a063b8e7d1 "nfsd4: fix crash on writing v4_end_grace before nfsd startup"
Cc: [email protected]
Reviewed-by: Joseph Qi <[email protected]>
Signed-off-by: Yihao Wu <[email protected]>
---
fs/nfsd/nfsctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index 72a7681..f2feb2d 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -1126,7 +1126,7 @@ static ssize_t write_v4_end_grace(struct file *file, char *buf, size_t size)
case 'Y':
case 'y':
case '1':
- if (nn->nfsd_serv)
+ if (!nn->nfsd_serv)
return -EBUSY;
nfsd4_end_grace(nn);
break;
--
1.8.3.1



2019-03-06 14:58:50

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] nfsd: fix wrong check in write_v4_end_grace()

On Wed, Mar 06, 2019 at 09:47:14PM +0800, Yihao Wu wrote:
> >From 04ddefd79a5cd410d65b7a30593ac915b9fab687 Mon Sep 17 00:00:00 2001
> From: Yihao Wu <[email protected]>
> Date: Wed, 6 Mar 2019 21:03:50 +0800
> Subject: [PATCH] nfsd: fix wrong check in write_v4_end_grace()
>
> Commit 62a063b8e7d1 "nfsd4: fix crash on writing v4_end_grace before
> nfsd startup" is trying to fix a NULL dereference issue, but it
> mistakenly checks if the nfsd server is started. So fix it.

Applied, thanks!--b.

>
> Fixes: 62a063b8e7d1 "nfsd4: fix crash on writing v4_end_grace before nfsd startup"
> Cc: [email protected]
> Reviewed-by: Joseph Qi <[email protected]>
> Signed-off-by: Yihao Wu <[email protected]>
> ---
> fs/nfsd/nfsctl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
> index 72a7681..f2feb2d 100644
> --- a/fs/nfsd/nfsctl.c
> +++ b/fs/nfsd/nfsctl.c
> @@ -1126,7 +1126,7 @@ static ssize_t write_v4_end_grace(struct file *file, char *buf, size_t size)
> case 'Y':
> case 'y':
> case '1':
> - if (nn->nfsd_serv)
> + if (!nn->nfsd_serv)
> return -EBUSY;
> nfsd4_end_grace(nn);
> break;
> --
> 1.8.3.1