* [PATCH AUTOSEL 4.9 031/107] nfsd4: fix crash on writing v4_end_grace before nfsd startup [not found] <20190128161947.57405-1-sashal@kernel.org> @ 2019-01-28 16:18 ` Sasha Levin 2019-01-28 16:19 ` [PATCH AUTOSEL 4.9 083/107] NFS: nfs_compare_mount_options always compare auth flavors Sasha Levin 1 sibling, 0 replies; 2+ messages in thread From: Sasha Levin @ 2019-01-28 16:18 UTC (permalink / raw) To: linux-kernel, stable; +Cc: J. Bruce Fields, Sasha Levin, linux-nfs From: "J. Bruce Fields" <bfields@redhat.com> [ 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 36b2af931e06..797a155c9a67 100644 --- a/fs/nfsd/nfsctl.c +++ b/fs/nfsd/nfsctl.c @@ -1103,6 +1103,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 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH AUTOSEL 4.9 083/107] NFS: nfs_compare_mount_options always compare auth flavors. [not found] <20190128161947.57405-1-sashal@kernel.org> 2019-01-28 16:18 ` [PATCH AUTOSEL 4.9 031/107] nfsd4: fix crash on writing v4_end_grace before nfsd startup Sasha Levin @ 2019-01-28 16:19 ` Sasha Levin 1 sibling, 0 replies; 2+ messages in thread From: Sasha Levin @ 2019-01-28 16:19 UTC (permalink / raw) To: linux-kernel, stable; +Cc: Chris Perl, Anna Schumaker, Sasha Levin, linux-nfs From: Chris Perl <cperl@janestreet.com> [ Upstream commit 594d1644cd59447f4fceb592448d5cd09eb09b5e ] This patch removes the check from nfs_compare_mount_options to see if a `sec' option was passed for the current mount before comparing auth flavors and instead just always compares auth flavors. Consider the following scenario: You have a server with the address 192.168.1.1 and two exports /export/a and /export/b. The first export supports `sys' and `krb5' security, the second just `sys'. Assume you start with no mounts from the server. The following results in EIOs being returned as the kernel nfs client incorrectly thinks it can share the underlying `struct nfs_server's: $ mkdir /tmp/{a,b} $ sudo mount -t nfs -o vers=3,sec=krb5 192.168.1.1:/export/a /tmp/a $ sudo mount -t nfs -o vers=3 192.168.1.1:/export/b /tmp/b $ df >/dev/null df: ‘/tmp/b’: Input/output error Signed-off-by: Chris Perl <cperl@janestreet.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> Signed-off-by: Sasha Levin <sashal@kernel.org> --- fs/nfs/super.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 2fdb8f5a7b69..35aef192a13f 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -2403,8 +2403,7 @@ static int nfs_compare_mount_options(const struct super_block *s, const struct n goto Ebusy; if (a->acdirmax != b->acdirmax) goto Ebusy; - if (b->auth_info.flavor_len > 0 && - clnt_a->cl_auth->au_flavor != clnt_b->cl_auth->au_flavor) + if (clnt_a->cl_auth->au_flavor != clnt_b->cl_auth->au_flavor) goto Ebusy; return 1; Ebusy: -- 2.19.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-01-28 16:49 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20190128161947.57405-1-sashal@kernel.org> 2019-01-28 16:18 ` [PATCH AUTOSEL 4.9 031/107] nfsd4: fix crash on writing v4_end_grace before nfsd startup Sasha Levin 2019-01-28 16:19 ` [PATCH AUTOSEL 4.9 083/107] NFS: nfs_compare_mount_options always compare auth flavors Sasha Levin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).