Skip to content

Commit 594d164

Browse files
Chris Perlamschuma-ntap
authored andcommitted
NFS: nfs_compare_mount_options always compare auth flavors.
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>
1 parent 04d1532 commit 594d164

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

fs/nfs/super.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2409,8 +2409,7 @@ static int nfs_compare_mount_options(const struct super_block *s, const struct n
24092409
goto Ebusy;
24102410
if (a->acdirmax != b->acdirmax)
24112411
goto Ebusy;
2412-
if (b->auth_info.flavor_len > 0 &&
2413-
clnt_a->cl_auth->au_flavor != clnt_b->cl_auth->au_flavor)
2412+
if (clnt_a->cl_auth->au_flavor != clnt_b->cl_auth->au_flavor)
24142413
goto Ebusy;
24152414
return 1;
24162415
Ebusy:

0 commit comments

Comments
 (0)