| From 0a436c557fe921069d6be013aaad95943a689124 Mon Sep 17 00:00:00 2001 |
| From: "J. Bruce Fields" <bfields@redhat.com> |
| Date: Tue, 27 Nov 2018 15:54:17 -0500 |
| Subject: nfsd4: fix crash on writing v4_end_grace before nfsd startup |
| |
| [ Upstream commit 62a063b8e7d1db684db3f207261a466fa3194e72 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/nfsd/nfsctl.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c |
| index 6493df6b1bd5..4b8ebcc6b183 100644 |
| --- a/fs/nfsd/nfsctl.c |
| +++ b/fs/nfsd/nfsctl.c |
| @@ -1126,6 +1126,8 @@ 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) |
| + return -EBUSY; |
| nfsd4_end_grace(nn); |
| break; |
| default: |
| -- |
| 2.19.1 |
| |