NFS: Ensure the fs_context has the correct fs_type before mounting
authorScott Mayhew <smayhew@redhat.com>
Fri, 21 Feb 2020 20:21:38 +0000 (15:21 -0500)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Fri, 21 Feb 2020 20:51:04 +0000 (15:51 -0500)
commit1cef21842ff3b6043c459b6462183e70295b5b19
tree23edce6a06e98afef9c527d6f87277d1126571bd
parent5d63944f8206a80636ae8cb4b9107d3b49f43d37
NFS: Ensure the fs_context has the correct fs_type before mounting

This is necessary because unless userspace explicitly requests fstype
"nfs4" (either via "mount -t nfs4" or by calling the "mount.nfs4" helper
directly), the fstype will default to "nfs".

This was fine on older kernels because the super_block->s_type was set
via mount_info->nfs_mod->nfs_fs, which was set when parsing the mount
options and subsequently passed in the "type" argument of sget().

After commit f2aedb713c28 ("NFS: Add fs_context support."), sget_fc(),
which has no "type" argument, is called instead.  In sget_fc(), the
super_block->s_type is set via fs_context->fs_type, which was set when
the filesystem context was initially created.

Reported-by: Patrick Steinhardt <ps@pks.im>
Fixes: f2aedb713c28 ("NFS: Add fs_context support.")
Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/fs_context.c