lkml.org 
[lkml]   [2021]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 013/247] cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
    Date
    From: Shyam Prasad N <sprasad@microsoft.com>

    [ Upstream commit a738c93fb1c17e386a09304b517b1c6b2a6a5a8b ]

    While debugging another issue today, Steve and I noticed that if a
    subdir for a file share is already mounted on the client, any new
    mount of any other subdir (or the file share root) of the same share
    results in sharing the cifs superblock, which e.g. can result in
    incorrect device name.

    While setting prefix path for the root of a cifs_sb,
    CIFS_MOUNT_USE_PREFIX_PATH flag should also be set.
    Without it, prepath is not even considered in some places,
    and output of "mount" and various /proc/<>/*mount* related
    options can be missing part of the device name.

    Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/cifs/connect.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
    index 6285085195c15..632249ce61eba 100644
    --- a/fs/cifs/connect.c
    +++ b/fs/cifs/connect.c
    @@ -3882,6 +3882,7 @@ int cifs_setup_cifs_sb(struct smb_vol *pvolume_info,
    cifs_sb->prepath = kstrdup(pvolume_info->prepath, GFP_KERNEL);
    if (cifs_sb->prepath == NULL)
    return -ENOMEM;
    + cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_USE_PREFIX_PATH;
    }

    return 0;
    --
    2.27.0


    \
     
     \ /
      Last update: 2021-03-01 20:50    [W:5.252 / U:0.812 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site