Blob Blame History Raw
From: "J. Bruce Fields" <bfields@redhat.com>
Date: Tue, 27 Nov 2018 15:54:17 -0500
Subject: [PATCH] nfsd4: fix crash on writing v4_end_grace before nfsd startup
Git-commit: 62a063b8e7d1db684db3f207261a466fa3194e72
Patch-mainline: v5.0
References: git-fixes

Anatoly Trosinenko reports that this:

1) Checkout fresh master Linux branch (tested with commit e195ca6cb)
2) Copy x84_64-config-4.14 to .config, then enable NFS server v4 and build
3) From `kvm-xfstests shell`:

results in NULL dereference in locks_end_grace.

Check that nfsd has been started before trying to end the grace period.

Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Acked-by: NeilBrown <neilb@suse.com>

---
 fs/nfsd/nfsctl.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -1126,6 +1126,8 @@ static ssize_t write_v4_end_grace(struct
 		case 'Y':
 		case 'y':
 		case '1':
+			if (nn->nfsd_serv)
+				return -EBUSY;
 			nfsd4_end_grace(nn);
 			break;
 		default: