lkml.org 
[lkml]   [2019]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 140/170] NFS: nfs_compare_mount_options always compare auth flavors.
    Date
    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 38de09b08e96..3c4aeb83e1c4 100644
    --- a/fs/nfs/super.c
    +++ b/fs/nfs/super.c
    @@ -2401,8 +2401,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
    \
     
     \ /
      Last update: 2019-01-28 17:54    [W:3.305 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site